什么是 温度参数?
温度参数是解码阶段的控制参数,它在 Softmax 前除以下一 Token 的 Logits;正温度较低时概率分布更集中,较高时概率分布更平坦。
快速了解
| 全称 | 大语言模型采样温度 |
|---|---|
| 创建时间 | 概念源自统计力学,2010 年代应用于 NLP |
| 规范文档 | 官方规范 |
工作原理
温度缩放的是 Logit 相对差距
从所有 Logit 减去同一个常数不会改变 Softmax 概率,因此实现通常先减最大值以保证数值稳定,再除以 T。较低的正温度放大 Logit 差距,较高温度压缩差距。有限 Logit 的排序不会改变,改变的是概率质量,以及采样选中各候选 Token 的机会。
零值是 API 约定而不是公式结果
Softmax 表达式在 T=0 时没有定义。提供商可能把零解释为 Greedy Decoding、把它钳制为极小正数、直接拒绝,或对某些模型不开放温度控制。即使采用贪婪选择,也不能保证字节级复现:并列分数、浮点 Kernel、动态批处理、模型版本、隐藏 Prompt、工具结果和后端路由都可能改变输出。
过滤器与结构化解码会改变候选集合
Top-p、Top-k、重复惩罚、Logit Bias、Grammar Constraint 与安全过滤可能在温度缩放前后执行,顺序取决于服务实现。Constrained Decoding 可以强制语法有效,而温度只会在当前允许的 Token 中重新分配概率。操作顺序没有统一规范时,同时修改多个参数会让效果难以归因。
应针对任务分布评测,而不是套用经验配方
构建有代表性的 Evaluation Set,衡量有效格式、任务质量、事实依据、拒答、多次采样的多样性、延迟和成本。在固定模型版本、Prompt、可用 Seed 与其他解码参数的前提下,仅扫描提供商支持的取值。最终从质量与多样性的 Pareto Frontier 选点;低温不保证准确,高温也不保证有创意。
主要特点
- 对正温度值,在 Softmax 前除以下一 Token 的 Logits
- 改变概率集中程度,但不改变有限 Logit 的候选排序
- 取值范围、默认值、参数校验与零值语义由提供商定义
- 会与 Top-p、Top-k、惩罚项、Logit Bias、约束和安全过滤交互
- 不能单独保证确定性、正确性、事实性或创造力
- 应通过重复的任务级评测选择,而不是采用固定配方
常见用途
- 通过多次生成样本测量任务质量与输出多样性的权衡
- 让分类或抽取概率更集中,同时保留格式校验与兜底流程
- 为头脑风暴探索多个候选,再交给排序器或人工筛选
- 验证结构化解码器在不同受支持采样设置下是否稳定
- 记录完整解码配置,使模型评测和线上事故可以复现
示例
Loading code...常见问题
温度参数在数学上改变了什么?
对于正温度 T,每个下一 Token 的 Logit 会先除以 T,再进入 Softmax。T 小于 1 会放大差距,让概率向原本高 Logit 的 Token 集中;T 大于 1 会压缩差距并分散概率。它不会改变有限 Logit 的排序,不会重新训练模型,也不会引入外部证据。
Temperature=0 能让 LLM 完全确定吗?
不一定。数学公式在零值处没有定义,API 通常改走提供商指定的贪婪或近贪婪路径。分数并列、数值计算 Kernel、动态批处理、后端变化、模型版本、隐藏指令与非确定性工具仍可能改变结果。可复现性必须作为完整系统属性实测。
降低温度能减少 AI 幻觉吗?
低温可能减少输出差异,让结果集中到高概率续写,但高概率不等于事实。模型可以非常稳定地重复同一条无依据结论。事实型系统仍需要 Grounding、引用核验、校准拒答、检索评测与任务级测试,不能只依赖解码参数。
温度参数和 Top-p 应该一起调整吗?
二者作用不同:温度重塑概率,Top-p 按累积概率限制候选集合,而且具体执行顺序可能因提供商而异。应先固定一个参数,只扫描另一个,记录全部配置并比较多次采样;只有评测证明组合设置有效时,才同时启用。
代码、抽取或创意写作应该使用多高温度?
任务名称无法推出跨模型通用数值,因为模型、Prompt、约束与提供商范围都不同。应从官方默认值开始,用代表性样本扫描支持区间,并同时比较正确率或格式有效率、多样性、延迟与成本。严格格式更应依赖 Grammar 或 Schema Constraint,而不是只调低温度。