同一个人工智能,有时答得严谨刻板,有时答得天马行空,拨动这根弦的旋钮叫温度。它不改模型、不改知识,只改写输出前那张概率表的形状。这一篇讲它压平与拉尖的具体手法。
温度动手前,概率表长什么样
模型算完一遍前向,对全词表给出的原始分数叫 logits,高低差距有大有小:高分候选可能比低分高出一大截。这些分数随后会被归一化成概率,而温度正是在归一化之前插进来的那道工序:先把每个分数除以温度值,再去做归一化。所以温度没有另起炉灶,它改写的就是这张表上分数之间的相对差距。顺带一个判断:改温度见效快、成本为零,因为它不碰模型文件;想调整回答风格,先试它,往往比换一个模型划算。
| 环节 | 这一步做什么 | 温度是否参与 |
|---|---|---|
| 前向打分 | 对全词表每个候选给出原始分 logits | 不参与 |
| 除以温度 | 把每个分数除以温度值,差距被等比缩放 | 参与,改的是差距大小 |
| 归一化 | 把分数换成总和为一的概率表 | 不参与,但结果已被改写 |
除一下:改写是怎么发生的
机制全在"除一下"里。温度小于 1 时,等于除以一个小数,分数间的差距被等比放大:原来 5 分和 3 分的差距,除以 0.5 后变成 10 和 6,归一化后高分候选的占比进一步抬高,低分被压得更扁,整张表被拉尖。温度大于 1 时相反,差距被压缩,高低分的占比被抹平,冷门候选也有机会中选,整张表被压平。把概率想成地形,拉尖就是山峰更陡,压平就是丘陵连绵;真实机制是等比缩放分数,地形只是帮记忆的比喻。还要记住一点:温度改的是差距大小,不改变分数的排名,无论怎么调,得分最高的候选始终是同一个,变的只是它和追赶者的概率落差。
两个极端:近零与高温
温度趋近零时,除完的分数差距悬殊,概率几乎全部集中到最高分候选,效果等同于贪心解码:同样的输入永远得到同样的输出,适合抽取、分类、代码补全这类要求口径稳定的任务。温度调高后,概率被摊薄,输出开始多样,适合头脑风暴、起标题这类要发散的场景;但调得过高,模型会频繁选中低质量候选,语句开始跑偏。顺带拆一个误区:温度高并不等于更聪明,它只是让冷门候选更容易出场,回答质量的上限和下限同时被拉宽。实用判断是:任务要稳就把温度往低调,要创意就往高调,先小步试再加大。DeepSeek、豆包等产品的接口里都有这个参数,默认档位各不相同,具体范围以官方文档为准。
温度和其他旋钮的先后关系
流水线上温度的位置要记牢:它作用于概率表本身,发生在筛选和抽取之前,三者是先改表、再圈池、后抽取的接力顺序,颠倒着理解就会调错参数。调参时还有一条经验:发现输出千篇一律,先动温度;发现偶发胡言乱语,光降温未必够,还要收紧候选池。反过来,回答永远一个腔调时,也先检查温度是不是被压得过低,再考虑改提示词。想看后两步的细节,可以读采样是怎么从概率里挑字的、束搜索是怎么保留候选的、重复惩罚是怎么压制复读的。
温度速查卡
- 动作本质:归一化前,把全表分数除以温度
- 低温:差距放大,表被拉尖,输出稳定
- 高温:差距压缩,表被压平,输出发散
- 顺序:先改表,再筛选,后抽取
一句话带走:温度改的是分数之间的差距,概率的天平随它倾斜。
温度快问快答三则
- 调温度会改变模型学到的知识吗?:不会,它只改写输出概率的分布,模型本身一字未动。
- 为什么温度接近零输出就固定了?:分数差距被极端放大,概率几乎全归最高分候选,随机性无从发挥。
- 写代码和写文案该各调多高?:代码补全宜低温求稳,文案构思可适度调高求发散,档位以实际效果微调。


