Top-k sampling 把模型的下个 token 选择限制在概率前 k 高的 token,然后从这个子集合采样(常按概率加权)。k=1 等于每次都挑概率最高的——跟 greedy / temperature 0 一样。k=50 永远考虑概率前 50 高的选项,不管概率分布多不平均。 它重要的原因是:这是限制输出随机性最简单的方法。没有任何 cap 时,连 0.0001% 概率的 token 偶尔也会被采样,可能产生怪 token 或崩坏。Top-k 把这些滤掉。 举个例子:续写「once upon a time, there was a」。Temperature 1 没有 top-k 时,偶尔可能采样到冷门或语法错的 token。Top-k 40 确保你只从前 40 个最可能的后续挑——「king」「princess」「young」「little」等,都合理。 相对于 top-p 的弱点:top-k 不管模型多有信心都用同样数量的候选。模型强烈知道下个字时(「capital of France is...」),top-k 50 浪费在不可能的 token 上。模型真的不确定时(开放式创意写作),top-k 50 可能太限制。多数现代 API 默认用 top-p,但有些两个都用。延伸阅读:top-p、temperature、sampling、decoding。