想象你是一位糕点师,面前摆着一排配料:草莓、奶油、核桃、可可、蜂蜜和薄巧。你心里对每一份配料都有好感度——有的让你强烈心动,有的只是顺眼。当你要决定“下一块蛋糕放哪种配料”时,如果你的手很稳,永远只拿心动值最高的那一种,蛋糕就会千篇一律;如果你今天心情飞扬,什么都想试试,蛋糕就会千变万化,偶尔惊艳、偶尔翻车。大模型生成文字时,恰好也面临着同样的选择:每个候选词背后都有一组“心动值”,而它有一个和厨房火候旋钮同名的开关——Temperature(温度参数)。旋钮调低,模型的手就“稳”,输出保守一致;旋钮调高,模型的手就“活”,输出天马行空。这篇文章,就是带你亲手拧一拧这个旋钮,搞懂它的数学原理、脾气秉性、推荐刻度,以及它和另一位搭档 top-p 如何配合,最终把模型的输出调成你想要的“口感”。

岗位关联

对 Prompt 工程师而言,温度调优是控制模型“稳与活”的核心手感:低温保证产品级可靠,高温激发创意火花。掌握它,你才能让大模型在真实业务中既听话又出彩。

目录
  1. 可视化演示
  2. 认识温度参数
  3. 数学原理拆解
  4. 低温模式特性
  5. 高温模式特性
  6. 推荐参数区间
  7. 与top-p的配合
  8. 调优实战流程
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

通过交互式温度滑块实时观察softmax函数在不同温度下对token概率分布的调节效果,展示低温收敛与高温发散的差异及任务推荐值。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Softmax温度缩放可视化 温度T作用于logits除以T后做softmax,低温使分布尖锐、高温使分布平坦 softmax(z/T) = exp(z_i/T) / Σexp(z_j/T) 温度越低输出越确定,温度越高输出越随机多样。

认识温度参数

糕点师阿甜每天清晨面对同一张配料表,但她有一个秘密旋钮。旋钮在 1 档时,她手稳如磐石,闭着眼睛也能做出和昨天一模一样的草莓蛋糕;旋钮在 10 档时,她灵感乱窜,今天撒核桃、明天浇蜂蜜,客人评价两极分化。大模型也有这样一个旋钮,名字就叫 Temperature。它不改变模型“知道什么”,只改变模型“选哪个词”的放手程度,是生成阶段真正的性格开关。

模型在下笔前,会先给词表里每一个候选词打一个“心动分”(术语叫 logits,对数几率)。得分越高,代表模型越倾向于选它。但模型不会直接选分数最高的词——那是贪心解码,它更像是一次“加权抽签”:分数高的词被抽中的概率大,分数低的也不是完全没机会。温度参数就插在这个“分数到概率”的换算环节里,负责告诉你:抽签时手要稳,还是手要浪。

当 T=1 时,一切保持原样;当 T<1 时,高分词的势头被放大,低分词几乎出局;当 T>1 时,大家的机会被拉平,低分词也跃跃欲试。往极端推,温度趋近于 0 就等于次次选最高分的贪心解码,温度趋近无穷大就等于闭眼均匀乱选。

明白了旋钮的存在,下一个问题就是:转动它时,那些概率柱究竟是怎么被揉捏变形的?这就要拆开它的数学齿轮了。

lim⁡T→0Pi→贪心解码;lim⁡T→∞Pi→均匀分布\displaystyle \lim_{T \to 0} P_i \to \text{贪心解码}; \qquad \lim_{T \to \infty} P_i \to \text{均匀分布}
温度旋钮的两端:一端是“永远选最稳的”,一端是“闭眼抽签”,中间是连续可调的创意光谱。
  1. 极限符号 $\lim_{T \to 0}$让温度旋钮无限拧向“零”的方向,用来观察极端状态下的行为,实际使用时取很小的正数即可。
    lim⁡T→0\displaystyle \lim_{T \to 0}
  2. 贪心解码每次都只选心动值最高的那个词,输出变得唯一且确定,就像阿甜永远只做最拿手的草莓口味。
    Pi→1(i=arg⁡max⁡jzj)\displaystyle P_i \to 1 \quad (i = \arg\max_j z_j)
  3. 极限符号 $\lim_{T \to \infty}$温度被拧到无穷大的另一个极端,所有指数缩放都趋近于 1,不再偏袒任何词。
    lim⁡T→∞\displaystyle \lim_{T \to \infty}
  4. 均匀分布所有候选词机会均等,输出完全随机、无法预测,相当于阿甜闭着眼睛随手抓配料。
    Pi→1N\displaystyle P_i \to \frac{1}{N}

