Skip to content

温度(Temperature)

一句话 TL;DR:温度是大模型生成时调节 softmax "陡峭度" 的单个参数。温度低,分布变尖,模型更确定(趋近 贪心);温度高,分布变平,模型更随机(趋近纯随机)。它本质是在调节输出分布的"熵"--即"创造力"vs"确定性"的旋钮。


L1 · 一句话点破

温度 $T$ 是 softmax 的一个缩放因子,作用于 logits(softmax 前的原始输出):

$$ P_T(v) = \frac{\exp(z_v / T)}{\sum_{v'} \exp(z_{v'} / T)} $$

  • $T \to 0$:分布趋近 one-hot(永远选最大 logit),退化为 贪心解码
  • $T = 1$:原始 softmax 分布
  • $T \to \infty$:分布趋近均匀(纯随机)

温度调节"模型有多敢冒险选低概率 token"。低温度 = 保守,高温度 = 激进。

L2 · 通俗类比

调收音机的"灵敏度旋钮":

  • 低温度(T=0.3):只接收最强信号台。稳定但单调,永远听一个台。
  • 中温度(T=0.7):主要听强信号台,但偶尔切到附近弱台。多样但可控。
  • 高温度(T=1.5):所有台都收,频繁切换。丰富但可能收到杂音。
  • 极高温度(T=10):所有台信号一样强,随机乱切。杂乱无章。

对应到生成:

  • T=0.3(低温):模型永远选概率最高的词。适合代码、数学、事实问答--需要确定、准确。
  • T=0.7(中温):模型主要选高概率词,偶尔选次高。适合对话--既合理又有变化。
  • T=1.5(高温):模型常选低概率词。适合 brainstorming、创意激发--天马行空。
  • T=10(极高):模型乱选词。输出无意义。

"温度"这个名字来自统计物理。在物理学中,温度高 = 粒子运动随机性强;温度低 = 粒子运动确定。softmax 的温度参数借用这个比喻:高温 = 概率分布"热"(随机),低温 = 概率分布"冷"(确定)。

L3 · 正经定义

温度(Temperature) 是 softmax 函数的缩放参数,调节输出分布的"锐度":

$$ P_T(v) = \frac{\exp(z_v / T)}{\sum_{v'} \exp(z_{v'} / T)} $$

其中 $z_v$ 是 token $v$ 的 logit,$T > 0$ 是温度。

性质

  • $T$ 不改变 logit 的排序(最大 logit 对应的 token 概率始终最高)
  • $T$ 改变概率分布的"陡峭度"
  • $T \to 0^+$:$P_T \to \text{onehot}(\arg\max z)$(贪心)
  • $T = 1$:原始 softmax
  • $T \to \infty$:$P_T \to 1/|V|$(均匀分布)

实务典型值

温度行为适用
0贪心代码、推理、评测复现
0.3高确定性事实问答、摘要
0.7平衡通用对话默认
1.0原始分布训练时、对比基线
1.2-1.5高随机性创意写作、brainstorming
2.0+极随机几乎不用

温度与熵的关系:分布的熵 $H(P_T) = -\sum P_T \log P_T$ 随 $T$ 单调递增。温度直接控制输出的"不确定性"。

参考资料

L4 · 原理深挖

4.1 温度的数学本质:调节分布的熵

温度的本质是调节输出分布的熵。考虑两个 logit 差 $\Delta = z_1 - z_2$,对应两个 token 的概率比:

$$ \frac{P_T(v_1)}{P_T(v_2)} = \exp\left(\frac{\Delta}{T}\right) $$

  • $T$ 小:$\Delta/T$ 大,概率比大,分布尖锐(高概率 token 主导)
  • $T$ 大:$\Delta/T$ 小,概率比接近 1,分布平坦(各 token 概率接近)

极端情况:

  • $T \to 0$:$\exp(\Delta/T) \to \infty$($\Delta > 0$ 时),最高 logit 的 token 概率趋于 1,其余趋于 0。退化为 贪心
  • $T \to \infty$:$\exp(\Delta/T) \to 1$,所有 token 概率趋于 $1/|V|$。纯随机。

熵 $H$ 随 $T$ 单调递增(在 logit 不全相等时)。所以温度就是"熵调节器"。

4.2 温度的物理类比:Boltzmann 分布

温度参数的命名来自统计物理。Boltzmann 分布描述粒子在不同能量状态的占据概率:

$$ P(\text{state } i) = \frac{\exp(-E_i / k_B T)}{\sum_j \exp(-E_j / k_B T)} $$

  • $E_i$:状态 $i$ 的能量
  • $T$:温度
  • $k_B$:Boltzmann 常数

类比到 softmax:

  • logit $z_v$ 对应 $-E_i$(高 logit = 低能量 = 高概率)
  • 温度 $T$ 直接对应物理温度

物理意义:

  • 低温:粒子集中在低能态(基态),系统确定
  • 高温:粒子均匀分布各能态,系统随机

Ackley et al., 1985 - Boltzmann Machine 把这个概念引入神经网络。现代 LLM 的温度参数是同一个概念的延续。

4.3 温度与采样策略的关系

温度常和 Top-kTop-p 组合使用。流程:

logits = model(seq)[-1]
logits = logits / temperature       # 1. 调温度
probs = softmax(logits)             # 2. softmax
# 3. 可选:Top-k 或 Top-p 截断
# 4. 采样

温度调节分布形状,Top-k/Top-p 截断长尾。两者互补:

  • 温度:全局"软调节",所有 token 概率都调整
  • Top-k/Top-p:局部"硬截断",nucleus 外 token 概率置 0

