我们都知道,如果温度调得太高,大模型就会变得更加 “沸腾活跃”,在预测下一个词时,也就更容易选中那些概率很低的生僻词。
可一旦大模型一不小心选中了概率只有万分之一的生僻词,输出的内容就会逻辑变乱,接下来很可能就开始胡言乱语了。
为了防止大模型放飞自我,研究者们在 Temperature 参数之后,又加入了 Top-K 和 Top-P 这两个参数,专门用于把那些太离谱的词提前 “拉黑”。
Top-K:按 “排名” 来选择。Top-P:按 “累计概率” 来选择。
Top-K 参数是干什么的?
在大模型玩 “文字接龙” 时,每要生成下一个词,它面前都摆着一张包含成千上万个词的 “概率表”。
Top-K 参数的作用非常简单,它就做一件事:按 “概率排名” 进行选择。
Top-K,从字面上就很好理解:选择概率排名前 k 个的候选词。假设我们把Top-K 设置为 50,那么大模型每次挑词,就只会在概率最高的 “前 50 名” 候选词里选。至于排在第 51 名往后的词,不管温度调得多高,都会被直接无视。
- 如果 K 值很小(比如 K=1):大模型就变成了一台死板的复读机,每次只会挑概率最高那个(即第 1 名),输出毫无创意。
- 如果 K 值很大(比如 K=1000):可选的范围太大,蹦出生僻词、引发幻觉的风险也就更高。

需要清楚的是,
Top-K 虽然好用,但它有个明显的毛病——太死板。比如:
- 有时候前 5 名的概率都不低(比如分别是 30%、25%、20%、15%、10%),这时选前 5 个很合理。
- 可有时候第 1 名一个就占了 90%,剩下的全是不靠谱的低概率词。这时如果还死板地固定选前 5 名,就很可能把那些生僻词也圈进来。
为了解决这个问题,我们就需要用到更聪明的 Top-P 参数了。
为什么很多大厂 API 里找不到 Top-K?
如果小伙伴们去查看 OpenAI (ChatGPT) 或者某些大模型厂商的官方 API 文档,可能会发现一个奇怪的现象:里面只有 Temperature 和 Top-P,压根没有 Top-K 这个参数。
这并不是你眼花了,原因在于:Top-K 的机制太死板了,为了降低开发者的调参难度,不少厂商干脆在底层把 Top-K 的值 “写死” 或省略了,不再作为开放参数暴露给用户。
所以在目前的商业级调用里,Top-P 才是真正主流的 “兜底” 参数。
不过也并非所有厂商都把 Top-K 藏了起来——比如有些模型(像 Claude、Gemini)的 API 里,Top-K 依然是开放的,你可以自己手动设置。因此,到底有没有这个参数,还是以你所用到的模型的官方文档为准。
Top-P 参数是干什么的?
Top-P,在学术界也叫 “核采样(Nucleus Sampling)”,它是一种更聪明、更动态的筛选机制。和 Top-K 不一样,它不看排名,而是:按 “累计概率” 进行选择。
假设我们把它设置为 Top-P = 0.9(即 90%),那么大模型在面对概率表时,会从第 1 名开始往下累加,一直加到候选词的概率之和达到 90% 为止。
注意: Top-P = 0.9,意思是 “把概率从高到低加起来、加到 90% 为止”,而不是 “保留 90% 的词”。一字之差,意思完全不同,小伙伴们千万别理解反了。
接下来,我们来看一个简单的例子:
- 情况 A(答案很明确):第 1 名概率是 85%,第 2 名是 6%。85% + 6% = 91%(已经超过 0.9)。这时系统就只把这 2 个词放进备选池,后面的全部舍弃。
- 情况 B(答案很模糊):第 1 名只有 15%,第 2 名 12%,第 3 名 10%……系统会一直往下加,可能要加到前 20 个词,总概率才凑够 90%。这时备选池里就有 20 个词。

简单来说,Top-P 相当于一个 “动态备选池”。
- 当大模型非常确信该说什么(排在前面的词概率极高)时,备选池就会立刻收紧,只留一两个词,防止它跑偏。
- 当大模型拿捏不准(候选词概率都很分散)时,备选池就会自动放大,多圈几个词进来兜底。
这种动态调节的机制,既不死板,又能最大程度保证输出内容的合理。
此外,对于 Top-K 和 Top-P,我们可以这样去记忆:
- Top-K 是 “数个数”——只看排名、固定取前几名。
- Top-P 是 “凑比例”——把概率从高到低加起来、凑够一个比例就收手。后者更聪明,因为它会随着场合自动伸缩。
大模型调参的最佳实践
在真实的商业级应用开发中,这 3 个参数的处理顺序是固定的:先使用 Temperature 改变整体的概率分布,再使用 Top-K 砍掉排名靠后的 “凑数词”,最后使用 Top-P 筛选出核心备选池,大模型再从池子里挑一个词输出。

在日常的开发实战中,业界有一条最佳实践:绝对不要同时大幅度修改 Temperature 和 Top-P 这两个参数。下面这套模板,小伙伴们可以直接套用:
- 写文章、构思文案、日常聊天:这类活儿要的是创造力。建议把 Temperature 设在 0.7~0.9,Top-P 保持默认(通常是 0.9 或 1.0)。平时只调 Temperature 这一个,就能很好地激发 AI 的灵感。
- 写代码、数据分析、财务统计:建议把 Temperature 直接设成 0(或 0.1),Top-P 保持默认;或者反过来,把 Top-P 设成 0.1,Temperature 保持默认。这样能拿到最标准、最确定的答案。
简单来说,Temperature 控制的是 AI 的 “发散程度”,而 Top-P 和 Top-K 则是用来兜底的 “安全锁”。
在工业级应用中,资深工程师在调参时通常只做 “减法”,也就是只选其中一个参数进行精细调优:
- 如果你已经使用 Temperature 控制了模型的发散度,那就把 Top-P 保持在默认值(通常是 1.0,即不截断)。
- 如果你想使用 Top-P 作为安全底线,来防止模型思维太跳跃,那就把 Temperature 固定住。
- 千万别 3 个参数一起疯狂乱改——否则一旦输出出问题,你根本没法定位是哪个参数在捣鬼。
常见问题
1. 了解 temperature、Top-P、Top-K 这些有什么用呢?我不是开发者,也需要了解吗?
非常有必要!很多小伙伴以为只有敲代码的程序员才需要去研究参数,这其实是一个巨大的误区。
虽然你可能不会直接写代码去调用 API,但是在当下各大主流的 AI 平台(比如各大模型厂商的 Playground 控制台、扣子 Coze、或者你自己配置专属智能体 Agent 时),这些核心参数,全都作为 “高级设置” 直接摆在普通用户面前。
如果你不懂这些参数,那么当 AI 帮你写的小说像白开水一样寡淡时、或者帮你总结报表却满嘴跑火车时,你就只能干瞪眼,或者盲目地反复去改提示词(Prompt)。
但只要你摸透了这几个参数的 “黄金三角” 原理,往往一下就恍然大悟:原来根本不是提示词没写好,而是参数没调对!
简单来说:懂提示词,只能让你成为一个会提问的 “普通用户”;而搞懂了这些底层参数,你才能真正驾驭大模型。