数学原理拆解

阿甜手里有一张“心动值清单”,上面给每种配料打了分:草莓 2.5 分、奶油 1.8 分、核桃 1.2 分……这些分数本身只是相对感觉,它必须被翻译成“选它的概率”,才能用于抽签。这个翻译官就是 softmax:先把每个分数做指数运算,再除以所有分数的指数之和,让输出变成一组加起来等于 1 的概率。

温度在这里干的活,是“先缩放分数,再交给 softmax”。具体做法是把每个心动分都除以温度 T,然后再走指数和归一化流程。为什么除以 T 会改变性格?因为除法会改变分数之间的差距:除以一个小于 1 的数等于放大差距,除以一个大于 1 的数等于压缩差距。差距放大,高分一骑绝尘;差距压缩,大家齐头并进。

Pi=ezi/T∑j=1Nezj/T\displaystyle P_i = \frac{e^{z_i / T}}{\sum_{j=1}^{N} e^{z_j / T}}

1. $z_i$ 表示第 i 个候选词的心动分:模型对该词的偏好强度,分值越高越受青睐,相当于阿甜给配料打的印象分。

zi\displaystyle z_i

2. 除以温度 $T$:对整个列表的分数统一做缩放,T<1 相当于给差距“加油门”,T>1 相当于“踩刹车”。

zi/T\displaystyle z_i / T

3. 指数运算 $e^{z_i / T}$:把任意实数分数变成正数,并进一步拉大相对差距,保证低分词不会直接变成零概率。

ezi/T\displaystyle e^{z_i / T}

4. 分母求和 $\sum_{j=1}^{N} e^{z_j / T}$:把所有词的指数值加起来,作为归一化分母,让每个 $P_i$ 都落在 0 到 1 之间且总和为 1。

∑j=1Nezj/T\displaystyle \sum_{j=1}^{N} e^{z_j / T}

公式说完了,现在回到厨房:如果你把旋钮拧到很低的刻度,阿甜手里的概率柱会变成什么样子?答案在下一节。

低温模式特性

把火候旋钮拧到接近 0,阿甜变得极度“专一”:草莓的强势地位被无限放大,其他配料几乎沦为背景板。低温的本质,就是让最高心动分在概率分布里占据统治地位。此时模型输出的词几乎总是它最有把握的那一个,句子的走向被牢牢锁在“最安全”的轨道上。

这种模式特别适合讲究正确性和一致性的任务。比如代码生成、数学推理、JSON 结构化输出、从文档里抽取字段——这些场景里,你宁可要一个 100 分但平淡的答案,也不要一个 80 分但花哨的错误。低温还带来一个隐藏福利:可复现性。同一个问题在 T=0.2 下多次提问,答案基本一致,这对自动化测试和产品验收至关重要。

但低温不是免费的午餐。由于模型永远走最熟悉的老路,它容易陷入模板化:反复使用同样的句式、同样的连接词,长文本生成时甚至会出现整段重复的“复读机”现象。过度保守还会让模型的推理链僵硬,遇到需要绕弯子的题目时,它会固执地撞南墙而不肯尝试另一条路。

Pmax⁡(T)=ezmax⁡/T∑j=1Nezj/T\displaystyle P_{\max}(T) = \frac{e^{z_{\max}/T}}{\sum_{j=1}^{N} e^{z_j / T}}