实务组合

  • 通用对话:temperature=0.7, top_p=0.9(OpenAI 风格默认)
  • 事实问答:temperature=0.3, top_p=0.8
  • 创意写作:temperature=0.9, top_p=0.95
  • 代码/推理:temperature=0, top_p=1(纯贪心)

注意:当 temperature=0 时,分布退化为 one-hot,Top-k/Top-p 失去意义(永远选最高)。所以 temperature=0 时通常不需要 Top-k/Top-p。

4.4 训练时的温度:知识蒸馏

温度不只是推理时的参数,在训练中有关键应用:知识蒸馏(Knowledge Distillation)

Hinton et al., 2015 - Distilling the Knowledge 提出:用高温 softmax 生成"软标签"训练小模型,让小模型学到教师模型的"暗知识"(dark knowledge)--即非正确类的相对概率。

教师模型(大): logits = [10, 5, 2, 1]  # 正确类是 0
  T=1: softmax = [0.997, 0.003, 0.0001, 0.00004]  # 几乎只学"类 0 对"
  T=5: softmax = [0.56, 0.23, 0.11, 0.10]          # 学到"类 1 比类 2 更接近正确"

高温让"次优类的相对关系"显现,小模型不只学"哪个对",还学"哪个接近对"。这是知识蒸馏的核心技巧,让小模型接近大模型性能。

4.5 温度的常见误区

① "温度=1 是默认,所以最好"

不是。T=1 是模型原始输出分布,但模型训练时用 T=1 的 next-token CE,不代表推理时 T=1 最优。多数对话场景 T=0.7 比 T=1 效果好(更确定、更少胡言乱语)。

② "温度越低越准确"

在事实性任务上确实。但在创意任务上,低温让输出枯燥重复。准确性和多样性是权衡,温度调节这个权衡。

③ "温度可以无限大"

理论上可以,但 T 过大(如 T>2)输出基本无意义(接近纯随机)。实务很少用 T>1.5。

④ "温度和 Top-p 是一回事"

不是。温度是全局软调节,Top-p 是局部硬截断。机制不同,常组合使用(4.3)。

4.6 温度调节的直觉

一个有用的直觉:

  • 温度低:模型"自信",只选最可能的。适合需要准确的场景。
  • 温度高:模型"犹豫",候选都考虑。适合需要创意的场景。

但"自信"不等于"正确"。模型可能自信地错(幻觉)。低温让模型更确定地输出它的(可能错误的)判断,不解决准确性问题。

实际使用建议:

  • 从 T=0.7 开始:通用默认
  • 需要更稳定:降到 0.3-0.5
  • 需要更创意:升到 0.9-1.2
  • 需要可复现:T=0(贪心)

L5 · 沿革与坑

沿革

  • 1985Ackley et al. - Boltzmann Machine 把物理温度引入神经网络。
  • 1990s:模拟退火(simulated annealing)等算法用温度控制探索-利用权衡。
  • 2015Hinton et al. - Knowledge Distillation 用高温 softmax 做知识蒸馏,温度在训练中有关键应用。
  • 2018-2020:GPT-2/GPT-3 时代,温度成为推理时标配参数。
  • 2022-2023:ChatGPT 等对话 API 把温度作为用户可调参数,T=0.7 成为通用默认。
  • 2024-2025:推理模型(o1、DeepSeek-R1)用 T=0 保证可复现,温度在评测中的标准化成为议题。

常见误解

  • 误解:温度越低模型越聪明。 ✅ 真相:温度调节的是"确定性 vs 随机性",不是"聪明 vs 愚蠢"。低温让模型更确定地输出它的判断(可能错),不提升准确性。

  • 误解:T=1 是"正确"的温度。 ✅ 真相:T=1 是模型训练时的温度,不代表推理时最优。多数对话场景 T=0.7 效果更好(4.5)。

  • 误解:温度高能解决幻觉。 ✅ 真相:不能。高温让模型更随机,可能加剧幻觉(选了不该选的 token)。幻觉的根源是模型不知道自己不知道,温度无法解决(见 幻觉)。

  • 误解:温度和 Top-p 二选一。 ✅ 真相:机制不同(软调节 vs 硬截断),常组合使用。OpenAI 等默认同时支持(4.3)。

  • 误解:温度=0 等于贪心解码。 ✅ 真相:等价。T=0 时 softmax 退化为 argmax,与贪心完全相同。框架常通过 temperature=0 实现贪心。

  • 误解:温度可以无限调高获得更多创意。 ✅ 真相:T>1.5 后输出基本无意义(接近纯随机)。创意有上限,温度过高反而破坏质量(4.5)。

面试怎么考

  1. "什么是温度?怎么影响生成?" --softmax 的缩放因子,调节分布熵。低温确定,高温随机(L1、L3)。
  2. "温度的物理含义?" --来自 Boltzmann 分布。低温粒子集中低能态(确定),高温均匀分布(随机)(4.2)。
  3. "温度=0 和贪心什么关系?" --等价。T=0 时 softmax 退化为 argmax(4.1)。
  4. "温度和 Top-p 的区别?" --温度是全局软调节,Top-p 是局部硬截断。常组合使用(4.3)。
  5. "温度在训练中有什么用?" --知识蒸馏。高温 softmax 生成软标签,让小模型学"暗知识"(4.4)。
  6. "通用对话温度怎么设?" --T=0.7 是通用默认。需要稳定降,需要创意升(4.5)。

延伸阅读


上一篇:Top-p 采样 -- 自适应窗口的采样策略。下一篇:幻觉 Hallucination -- 模型为什么一本正经胡说八道。

内容采用 CC BY-SA 4.0,代码采用 MIT。