news 2026/4/23 16:22:07

LLM 采样参数详解:Temperature, Top-k 与 Top-p

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LLM 采样参数详解:Temperature, Top-k 与 Top-p

在大型语言模型(LLM)的文本生成过程中,解码(Decoding)阶段决定了模型最终输出什么内容。为了平衡生成的准确性多样性,我们通常会使用三个关键参数:TemperatureTop-kTop-p

本文档详细解释这三个参数的原理,并着重分析 Top-k 与 Top-p 的区别。

1. Temperature (温度)

作用:全局控制概率分布的“平滑”程度。

模型输出的是一组 Logits(原始得分)。在转化为概率(Softmax)之前,我们会将 Logits 除以 Temperature (TTT)。

  • T<1T < 1T<1(低温)
    • 效果:放大高概率和低概率之间的差距。概率高的词会变得更高(更突出),概率低的词会变得更低。
    • 结果:生成内容非常保守确定性强。适合数学解题、代码生成等需要精确答案的场景。
  • T>1T > 1T>1(高温)
    • 效果:缩小差距,使概率分布趋于平坦(Uniform)。
    • 结果:低概率的词也有机会被选中。生成内容更随机有创造力,但也更容易产生幻觉或胡言乱语。

2. Top-k Sampling

作用:强行截断,只保留前 k 个可能的词。

  • 原理:将所有候选词按概率从高到低排序,只保留前kkk个(例如k=50k=50k=50)。将这kkk个词之后的词概率归零,然后重新归一化剩余的词。

Top-k 的局限性:无法适应不同的预测置信度

Top-k 的最大问题在于kkk是一个固定值,而模型对不同上下文的预测**确定性(Confidence)**是动态变化的。这会导致两种极端情况:

情况一:模型非常确定(k 太大,引入噪声)
  • 例子"床前明月光,疑是地上__"
  • 假设的概率分布
    1. : 0.90 (90%)
    2. 鞋: 0.005
    3. 糖: 0.005
    4. 脏: 0.001
  • Top-k (k=50) 的问题
    • 虽然 “霜” 显然是正确答案,但 Top-k 强行保留了前 50 个词。
    • 这意味后 49 个干扰项(虽然概率低)依然被保留在候选池中。
    • 如果此时Temperature 较高(例如 T=1.5),“霜” 的优势会被削弱,模型就有可能“抽风”选中第 30 名的“脏”字,导致生成完全离谱的内容。
情况二:模型很不确定(k 太小,抹杀多样性)
  • 例子"今天中午我准备吃__"
  • 假设的概率分布
    1. 米饭: 0.15
    2. 面条: 0.14
    3. 饺子: 0.13
    4. 寿司: 0.08
    5. 汉堡: 0.05
  • Top-k (k=5) 的问题
    • 前 5 个词的概率加起来可能只有0.15+0.14+0.13+0.12+0.11=0.650.15+0.14+0.13+0.12+0.11 = 0.650.15+0.14+0.13+0.12+0.11=0.65(65%)。
    • 排在第 10 名的“寿司” (8%) 和第 1 名的“米饭” (15%) 差别并不大,都是合理的选项。
    • 但因为k=5k=5k=5的死板限制,“寿司”被直接淘汰了。这极大地限制了生成的丰富性。

3. Top-p (Nucleus) Sampling

作用:动态截断,保留累积概率达到 p 的最小集合。

  • 原理:设定一个阈值ppp(例如 0.9)。将候选词按概率排序后,从高到低逐个累加,直到总概率超过ppp为止。只保留这组词。

Top-p 如何解决 Top-k 的问题?

Top-p 的候选集大小(Candidate Set Size)是动态变化的:

  • 应对“非常确定”的情况
    • "床前明月__"的例子中,"霜"(0.90) 一个词就达到了p=0.9p=0.9p=0.9的阈值。
    • 结果:候选集大小自动变为1。彻底剔除了“鞋”、“糖”等噪声。
  • 应对“很不确定”的情况
    • "中午吃什么"的例子中,为了凑够p=0.9p=0.9p=0.9,模型需要把前 15 个甚至前 20 个食物都选进来。
    • 结果:候选集大小自动变为20。保留了所有合理的选项。

总结:最佳实践

参数推荐配置场景
Temperature0.0 - 0.3代码、数学、事实问答 (精准)
0.7 - 1.0创意写作、聊天 (多样)
Top-k40 - 100传统的截断方式,通常配合 Temperature 使用
Top-p0.9 - 0.95现代 LLM 的首选,通常能比 Top-k 获得更好的生成质量

通常建议:优先使用Top-p来过滤候选词,然后再配合Temperature来调整分布的平滑度。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:52:25

AI法律顾问助手:帮助用户理解复杂合同条款

AI法律顾问助手&#xff1a;让合同条款“活”起来 想象一下&#xff0c;你刚拿到一份长达二十页的租房合同&#xff0c;满眼都是“不可抗力”“违约责任”“排他性条款”……头大如斗。如果这时&#xff0c;屏幕上走出一位穿着得体、语气沉稳的“律师”&#xff0c;一边指着关键…

作者头像 李华
网站建设 2026/4/22 18:16:24

RotationAroundLine 模型的旋转

一&#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段&#xff0c;因博客字数限制&#xff0c;故进行拆分。主教程链接&#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①模型的旋转 二&#xff1a;代码及注释 i…

作者头像 李华
网站建设 2026/4/23 11:36:15

AI 编码时代的生产力跃迁:2025 年开发者生态报告深度解读

大家好&#xff0c;我是Tony Bai。“如果你觉得今年的 PR (Pull Request) 变大了&#xff0c;你的感觉是对的。如果你觉得代码写得更快了&#xff0c;这也是对的。事实上&#xff0c;整个软件开发的节奏&#xff0c;正在被 AI 全面重塑。”近日&#xff0c;Greptile 发布了《20…

作者头像 李华
网站建设 2026/4/23 11:38:54

Linly-Talker支持模型热切换,A/B测试轻松实现

Linly-Talker支持模型热切换&#xff0c;A/B测试轻松实现 在虚拟主播直播间里&#xff0c;观众正在提问&#xff1a;“这款产品的优惠力度能再大点吗&#xff1f;” 数字人主播几乎立刻回应&#xff1a;“目前已经是限时五折&#xff0c;前100名下单还送专属礼品哦&#xff01;…

作者头像 李华
网站建设 2026/4/23 14:45:42

如何利用 LLM 推动基因编辑革命

原文&#xff1a;towardsdatascience.com/how-llms-can-fuel-gene-editing-revolution-1b15663f697c |人工智能| 长语言模型| 基因编辑| 医学中的 AI| https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0cf407a93a483ec598632eb4690812fb.p…

作者头像 李华