1. $z_{\max}$ 最高心动分:候选词中模型最喜欢的那一个,是低温模式下的“天选之子”。

zmax⁡=max⁡jzj\displaystyle z_{\max} = \max_j z_j

2. 分子 $e^{z_{\max}/T}$:最高分被温度放大后的指数值,T 越小,它相对其他词的优势越夸张。

ezmax⁡/T\displaystyle e^{z_{\max}/T}

3. 分母 $e^{z_j/T}$ 的总和:所有词的指数值之和,用来把分子归一化成 0 到 1 之间的概率。

∑j=1Nezj/T\displaystyle \sum_{j=1}^{N} e^{z_j / T}

4. $P_{\max}$ 逼近 1:当 T 很小(如 0.2)时,最高分词的概率会压倒性地接近 100%,其他词几乎失去出场机会。

lim⁡T→0+Pmax⁡=1\displaystyle \lim_{T \to 0^+} P_{\max} = 1

低温适合“把事做对”,那高温适合什么呢?把旋钮拧向另一端,阿甜的画风将完全反转。

高温模式特性

把旋钮拧到 1.5 以上,阿甜彻底放飞:核桃、可可、薄荷全都跃跃欲试,甚至平时看都不看的边角料也偶尔抢镜。高温的数学本质,是把分数差距压缩,让原本微弱的心动分也有上桌的机会。模型此时不再是“标准答案复读机”,而像一个打开话匣子的说书人,愿意走各种偏门路线。

这种模式是创意任务的提效器。写广告文案、起品牌名、编故事、头脑风暴时,高温能让词汇跳出最常用的安全区,组合出让人眼前一亮的新颖表达。同一个 prompt 反复调用,你会得到风格迥异的多个版本,正好用来做候选方案的批量筛选。

但高温的火候不好掌握。低概率词频繁出场,意味着模型更容易“编”:事实性错误、张冠李戴的幻觉、脱离上下文的跑题都可能集中爆发。而且每次输出都像开盲盒,难以复现,做质检和回归测试时就头疼了。这正是为什么高温必须搭配“事后过滤”或“多版本投票”来使用。

H=−∑i=1NPiln⁡Pi\displaystyle H = -\sum_{i=1}^{N} P_i \ln P_i

1. $P_i$ 第 i 个词的概率:温度改变后重新分配出的选中概率。

Pi\displaystyle P_i

2. $\ln P_i$ 取自然对数:对每个概率取对数,概率越接近 1 时对数值越接近 0,概率越小对数值越负,用于度量“意外程度”。

ln⁡Pi\displaystyle \ln P_i

3. 负号与求和 $-\sum_{i=1}^{N}$:把“概率 × 对数值”加起来再取负,得到熵。分布越均匀,熵越大;分布越集中,熵越小。

H=−∑i=1NPiln⁡Pi\displaystyle H = -\sum_{i=1}^{N} P_i \ln P_i

4. 高温使熵增大:T>1 时各概率趋于均等,熵上升,模型输出的信息量更分散、更多样。

T↑⇒H↑\displaystyle T \uparrow \Rightarrow H \uparrow

低温锁正确、高温换创意,那么具体到实际任务,旋钮到底该拧到哪个刻度?下一节给出一张实用的“火候对照表”。

推荐参数区间

阿甜的厨房墙上贴着一张火候指南:做标准慕斯用小火,做创意分子料理用大火。大模型的温度参数同样有一套经验刻度,不同的任务类型对应不同的推荐区间。这套区间不是数学推导的必然结论,而是大量工程实践中沉淀出的“口感”共识。

对于分类、抽取、代码、数学这类追求精准的任务,业界普遍建议 0.1~0.3 的低温:此时模型几乎每次都给“最有把握”的答案,出错率最低。翻译、摘要、改写这类需要理解力和一定灵活性的任务,0.4~0.7 是甜点位:既不会呆板到逐字直译,也不会跑题到自由发挥。而广告文案、故事创作、头脑风暴这类开放性任务,0.7~0.9 才能激发出足够的多样性;更高的温度(如 1.2+)不是不能用,但必须做好幻觉的心理准备和过滤机制。

