“我想让模型多点想象力。”
“我希望它能给出最靠谱的答案。”
——你也许说过这样的话,但你知道吗?这背后的秘密,只是一行代码:logits / T
。
在现代大语言模型(如 ChatGPT、Gemini、Claude)中,生成文本的过程充满了“选择”:模型需要决定接下来的哪个词最合适。而“温度缩放(Temperature Scaling)”这个概念,就像是控制这台文本生成引擎的温控旋钮 —— 你转动一下,它的性格可能就变了。
今天,我们就用生动的语言,一起拆解这个优雅又深刻的概念。
一切从 softmax 开始
在模型生成词语之前,它其实预测的是一个“下一个词的可能性列表”,我们称之为 logits(未归一化的分数)。这些 logits 经过 softmax 处理后变成概率分布:
它告诉模型:“下一个词里,哪个最有可能?”
但如果 softmax 的输出总是高度集中(比如 99% 都给了一个词),你会发现模型的回答变得很刻板、很重复 —— 总是那个词,总是那种句式。
这时,就要请出我们今天的主角:
什么是“温度”?
温度,是 softmax 中的一个缩放因子。你可以把 logits 除以一个温度值 T 后再传给 softmax:
这个值 T 的变化,产生了截然不同的“性格”:
-
当 T=1:模型按默认方式工作 —— 平衡输出,理性回答。
-
当 T>1:高温会“软化” logits 分布,使得概率变得更加平均,低概率的词有更多机会被选择。输出更多样、更具想象力。
-
当 T<1:低温会“强化” logits 差异,使得概率更加集中,模型只信最强的那个候选。输出更确定、更“偏执”。
这种行为的数学本质,来自指数函数的性质:
指数函数在大于 1 时增长迅速,小于 1 时增长缓慢。
举个例子:GPT 的性格调节器
假如你要生成一句诗,试试:
-
高温(T = 1.5)
“星辰坠入玫瑰,梦在黑夜行走。”
-
常温(T = 1.0)
“夜空中星星闪烁,月亮缓缓升起。”
-
低温(T = 0.5)
“夜晚星星闪耀。”
你会发现,温度越高,句子越出奇,甚至可能出现“跳脱常规”的词汇或结构。而温度越低,句子越像课文、越保守、越“主流”。
为什么温度缩放不破坏概率分布?
你可能会问:“我们不是除以温度值了吗?概率的总和还等于 1 吗?”
答案是:是的。
因为 softmax 本质上是“归一化”的指数运算,哪怕你把 logits 除以一个值,它依然会重新计算所有概率,使它们的总和保持为 1。换句话说,温度只是改变了 分布的陡峭程度,不会破坏它是概率的本质。
理论上的意义:信息熵与创意控制
从信息论的角度看,softmax 输出的分布有一个“熵”:
-
熵越高:分布越均匀 → 模型越“开放”
-
熵越低:分布越集中 → 模型越“果断”
而温度,正是调节这一“熵”的工具。你可以理解为:
“温度越高,模型越困惑,越不确定自己说什么;温度越低,模型越确信,越愿意拍板。”
这也就是为什么我们称之为“困惑度(Perplexity)”——用来度量模型预测的“不确定性”。
小结:温度,就是你的“创意调节钮”
在大语言模型的世界里,温度并不是热力学概念,而是控制“思维分布”的魔法旋钮:
-
想让模型更加发散、更具诗意?调高温度。
-
想让模型更加可靠、保守、精确?调低温度。
-
想要平衡?用默认的温度 = 1。
从 API 调用到微调训练,从生成歌词到回答考题,温度缩放都是你手中那根不可或缺的调节杆。