同一个问题问大模型两遍,答案有时一模一样、有时又不太一样。这种随机性不是故障,而是采样策略在起作用,top-k 和 top-p 就是控制它的一对参数。看懂这两个旋钮,你就能解释 AI 为什么有时「稳定」、有时「多变」。
先说结论:随机是刻意留下的旋钮
大模型每生成一个字,都会给词表里的所有候选词算一个概率。如果永远只选概率最高的那一个,输出会非常死板,容易陷入重复。采样就是「按概率随机挑」,让输出有变化。top-k 和 top-p 决定了「随机挑」的范围有多大。
采样是什么:为什么不能只挑最高分
只选最高分的做法叫贪心解码,好处是确定、可复现,坏处是它永远走同一条路,长文本里会出现重复的短语和套路。加入随机性后,模型有机会在概率接近的几个词之间做选择,输出更自然、更有变化。代价是牺牲一部分确定性。
top-k:只在「前 k 名」里挑
top-k 的做法是,每次只保留概率最高的 k 个候选词,在这个小池子里按概率随机采样。k 等于 1 时,退化成永远选最高分,输出最稳;k 越大,候选越多,输出越多样。它的明显缺点是对所有情况「一视同仁」:有时前几名概率差很多,有时很接近,top-k 不管这些,永远卡在固定的 k 上。
top-p:按累计概率动态划圈
top-p 也叫核采样,做法是从高到低累加候选词的概率,累加到设定的 p 值(比如 0.9)就停下,只在这个范围里采样。概率集中时,圈进去的词就少;概率分散时,圈进去的词就多。它比 top-k 更自适应,通常也被当作默认或推荐参数。
top-k 和 top-p 并不互斥,很多推理服务会同时设这两个参数,先按 top-k 截掉低概率的长尾,再按 top-p 做核采样,或者反过来。温度则在采样之前就改变概率分布本身:温度越高,各候选词的概率越平均,top-k、top-p 的圈定范围也随之变化。三者的作用点不同,温度改分布,top-k 定数量,top-p 定累计范围。
举个例子,设 p 等于 0.9,如果最高的两个候选词概率加起来已经超过 0.9,这一轮就只在这两个词里挑;如果概率很分散,可能需要十几个词才能凑够 0.9,候选池就大得多。这就是「自适应」的含义:同样一个 p 值,在不同上下文中圈出的词数差别可能很大。
速查:随机性该怎么调
- 要稳定、要准确:降低随机性,调小 k 或 p,或降低温度。
- 要多样、要创意:调高随机性,调大 k 或 p。
- 事实问答、代码:优先低随机,减少跑偏。
- 头脑风暴、起名:优先高随机,扩大候选。
一张表:场景与参数方向
| 使用场景 | 参数方向 | 预期效果 |
|---|---|---|
| 事实问答、代码生成 | 低随机,k/p 调小 | 输出稳定、更少跑偏 |
| 通用对话、改写 | 中等随机 | 自然与准确之间平衡 |
| 头脑风暴、起名、文案 | 高随机,k/p 调大 | 候选多样、更有新意 |
| 重复性结构化任务 | 接近贪心 | 结果一致、可复现 |
这些参数通常由产品替你设好,普通用户更多是通过「创意度」「稳定度」这类滑块间接调节。理解它们,你就明白为什么调一下设置,AI 就「变了个脾气」。想系统补上这类判断能力,可以看AI 素养的能力清单。
它帮不上忙的地方
随机性不等于创造力。把随机性调高,只能让输出在既有概率分布里更发散,不能凭空变出模型本来就不会的东西;它也无法修复事实错误——低随机只能让错误更稳定地复现,不等于更准确。
另一个边界是,采样参数解决的是「怎么挑」,不解决「概率本身对不对」。如果模型对一个问题的概率判断本身就有偏,再调 top-k、top-p 也只是在错误的候选池里挑。这背后涉及模型可靠性的问题,可参考AI 对齐。对创意生成这类高随机场景,比如AI 音效生成,随机性才有施展空间;而对流程固定的自动化任务,则要反过来压低随机、追求可复现。
还要区分「随机性」和「可复现性」。不少工具在生成时会引入一个随机种子,固定种子可以让同一组参数下的输出保持一致。需要复现结果时,除调低 k/p 之外,还应固定随机种子。


