top_p 核采样

从概率累计达到 top_p 的候选词集合中采样:值越小候选越窄、输出越保守;常与 temperature 二选一调整。

提示词工程速查AI更新于 2026-10-13

top_p 核采样是什么

top_p(核采样)先从概率最高的词开始往上累加,累到累计概率刚好超过阈值为止,只在集合内采样。阈值设成 1 相当于不截断、整张词表都参与;设成 0.9 表示只在累计概率前 90% 的高概率词里挑。它和 temperature 管控的层面不同:temperature 调整分布的陡峭程度,top_p 直接砍掉长尾候选,两者都会改变输出的随机性。

要点

机制按概率从高到低累计,达到阈值即截断,只在集合内采样(核采样)
对照top_p=1 相当于不截断;top_p 越小越保守
组合建议多数官方文档建议 temperature 与 top_p 只调其中一个
典型区间抽取与判定 0.1-0.5;创作放宽到 0.9-1.0,以实测为准
副作用阈值太低会让输出趋于保守、重复率上升、表达变僵硬

典型使用场景

  • 抽取与判定:收紧候选范围,减少同义变体与无关措辞
  • 代码生成:缩小长尾候选,降低引入不存在函数名的概率
  • 文案创作:放宽阈值以保留表达多样性,同时避免纯随机跑题
  • 故障排查:怀疑输出抖动来自采样时,先固定 temperature 再单独收紧 top_p

取值理解

取值理解
top_p = 1.0   不加截断,全部词表参与采样      # 与不设置基本等价
top_p = 0.9   只从累计概率 90% 的高概率词中采样
top_p = 0.1   候选很窄,输出趋于保守、重复率上升
# 与 temperature 同时出现时,先固定其中之一再调另一个,避免无法归因

与 temperature 的分工

维度temperaturetop_p
作用对象整张概率分布的陡峭程度参与采样的候选集合大小
低温/low 时高概率项被放大,输出集中长尾被砍掉,输出更保守
高温/high 时分布被拉平,低概率词也有机会集合大,随机性来自更多候选
调参建议先定 temperature 区间再用 top_p 微调,不要同时大改
部分平台只暴露其中一个参数或给出默认值,迁移模型时不要假设原有取值仍然生效,要按目标平台文档核对。

易错点

  • 同时大幅调整 temperature 与 top_p,指标变化时无法归因到具体参数
  • 把 top_p 设得过低,输出保守重复、句式僵硬,长文本会出现明显套话
  • 以为收紧采样能纠正事实错误,实际只是减少了胡说方式的多样性
  • 跨平台迁移时沿用原参数值,忽略不同平台取值范围与默认值不同
  • 用单次输出对比不同 top_p 取值,忽略采样本身的随机性

数据来源与参考

  • OpenAI API 文档:top_p 参数说明(建议与 temperature 只调整一个)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