模型

Top-p

为什么需要了解 Top-p

模型生成每个词时,实际上是从所有可能的词里按概率"抽样"出来的。

问题是:概率分布很长,"最可能的词"可能占 80%,"第二可能的"占 10%,剩下的加起来才 10%。如果每次都从全部词里抽,偶尔会抽到那些很低概率的长尾词,导致输出跑偏。

Top-p 就是来解决这个问题的:控制"候选池"的范围,而不是调整概率分布的形状


什么是 Top-p

一句话定义:Top-p 限制采样的候选范围,只从累计概率最高的一小部分词里选。

top-p = 0.9 时:

  1. 模型先列出所有候选词,按概率排序
  2. 从最高的开始累加,直到累计概率达到 90%
  3. 只在这 90% 概率覆盖的词里选下一个词
  4. 剩下 10% 的低概率长尾词直接被排除

类比:就像老师阅卷时,只给答题纸上前 90% 写得最认真的部分打分,最潦草的部分直接忽略。


Top-p 和 Temperature 的区别

两者都控制随机性,但方向不同:

参数控制什么类比
Temperature调整概率分布的平滑程度调"胆子大小"
Top-p限制候选词的范围调"候选池宽度"

简单说:

  • Temperature = "敢不敢选概率低的词"
  • Top-p = "允许进入候选池的范围有多大"

关于 Token 的消耗:这俩参数主要影响输出的多样性和稳定性,不会直接影响 Token 数量,但会因为输出长度变化间接影响 Token 消耗。


怎么做:什么时候调 Top-p

适合调低 Top-p(0.7-0.9)

  • 希望有一定变化,但不要跑太远
  • 对低概率离谱词比较敏感
  • 需要控制发散边界

适合保持默认 Top-p(通常 1.0 或不设置)

  • 已经调了 Temperature
  • 想让模型有更多自主空间

实践建议

  • 如果已经在调 temperature,通常先把 top-p 保持默认
  • 一般不建议两者同时大幅调高,否则输出会明显失稳
  • 很多产品里,temperature 已经足够,Top-p 更多用于精细调优

记住这一句:Top-p 是"候选池宽度"的控制阀——调的是"哪些词有资格被选到",而不是"选中的词有多保守"。

相关词条Temperature