一句话:Top-k 采样(Top-k sampling)是让语言模型在生成每个词时,只在概率最高的 k 个候选词里随机挑一个,而不是从整个词表里乱挑。
大模型生成文本,本质是“猜下一个词”。每猜一次,模型都会给词表里所有 token 算一个概率,比如“今天天气真___”,候选可能是“好”40%、“不错”25%、“热”15%、“冷”10%,剩下几万个词分享最后 10%。如果完全按概率抽,偶尔会抽到“恐龙”“蓝色”这种长尾词,句子就飞了。Top-k 的做法是:先把候选按概率排序,只保留前 k 个,把它们重新归一化成 100%,再按比例抽签。k=1 时不再随机,每次选最高概率,等价于贪心解码(greedy decoding);k 越大越放飞,k 越小越保守。
打个比方:点外卖时,平台有几千家店。Top-k 不是全城随机抽一家,而是先看评分最高的 k 家,再在这 k 家里按好评率抽。这样既保留一点随机性,又不会抽到“黑暗料理”。
它和相邻概念容易混:
| 方法 | 怎么截断 | 效果 |
|---|---|---|
| Top-k | 固定保留概率最高的 k 个 | k 小稳定,k 大多样 |
| AI 词典:Top-p">Top-p | 保留累计概率达到 p 的最小集合 | 候选数动态变化 |
| Temperature | 不截断,调整分布陡峭程度 | 低温更确定,高温更随机 |
| Greedy | 只选最高概率 | 最稳定,也最死板 |
Top-k 和 Top-p(nucleus sampling)常一起用:先截断长尾,再调温度,最后采样。对从业者,调 API 时经常能看到 top_k 参数。写代码、做客服、总结文档,适合小 k,减少胡说;写广告语、故事、头脑风暴,可以适当调大 k,增加多样性。但 k 太大,长尾垃圾又会回来;k 太小,输出会重复、呆板。它不是“事实校验器”,只控制随机范围,不能保证内容正确。具体默认值和取值范围,以官方页面为准。
