Temperature(温度)

Temperature

控制随机性

亦作、亦称:温度

Temperature(温度)是大语言模型推理时控制输出随机性的核心超参数,通过在 softmax 前将 logits 除以温度值 T,平衡生成结果的确定性与多样性。它不改变模型权重,只作用于解码阶段,是调节生成质量最常用的参数之一。

概述

Temperature 决定模型在每一步 token 采样时「保守」还是「冒险」。

  • 取值范围:通常在 0–2 之间,超过 2 后输出往往失去连贯性。
  • 低温度(0–0.3):概率分布更尖锐,模型倾向选择高置信 token,输出确定且可重复。
  • 中温度(0.5–1.0):兼顾流畅与多样,是大多数对话与写作任务的常用区间。
  • 高温度(1.2–2.0):分布趋于平坦,低概率 token 也有机会被采样,输出更随机、更多样,但错误率上升。
  • 温度 = 0:等价于贪心解码(greedy decoding),每步选概率最高的 token,结果完全可复现。

工作原理

Temperature 在 softmax 之前对原始 logits 做线性缩放,数学形式简洁直观。

  • 公式P(token_i) = exp(logit_i / T) / Σ exp(logit_j / T),T 即温度值。
  • T < 1 时:各 logit 差距被放大,高概率 token 优势更突出,分布更「尖峰」(peaky)。
  • T > 1 时:各 logit 差距被压缩,分布更「平坦」(flat),低概率 token 获得更多采样机会。
  • T → 0 时:退化为 argmax,即贪心解码,随机性消失。
  • T = 1 时:softmax 输出保持原样,反映模型训练时学到的原始概率分布。
  • T → ∞ 时:所有 token 概率趋于均匀,输出接近完全随机,语言先验失效。

应用场景

不同任务对确定性与多样性的需求差异显著,Temperature 的合理设置至关重要。

  • 代码生成与数学推理:推荐低温度(0–0.2),减少随机错误,提高语法正确率。
  • 问答与事实检索:低至中温度(0.2–0.5),确保答案准确,抑制「幻觉」。
  • 通用对话与文章写作:中温度(0.7–1.0)兼顾流畅与自然,是 ChatGPT 等产品的常用区间。
  • 创意写作与头脑风暴:中高温度(1.0–1.5),鼓励词汇多样性和意外联想,适合诗歌、故事生成。
  • 数据增强:高温度配合多次采样,可生成风格各异的训练样本,用于合成数据生产。

与相邻概念的区别

Temperature 常与其他采样参数混淆,厘清边界有助于精准调参。

  • Temperature vs Top-p(核采样):Top-p 按累积概率截断候选集后再采样,Temperature 先改变整体概率分布再采样;两者可叠加使用,但同时调高容易过度放大随机性。
  • Temperature vs Top-k:Top-k 固定保留概率最高的 k 个 token 但不改变相对权重,Temperature 改变所有 token 的相对概率,作用更全局。
  • Temperature vs Repetition Penalty:Repetition Penalty 惩罚已出现的 token 以减少重复,Temperature 控制整体随机性,两者作用层面正交。
  • Temperature vs Beam Search:Beam Search 是确定性多路搜索策略,Temperature 属于随机采样策略,不能直接混用;现代 LLM 推理服务几乎默认使用 Temperature 采样。
  • Temperature vs Greedy Decoding:Greedy 是 Temperature → 0 的极限情形,是 Temperature 的特殊案例。

局限与误区

Temperature 是强力旋钮,但存在几个常见误解需要澄清。

  • 误区:「温度越高越有创意」:高温度带来更多样的输出,但也引入更多错误 token;创意质量取决于模型能力,Temperature 无法凭空赋予。
  • 误区:「温度 = 0 最安全」:贪心解码可能陷入重复循环(repetition loop),对长文本生成反而不稳定。
  • 误区:「低温度一定更准确」:低温度让模型更「自信」地输出它认为最可能的答案,若模型本身存在错误先验,低温度会让错误更难被纠正。
  • 局限:跨模型不可直接类比:同样的温度值在不同模型(如 GPT-4 vs Llama 3)上效果差异显著,因各模型 logits 的量级分布不同。
  • 局限:不能替代 Prompt 工程:Temperature 只调整采样分布,无法弥补 Prompt 设计不佳导致的方向性错误。

发展脉络

Temperature 采样的思想源自统计物理,后被引入神经网络与语言模型领域。

  • 1985 年:Ackley、Hinton、Sejnowski 三人在论文「A Learning Algorithm for Boltzmann Machines」中将物理学「温度」概念引入玻尔兹曼机,用温度参数控制随机神经元激活的随机性。
  • 1990 年代:Temperature 被用于早期 RNN 语言模型的字符级采样,成为生成模型的标配参数。
  • 2015 年:Andrej Karpathy 博文「The Unreasonable Effectiveness of Recurrent Neural Networks」展示不同温度对 char-rnn 输出的影响,使该参数在深度学习社区广为人知。
  • 2017–2018 年:随着 Transformer(Vaswani 等,2017)和 GPT-1(OpenAI,2018)兴起,Temperature 成为所有主流 LLM 推理 API 的标准参数。
  • 2023 年至今:随着 OpenAI API、Anthropic Claude、Llama 等大模型普及,Temperature 与 Top-p、Top-k 的组合调参成为 Prompt Engineering 的基础技能之一。

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「控制随机性」
  • 「大模型圈高频词」
  • 「跟 Temperature 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    文本生成:语言模型与解码策略

    从贪心搜索到核采样,掌握文本生成的解码技术

  2. 2

    Prompt Engineering 最佳实践

    系统学习 CoT、Few-shot、ReAct 等 Prompt 设计模式与技巧

外部参考

维基百科:查看「Temperature」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。