本期摘要
Top-P和Top-K是另外两个控制AI生成的参数。Top-K限制"只看概率最高的K个词",Top-P限制"候选词的概率加起来到P为止"。它们和Temperature一起,决定了AI"选词池"有多大。这一篇讲清楚两者的区别,以及实际该怎么设。
上篇回顾
上篇讲了Temperature——控制AI选词的"随机度",以及什么场景用多少。但Temperature只是调节概率分布,在抽词之前,AI还要先决定"候选池有多大"。这就是今天要讲的Top-P和Top-K。
上一篇讲了Temperature调节"随机度"。但在抽词之前,AI还要先决定一件事:候选池有多大——是从全部十几万个词里抽,还是只从概率最高的那几个里抽?
这就是Top-P和Top-K的作用:限制候选词池的大小,把那些"概率极低的怪词"提前排除掉,免得AI抽到离谱的词。
一、Top-K:只看前K个

▲ Top-K和Top-P两种筛法对比
Top-K最直观:Top-K=50就是"只看概率最高的50个词,其余全部忽略"。
比如模型预测下一个词,给"的"打0.4分、"了"0.25、"在"0.15……一直到十几万个词都有分数。Top-K=50就是只留前50个,后面十几万个直接砍掉,然后从这50个里按概率抽一个。
优点:简单粗暴,能挡住那些"概率极低的怪词"。缺点是太僵硬——有时高概率的词就那么三五个,你却硬留50个(混进一堆不靠谱的);有时高概率词有两百个,你又只留50个(丢掉不少好的)。它不管实际分布长什么样,一律留固定数量。
二、Top-P:累加到P%为止
Top-P(也叫核采样 Nucleus Sampling)更聪明:Top-P=0.9就是"从概率最高的词开始往下加,加到累计概率≥90%为止,只从这些词里抽"。
"的" 0.40 → 累计 0.40
"了" 0.25 → 累计 0.65
"在" 0.15 → 累计 0.80
"是" 0.08 → 累计 0.88
"和" 0.03 → 累计 0.91 ≥ 0.9,停!
→ 只从这 5 个词里抽
优点:候选池大小是动态的。模型很确定时(前几个词概率就很高,几个词就凑够90%),池子自动变小;模型不确定时(概率分散在很多词上),池子自动变大。这比固定数量的Top-K合理得多——它跟着模型的"确定程度"走。
三、三个旋钮怎么配合

▲ 三个旋钮的配合:先筛池子,再调随机
Temperature、Top-P、Top-K不是互相排斥的,它们在生成流程的不同环节起作用:
① 模型打分:给全部候选词各打一个概率分
② Top-P / Top-K 筛选:砍掉长尾,只留高分的一小撮
③ Temperature 调节:调整从候选池里抽词的随机度
④ 抽出一个词:生成下一个字,循环往复
一句话记忆:Top-P/K 先决定"从哪些词里选",Temperature 再决定"选的时候有多随机"。前者管"候选池大小",后者管"抽取的随机性",分工明确、先后配合。
四、实际该怎么设

▲ 实际设置建议
大多数场景:用默认就好
Top-P=0.9 + Temperature=1,是很多API的默认组合。既有多样性,又不会抽到太离谱的词。日常使用根本不用动它。
要高度确定的输出
Top-P=0.1 或直接 Temperature=0。候选池压到极小,输出高度确定、可复现。适合代码、翻译、数据提取这类"要准不要花"的任务。
别同时把多个调到极端
Temperature和Top-P都拉到极端值,输出会变得难以预测。实践中一般只调其中一个(通常是Temperature),另一个保持默认就行。
五、Top-K为什么越来越少见
如果你翻最新的API文档,会发现很多模型只暴露Top-P,不再单独给Top-K了。原因就是前面讲的:
Top-P的"动态候选池"比Top-K的"固定数量"更合理——它能根据模型每一步的确定程度自动调整池子大小,而Top-K做不到。既然Top-P几乎能覆盖Top-K的所有场景,而且效果更好,厂商自然倾向于只保留Top-P这一个更优的旋钮,少一个参数也少一份调参负担。
所以对今天的你来说:知道Top-P就够用了。Top-K更多是个"历史概念",理解它有助于看懂Top-P的好处,但实际调参时,你大概率只会碰到Top-P。
几个能直接用上的认知
Top-K=固定数量,Top-P=动态比例
Top-K硬留前K个;Top-P按累计概率留,模型越确定池子越小,更合理
Top-P是当下主流
多数新模型API只暴露Top-P(如0.9),不再单独给Top-K。记住Top-P就够
和Temperature分工明确
Top-P/K先筛"候选池",Temperature再调"随机度"。先筛后抽,配合使用
别同时调到极端
多个参数一起拉极端,输出会失控。一般只调Temperature,其他保持默认
小结
Top-K限制"只看前K个词",Top-P限制"候选词概率累加到P%为止"。Top-P更灵活(候选池大小随模型确定程度动态变化),是目前的主流做法,多数API只暴露它。
它们和Temperature配合:Top-P/K先筛候选池,Temperature再调抽取的随机度。大多数场景用默认值(Top-P=0.9 + Temperature=1)就够,不必每个都手动调,更别同时拉极端。
至此,影响AI输出的核心参数(Temperature、Top-P、Top-K)就讲完了。下一篇我们回到Prompt技巧本身,聊一个零代码、立竿见影的实用招式——Few-shot:给AI举几个例子,效果立刻不一样。
下期预告
Few-shot
给AI举几个例子,效果立刻不一样——Few-shot是最实用的Prompt技巧之一,零代码、立竿见影。
看完有启发的话,点个"在看"再走
本文包含AI辅助创作内容,作者已审核并对全文负责
夜雨聆风