边界技巧也很重要:0 这个刻度在工程上通常被映射为贪心解码,适合做基准测试;1.0 是“出厂原味”,很多 API 的默认值;超过 2 的温度几乎等于乱码生成器,实用价值很低。另外,温度只作用于采样阶段,如果模型内部已经通过 prompt 限定了风格,温度的影响会被进一步稀释,所以它应该和 prompt 设计配合使用,而不是单打独斗。

T∗≈{0.1-0.3,确定性任务:代码、抽取、问答、JSON 输出0.4-0.7,平衡任务:翻译、摘要、文本改写0.7-0.9,创意任务:文案、故事、头脑风暴\displaystyle T^* \approx \begin{cases} 0.1\text{-}0.3, & \text{确定性任务:代码、抽取、问答、JSON 输出} \\ 0.4\text{-}0.7, & \text{平衡任务:翻译、摘要、文本改写} \\ 0.7\text{-}0.9, & \text{创意任务:文案、故事、头脑风暴} \end{cases}

1. 第一个区间 0.1-0.3 确定性任务:追求答案唯一、格式严谨,低温能最小化犯错概率,适合交付给下游系统做自动化处理。

T∗∈[0.1,0.3]\displaystyle T^* \in [0.1, 0.3]

2. 第二个区间 0.4-0.7 平衡任务:需要忠实原文又保留一点灵活性,中等温度让模型在“贴题”与“流畅”之间取得折中。

T∗∈[0.4,0.7]\displaystyle T^* \in [0.4, 0.7]

3. 第三个区间 0.7-0.9 创意任务:需要新奇表达,适当高温让低概率词获得登场机会,避免千篇一律。

T∗∈[0.7,0.9]\displaystyle T^* \in [0.7, 0.9]

4. 约等号 $\approx$:这些数值是经验参考而非硬性定律,实际效果还需结合模型版本、prompt 风格和业务反馈来校准。

\displaystyle T^* \approx \[0.1, 0.9\]

温度调好了,可模型输出还是偶尔“乱入”一些离谱词汇?这时你需要认识另一个旋钮——top-p,它和温度是天生一对的搭档。

与top-p的配合

阿甜发现,光调火候还不够:即便用小火,某些“黑暗配料”依然有小概率被选中,毁掉整块蛋糕。她需要一把筛子,先把明显不靠谱的配料直接拦在台面之外,再在剩下的好配料里控制手稳手浪。top-p 就是这把筛子,它的学名叫核采样(nucleus sampling)。

top-p 的运作方式很直观:把候选词按概率从高到低排队,从队首开始累加概率,直到累加值达到预设的 p(比如 0.9),然后把累加过程中未上榜的长尾词全部裁掉,只在前 k 个词组成的“候选池”里采样。而温度负责的是“池内倾斜”——决定候选池里是该让头号选手一枝独秀,还是让几位选手势均力敌。一个管池子多大,一个管池子里怎么分,维度完全不同,所以二者可以叠加使用。

工程上的经典组合是:创意任务用 T=0.9 + p=0.95,既保证候选池涵盖了大部分合理词汇,又让概率分布保持足够的“呼吸感”;严谨任务用 T=0.2 + p=0.9,池子小、头部倾斜大,输出稳定。需要注意的是,二者都调很小会过度约束,模型容易复读;二者都调很大则等效于“盐不要钱”,一发不可收拾。

k∗=min⁡{k  |  ∑i=1kp(i)≥p}\displaystyle k^* = \min\left\{ k \;\middle|\; \sum_{i=1}^{k} p_{(i)} \ge p \right\}

1. 概率降序排列 $p_{(1)} \ge p_{(2)} \ge \dots$:把所有候选词按概率从高到低排队,让最强的选手排在队伍最前面。

p(1)≥p(2)≥⋯≥p(N)\displaystyle p_{(1)} \ge p_{(2)} \ge \cdots \ge p_{(N)}

2. 累加求和 $\sum_{i=1}^{k} p_{(i)} \ge p$:从队首开始逐个累加概率,直到累计值第一次达到或超过阈值 p。

∑i=1kp(i)≥p\displaystyle \sum_{i=1}^{k} p_{(i)} \ge p

3. 取最小的 $k$ 并标记为 $k^*$:在满足条件的所有 k 中取最小值,保证候选池尽量精简,不把低概率长尾词放进来。

k∗=min⁡{k}\displaystyle k^* = \min\{k\}

4. 候选池内采样:最终只从这前 $k^*$ 个词里按概率抽签,温度继续对这些词的相对概率做倾斜缩放。

Vp={v(1),v(2),…,v(k∗)}\displaystyle V_p = \{v_{(1)}, v_{(2)}, \ldots, v_{(k^*)}\}

筛子和旋钮都备齐了,最后一步是方法论:面对一个新任务,你该从哪里开始调、怎么判断调得对不对?

调优实战流程

阿甜研发新蛋糕时有一套流程:先问自己“这块蛋糕要卖给谁、追求统一还是惊喜”,再定初始火候,烤一炉试吃,不满意就微调。调温度同理,第一步永远是需求分析:这个业务是宁可错杀不可放过(选低温),还是宁可百花齐放也要新意(选高温)?想清楚目标再动手,比盲目试参数重要得多。

第二步是设定初始值。按上一节的火候对照表,给任务选一个区间内的起点,比如代码任务从 0.2 起,文案任务从 0.8 起。然后做 A/B 对比:固定同一组 prompt 和输入,分别在两个相邻温度(如 0.3 与 0.5)下各生成多轮,观察输出的重复率、事实正确率和风格差异。

第三步是量化评估并迭代。工程上最常用的粗指标是 n-gram 重复率:把输出切分成连续词块,数一数重复出现的比例。重复率过高说明温度太低,模型在“复读”;事实错误过多说明温度太高,模型在“瞎编”。根据指标方向逐步微调 0.1 的档位,直到在稳定性与多样性之间找到你的甜点位。调参不是玄学,而是一轮轮“观察—假设—验证”的科学过程。

RepeatRate=NrepNtotal×100%\displaystyle \text{RepeatRate} = \frac{N_{\text{rep}}}{N_{\text{total}}} \times 100\%

1. $N_{\text{total}}$ 全部 n-gram 数量:把模型输出按 n 个词为一组做滑窗切分,得到的总片段数,例如一句话切出 10 个三连词块。

Ntotal\displaystyle N_{\text{total}}

2. $N_{\text{rep}}$ 重复 n-gram 数量:这些词块中出现了重复的次数,重复越多说明模型越陷在套路里出不来。

Nrep\displaystyle N_{\text{rep}}

3. 比值乘以 100%:把重复量换算成百分比,得到一个直观的“复读指数”,方便与团队约定验收阈值。

NrepNtotal×100%\displaystyle \frac{N_{\text{rep}}}{N_{\text{total}}} \times 100\%

4. 阈值判断:一般重复率超过 5%~10% 就该考虑升温;同时配合人工抽检事实性,防止升温后产生幻觉。

RepeatRate>5%⇒T↑\displaystyle \text{RepeatRate} > 5\% \Rightarrow T \uparrow

七节讲完,阿甜的厨房里多了一张写满火候心得的手卡。现在,让我们把这些心得搬进真实的办公室,看看温度调优如何在具体业务里落地。

AI 应用场景

智能客服话术生成

阶段:推理与生成阶段(采样参数配置)

解决的问题:客服话术必须口径统一、合规安全,传统做法是人工写死话术模板,费时且无法覆盖海量问法。用低温 0.2~0.3 让大模型生成回复,既保留自然语言表达,又确保同一类问题每次回答基本一致,配合知识库还能减少“客服翻车”。

具体案例:某银行智能客服每天处理上万条用户咨询。工程师将温度设为 0.2、top-p 设为 0.9,并对“退款流程”“挂失操作”等敏感场景单独做低温冷却(0.1),使话术一致性从 60% 提升到 95% 以上,质检通过率大幅上升。

品牌营销文案批量产出

阶段:创意生成阶段(多版本采样)

解决的问题:营销文案需要“量”也需要“新”,人工手写十几个版本耗时数天。用高温 0.8~0.9 配合 top-p 0.95,让模型在发散空间里一次性生成 10 个候选 slogan,再由运营从中挑选和微调,把灵感采集从小时级压缩到分钟级。

具体案例:某消费品团队为新品做上市预热,用 T=0.9 连续生成 30 条不同风格的广告语,包含俏皮、专业、温情等路线;随后用 T=0.3 对选中路线做一致性改写,最终投放的版本既新颖又与品牌口径统一。

评测数据集自动构造

阶段:数据构造与评测阶段

解决的问题:构建模型评测集时,纯靠人工编写题目既贵又慢,而让模型自由发挥又容易产生“题不对文”的脏数据。采用“中温改写 + 低温校验”的流水线:用 T=0.6 让模型对原始题目做多样化改写,再用 T=0.1 让模型校验答案是否唯一且正确,双温配合实现高质量数据集批量生产。

具体案例:某大模型团队需要 500 道数学应用题评测题。工程师把生成温度设为 0.6 产出题目变体,再用低温模型逐题验证答案可复算,最终数据集的正确率达到 98%,且题型分布均匀。

Python 演示

python45 行
import mathimport random  def temperature_softmax(logits, temperature):    """把心动分(logits)变成概率,temperature 是火候旋钮。"""    scaled = [z / temperature for z in logits]    exps = [math.exp(z) for z in scaled]    total = sum(exps)    return [e / total for e in exps]  def sample_from(probs, rng):    """按概率分布掷一次骰子,返回选中下标。"""    r = rng.random()    acc = 0.0    for idx, p in enumerate(probs):        acc += p        if r <= acc:            return idx    return len(probs) - 1  def generate_sentence(logits_per_step, temperature, seed=42):    """模拟大模型按温度逐词生成一句话。"""    rng = random.Random(seed)    tokens = []    for logits in logits_per_step:        probs = temperature_softmax(logits, temperature)        tokens.append(sample_from(probs, rng))    return tokens  if __name__ == "__main__":    vocab = ["天气", "真好", "草莓", "蛋糕", "今天", "开心", "出门", "散步"]    # 每一步的心动分:第一个词明显最高,后面的词差距逐级缩小    steps = [        [3.0, 2.1, 1.5, 0.8, 0.4, 0.0, -0.3, -0.6],        [2.4, 2.2, 1.8, 1.2, 0.6, 0.3, 0.0, -0.2],        [2.6, 1.8, 1.4, 1.0, 0.5, 0.1, -0.1, -0.4],    ]    for temp in (0.2, 1.0, 1.8):        picked = generate_sentence(steps, temperature=temp)        words = [vocab[i] for i in picked]        print("T={:<4} -> {}".format(temp, "".join(words)))
目的:用一组固定的“心动分”模拟大模型每一步选词的过程,直观对比低、中、高三种温度下输出从“稳”到“活”的变化。
  1. scaled = [z / temperature for z in logits]把每个心动分除以温度,低温放大差距、高温压缩差距。
  2. exps = [math.exp(z) for z in scaled]指数化处理,保证所有概率都是正数。
  3. total = sum(exps)求所有指数之和,作为归一化的分母。
  4. return [e / total for e in exps]每个指数除以总和,得到完整概率分布。
  5. r = rng.random()掷一粒 0~1 的随机骰子,模拟采样过程的随机性。
  6. if r <= acc: return idx累计概率覆盖到骰子落点,选中该词。
  7. for temp in (0.2, 1.0, 1.8)三档温度对照实验,观察确定性到发散的渐变。

常见误区

误区很多人以为把温度拉到 1.5 甚至 2.0,模型就会灵感爆棚、文采飞扬,于是把所有创意任务都往高调。

正解温度只是增加“翻牌的随机性”,并不直接提升创作质量。创意来自模型训练时学到的知识,高温只是让低概率的词也有机会上场。过高的温度就像喝醉的厨师乱抓配料,跑题、幻觉、逻辑断裂会集中爆发。真正的创意调优是“先定稳,再放火”,通常 0.9 以内就能得到既新颖又可读的输出。

为何常见:在 Demo 里把温度调高往往能立刻看到“花哨”的句子,让人误以为花哨等于聪明,而忽略了翻车案例。

误区看到公式里 T 在分母上,初学者觉得 T=0 会除零崩溃,或者模型“被冻住”直接没有输出。

正解数学上 $e^{z/0}$ 确实无定义,但主流大模型推理框架(如 transformers、各类 API)都会把 T=0 特判为贪心解码——永远选最高分的词。它不会报错,输出确定且唯一,常被用来做基准测试,只是完全丧失了随机性和多样性。

为何常见:因为从数学公式出发直觉上是“除零错误”,人们没意识到工程实现早已为这个边界值做了安全映射。

误区既然两者都控制随机性,很多人认为它们是重复的旋钮,随便调一个就行。

正解温度是对整个分布做缩放,改变的是“词与词之间的概率差距”;top-p 是先把低概率长尾词裁掉,再在剩下的候选池里采样。一个决定池内怎么倾斜,一个决定池子开多大,维度互补。实际项目里二者叠加才能既控制候选质量、又控制风格发散,缺一不可。

为何常见:因为两个参数都调大都会让输出“更随机”,这种表面相似性容易让人忽略它们的作用机制完全不同。

误区有些工程师尝到低温在代码任务里的甜头后,把所有任务的温度都设成 0.1,认为越确定越安全。

正解低温会让模型爱走老路,长文本中频繁出现句式复读、模板化开头、逻辑僵化,在开放式任务里反而降低质量。准确性是任务对“事实约束”的要求,不是温度单方面决定的。温度没有绝对的好坏,只有与任务匹配度的高低,调参前先问“要稳还是要活”。

为何常见:因为“确定性=正确”这个直觉在代码、数学任务里反复得到验证,人们容易把局部经验错误外推到所有场景。

面试题

Q1. 温度参数主要控制大模型输出的哪个方面?

单选题 · easy

  • A.生成文本的最大长度
  • B.输出的随机与多样程度← 正确答案
  • C.上下文窗口的容量大小
  • D.模型训练数据的规模

答案:B。温度参数是生成采样阶段的随机性旋钮,决定模型选词时有多“手稳”或多“手活”,与文本长度、上下文窗口、训练数据都无关。就好比火候只改变配料的选择方式,不改变菜谱本身。

Q2. 当温度 T=1 时,概率分布会发生什么变化?

单选题 · easy

  • A.所有词的概率被均匀压平
  • B.概率分布保持原样不变← 正确答案
  • C.最高词的概率被无限放大
  • D.所有词的概率被直接清零

答案:B。T=1 表示对 logits 不做任何缩放,softmax 输出的就是原始概率分布。好比糕点师心里怎么想、手上就怎么抓,不添油也不加火。A 是高温效果,C 是低温效果,D 则完全错误。

Q3. 将温度调低至 0.2 左右,模型输出的倾向是?

单选题 · mid

  • A.生成词句开始天马行空发散
  • B.接近每次都选最高分的词← 正确答案
  • C.完全随机地乱序挑选词汇
  • D.直接报错并拒绝继续生成

答案:B。低温把高分与低分的差距放大,最高分词的选中概率逼近 1,输出近乎贪心解码,稳定但缺乏新意。天马行空是高温的特点,乱序挑选对应极高温度,报错则是把 T=0 的工程映射理解错了。

Q4. 编写严谨的代码或数学推导任务,推荐温度是?

单选题 · mid

  • A.使用 0.2 附近的低温区间← 正确答案
  • B.使用 0.9 附近的高温区间
  • C.使用 1.5 以上的超高温度
  • D.与创意类任务使用相同温度

答案:A。代码与数学要求精确、可复现,0.1~0.3 的低温能把输出牢牢锁在最稳妥的候选上。高温会让命名、逻辑到处漂移,1.5 以上几乎不可用,创意类任务的推荐温度也不适用于严谨任务。

Q5. 温度 T 越大,softmax 指数分母中的缩放效果是?

单选题 · mid

  • A.各词之间的概率差距变小← 正确答案
  • B.各词之间的概率差距变大
  • C.概率差距完全不受影响
  • D.最高分词汇概率无限趋近于一

答案:A。T 在指数分母上,T 越大相当于把原始分数差距压得越扁,各词概率趋于接近,输出更随机。B 和 D 描述的是低温的效果,C 说没有影响则错误,温度正是通过改变差距来塑造分布的。

Q6. 生成品牌广告文案时,合理的参数组合是?

单选题 · mid

  • A.温度 0.9 并配合 top-p 为 0.95← 正确答案
  • B.温度 0.1 并配合 top-p 为 0.1
  • C.温度 1.5 并配合 top-p 为 0.3
  • D.温度 0.2 并配合 top-p 为 0.9

答案:A。广告文案要创意又要可读,0.9 高温配合 0.95 的 top-p 既保证候选池覆盖合理词汇,又让风格发散有空间。B 太死板,C 的 1.5 温度搭配过小的池子容易乱,D 的低温则难以产出眼前一亮的新颖表达。

Q7. 高温(T>1)可能带来哪些不良副作用?

多选题 · mid

  • A.输出内容可能偏离事实产生幻觉← 正确答案
  • B.表达更加多样且富有创造性
  • C.结果不稳定从而难以复现← 正确答案
  • D.生成速度显著变快甚至翻倍

答案:AC。高温让低概率词频繁出场,模型会在事实边界上“自由发挥”,产生幻觉;同时每次采样路径不同,同一问题答案漂移、无法复现。B 是高温的正面价值而非副作用,D 与温度无关,温度只影响采样分布,不影响生成速度。

Q8. temperature 与 top-p 之间的关系,正确的是?

单选题 · mid

  • A.两者控制的其实是同一种随机机制
  • B.一个控制池子大小一个控制池内倾斜← 正确答案
  • C.使用 top-p 之后温度就不需要再调
  • D.top-p 会完全覆盖温度的全部作用

答案:B。top-p 决定候选词池开多大(裁掉低概率长尾),温度决定池内概率如何倾斜(放大差距还是摊平)。二者维度不同、可叠加使用,绝非同一机制,也不存在互相覆盖的关系。

Q9. 在主流推理实现中,温度 T=0 通常被等价处理为?

单选题 · hard

  • A.对全部词表进行均匀的随机采样
  • B.始终选择分数最高的词的贪心解码← 正确答案
  • C.只对低分词做拒绝采样的过程
  • D.直接抛出除零异常并中断输出

答案:B。数学上 T=0 会除零,但工程实现通常将其特判为贪心解码——恒取最高分,这也是“温度 0 = 完全确定输出”的由来。均匀采样是 T 趋近无穷大的行为,拒绝采样与贪心无关,主流框架也不会让用户直接撞上除零异常。

Q10. 以下哪些任务通常适合使用较低温度?

多选题 · easy

  • A.从文档中抽取结构化的字段数据← 正确答案
  • B.编写诗歌故事以及脑洞创意文案
  • C.输出可稳定执行的程序代码逻辑← 正确答案
  • D.严谨的数学推理与精确的结果计算← 正确答案

答案:ACD。抽取结构化字段、写代码、做数学推理都要求确定性、正确性和可复现性,适合 0.1~0.3 低温。写诗歌、编故事恰恰需要高温来放大词汇多样性,低温只会让它们变成千篇一律的模板文。