温度是大语言模型、文本生成、解码策略、生成式人工智能和模型推理中非常常见的一个术语,它用来描述一种控制模型生成随机性和多样性的参数。换句话说,温度是在回答:模型在生成下一个 token 时,是更倾向于选择最稳妥的答案,还是允许更多变化和创造性。
如果说大语言模型在每一步生成时都会给出一组候选 token 的概率分布,那么温度就是调节这个概率分布“尖锐”或“平滑”的旋钮。温度越低,模型越倾向于选择高概率 token,输出更稳定、更保守;温度越高,低概率 token 也更容易被选中,输出更随机、更发散。
因此,温度常用于文本生成、写作助手、聊天机器人、代码生成、创意生成、故事续写、摘要生成和大语言模型 API 调用中,是理解模型输出风格和稳定性的重要基础概念。
一、基本概念:什么是温度
温度(Temperature)是控制生成模型采样随机性的参数。
图 1:什么是温度
在大语言模型中,模型并不是直接“想出一句话”,而是逐 token 生成文本。
每一步,模型都会根据已有上下文,为词表中的候选 token 计算一个分数,然后转换成概率分布。
例如,输入:
人工智能正在模型可能给出下一个 token 的概率:
其他:0.05如果温度较低,模型更可能选择“改变”。
如果温度较高,模型可能更容易选择“发展”“影响”“推动”等其他候选。
从通俗角度看:温度像一个“创意旋钮”。
• 低温:更稳、更确定、更少变化
• 高温:更多样、更随机、更有创意,但也更容易跑偏
需要注意:温度并不是控制模型“聪明程度”的参数。它主要控制的是生成时的随机性,而不是模型本身的知识水平或推理能力。
二、为什么需要温度
温度之所以重要,是因为很多生成任务并不只有唯一答案。
例如,用户要求:
请写一句广告语。可能有许多合理回答。
如果模型每次都选择概率最高的 token,输出会更稳定,但也可能显得单调、保守、缺少变化。
而在创意写作、头脑风暴、故事续写、标题生成等任务中,用户往往希望模型给出更多可能性。
温度可以调节这种取舍。
1、需要稳定输出时
在以下任务中,通常希望温度较低:
• 事实问答
• 摘要
• 翻译
• 代码生成
• 数据抽取
• 格式化输出
• 技术解释
这些任务更看重准确、稳定和一致性。
2、需要多样输出时
在以下任务中,可以适当提高温度:
• 创意写作
• 广告文案
• 故事续写
• 角色对话
• 头脑风暴
• 标题生成
• 多方案构思
这些任务更看重变化、灵感和表达多样性。
从通俗角度看:温度让模型可以在“稳妥回答”和“发散生成”之间切换。
三、温度如何改变概率分布
模型生成下一个 token 时,通常先得到一组 。
logits 可以理解为模型给每个候选 token 的原始分数。这些分数会经过 softmax 转换成概率。
加入温度后,常见形式为:
其中:
• pᵢ 表示第 i 个 token 被选中的概率
• zᵢ 表示第 i 个 token 的 logit 分数
• T 表示温度参数
• ∑ⱼ 表示对所有候选 token 求和
• exp 表示指数函数
温度 T 会改变概率分布的形状。
图 2:温度如何影响概率分布
1、低温:概率更集中
当 T < 1 时,较高 logit 的 token 会更加突出。概率分布会变得更尖锐。
也就是说,模型更倾向于选择最高概率候选。
从通俗角度看:低温会让模型更“谨慎”。
2、高温:概率更平滑
当 T > 1 时,不同 token 之间的概率差距会缩小。低概率 token 也有更大机会被采样到。
从通俗角度看:高温会让模型更“大胆”。
3、温度接近 0
当温度非常接近 0 时,模型几乎总是选择概率最高的 token。
这接近 Greedy Decoding,也就是“贪心解码”。
4、温度过高
如果温度过高,概率分布会过于平滑。
模型可能选择很多原本概率较低的 token,导致输出不稳定、跳跃、甚至不合逻辑。
因此,温度不是越高越好。
四、低温与高温的区别
温度的效果可以简单概括为:
• 低温:稳定、保守、重复性高
• 高温:多样、随机、创造性强
1、低温输出
假设提示词是:
请用一句话解释机器学习。
低温下,模型可能输出:
机器学习是一种让计算机从数据中学习规律并进行预测的方法。
这种回答稳定、清晰、常规。适合教材解释、技术说明、事实回答等任务。
2、高温输出
同样的提示词,高温下模型可能输出:
机器学习就像让计算机在大量例子中自己摸索规律,再把这些规律用于判断新情况。
这种回答可能更生动,但也更不稳定。
如果温度过高,甚至可能生成:
机器学习是一种让数据自己开口说话的魔法。
这种表达有修辞效果,但不一定适合严肃技术文章。
3、选择温度的原则
可以按任务目标选择:
• 准确优先:低温
• 稳定输出:低温
• 格式严格:低温
• 创意优先:中高温
• 多方案探索:中高温
从实践角度看:很多事实性、技术性任务适合使用较低温度;创意类任务可以适当提高温度,但仍需避免过高导致失控。
五、温度与 greedy、sampling、top-k、top-p 的关系
温度不是唯一的解码参数。它常常和 Greedy Decoding、Sampling、Top-k、Top-p 一起出现。
1、Greedy Decoding
Greedy Decoding 每一步都选择概率最高的 token。
可以理解为:每一步只选最可能的结果。
它输出稳定,但容易缺少变化,也可能陷入重复。
当温度非常低时,采样效果会接近 Greedy Decoding。
2、Sampling
Sampling 是按概率随机采样。
例如:
其他:0.05sampling 不是永远选“改变”,而是按照概率随机选择。温度会影响这个概率分布。
3、Top-k
Top-k 会只保留概率最高的 k 个候选 token,再在其中采样。
例如,k = 3 时,只在前三个候选中选择。
从通俗角度看:Top-k 是先划定一个固定大小的候选集合。
4、Top-p
Top-p 也称 Nucleus Sampling,通常译为“核采样”。它会选择累计概率达到 p 的最小候选集合。
例如,p = 0.9 表示只在累计概率前 90% 的候选 token 中采样。
从通俗角度看:Top-p 是按概率质量动态决定候选集合大小。
5、它们如何配合
温度负责改变概率分布的形状。Top-k 和 top-p 负责限制候选 token 的范围。
图 3:温度与解码策略的关系
可以概括为:
• 温度:改变概率分布的尖锐程度
• Top-k:只保留前 k 个候选
• Top-p:只保留累计概率达到 p 的候选集合
• Sampling:从候选中随机选择
在实际使用中,温度通常会和 Top-p 或 Top-k 搭配使用。
六、温度在不同任务中的设置建议
温度没有唯一标准值,需要根据任务目标调整。下面给出常见经验范围。
1、事实问答与技术解释
适合较低温度:
temperature:0.0 ~ 0.3这类任务更重视准确、清晰和稳定。
例如:
• 解释概念
• 回答事实问题
• 生成教材内容
• 技术文档说明
• 数据分析报告
2、摘要、翻译与信息抽取
也适合较低温度:
temperature:0.0 ~ 0.4因为这些任务通常要求忠实原文、减少发挥。
例如:
• 翻译句子
• 总结文档
• 提取字段
• 生成固定格式 JSON
3、普通对话与改写
可使用中等温度:
temperature:0.4 ~ 0.8这类任务既需要自然表达,也不能太发散。
例如:
• 日常问答
• 语气改写
• 邮件润色
• 普通写作辅助
4、创意写作与头脑风暴
可以使用较高温度:
temperature:0.8 ~ 1.2这类任务更强调多样性和灵感。
例如:
• 故事开头
• 广告语
• 标题创意
• 角色对话
• 多方案构思
5、过高温度的风险
如果温度过高,模型可能出现:
• 答案不稳定
• 逻辑跳跃
• 事实错误增加
• 格式不受控
• 出现奇怪表达
• 更容易偏离用户要求
因此,对于严肃任务,不建议盲目提高温度。
七、温度的优势、局限与使用注意事项
1、温度的主要作用
温度最大的作用是调节生成结果的稳定性和多样性。它让同一个模型可以适应不同任务风格。
例如:
• 写技术解释时更稳定
• 写广告语时更多样
• 写代码时更保守
• 写故事时更发散
从通俗角度看:温度让模型在“标准答案模式”和“创意探索模式”之间切换。
2、温度的主要局限
温度也有局限。
首先,温度不能提升模型本身能力。
如果模型不知道某个事实,把温度调低或调高都不能真正补足知识。
其次,温度不能保证事实正确。
低温可能让模型更稳定,但如果最高概率答案本身是错的,模型仍然会稳定地输出错误。
再次,温度不能替代检索和工具。
对于最新信息、精确计算、文档问答,仍然需要 RAG、搜索、数据库或计算工具。
此外,不同模型对同一温度的表现可能不同。
某个模型的 temperature = 0.7,未必等于另一个模型的 0.7。
3、使用温度时需要注意的问题
使用温度时,需要注意:
• 温度控制随机性,不控制知识正确性
• 低温更稳定,但不保证一定正确
• 高温更多样,但更容易跑偏
• 技术解释、摘要、翻译适合低温
• 创意写作、头脑风暴可适当提高温度
• 温度常与 Top-p、Top-k 一起使用
• 严格格式输出时应降低温度
• 同一提示词在高温下多次运行可能结果差异较大
• 不同模型的温度效果可能不同
从实践角度看,温度是生成控制参数,不是质量保证参数。
八、温度的常见误解
误解一:温度越高,模型越聪明
不对。
温度越高,模型只是更随机、更发散,并不表示推理能力更强。
对于数学题、代码题、事实问答,过高温度反而可能降低可靠性。
误解二:温度越低,答案一定越正确
也不对。
低温让模型更稳定地选择高概率答案,但高概率答案未必一定正确。
如果模型内部知识错误或上下文不足,低温仍可能输出错误答案。
误解三:temperature = 0 就完全没有随机性
不一定。
在一些系统实现中,即使 temperature 设置为 0,也可能因为底层实现、并行计算、候选并列、工具调用或系统策略产生轻微差异。
但从概念上说,temperature 越接近 0,输出越确定。
误解四:所有任务都应该用同一个温度
不对。
不同任务目标不同。
例如,写法律条款摘要和写科幻故事,显然不应使用同样的生成随机性。
九、Python 示例
下面给出几个简单示例,用来帮助理解温度如何影响概率分布和采样结果。
示例 1:不同温度下的概率分布
一般会看到:
• temperature = 0.5 时,最高分 token 概率更突出
• temperature = 1.0 时,保持原始 softmax 效果
• temperature = 2.0 时,分布更平滑
示例 2:温度采样
这个例子中:
• 温度较低时,更容易采样到“改变”
• 温度较高时,其他 token 被采样到的概率增加
示例 3:多次采样观察输出差异
通常会看到:
• 低温结果更集中
• 高温结果更分散
这说明温度会影响生成的稳定性和多样性。
示例 4:temperature 接近 greedy 的情况
当 temperature 很低时,最高概率 token 会占据绝大部分概率。这时生成效果接近每次都选择最高概率 token。
示例 5:温度与 top-k 的简单结合
这个例子说明:
• Top-k 先限制候选范围
• temperature 再调节候选内部的概率分布
二者可以配合控制生成结果。
小结
温度是大语言模型生成时用于控制随机性和多样性的参数。低温会让概率分布更集中,输出更稳定、更保守;高温会让概率分布更平滑,输出更多样、更发散。温度不能提升模型知识或保证事实正确,它只是调节解码时的采样行为。对初学者而言,可以把温度理解为:控制模型生成时“稳一点”还是“放开一点”的旋钮。
“点赞有美意,赞赏是鼓励”
热门跟贴