大型语言模型中参数 temperature 的作用

temperature (/ˈtem.pər.ə.tʃɚ/ ,谈-普-若-扯 ),简单来说,这是一个控制模型输出随机性的参数。它决定了模型在生成文本时是更"保守"还是更"富有创造性"。


1. 核心原理:它如何工作?

要理解温度,首先需要了解模型是如何生成下一个词的:

  1. 模型会计算一个"概率分布":对于给定的输入,模型会为词汇表中的每一个可能的词计算一个分数(logits),然后通过 Softmax 函数将这些分数转换为一个概率分布。

    • 例如,句子是 "The cat sat on the ...",下一个词的概率可能是:mat: 0.7, sofa: 0.15, floor: 0.1, car: 0.05。
  2. 温度介入:在应用 Softmax 函数之前,temperature 参数会用来调整这些分数。

    • 公式 :Adjusted_Probability = Softmax(logits / temperature)
  3. 温度的影响:

    • 低温(如 0.1) :logits / temperature 会使数值之间的相对差异变大。经过 Softmax 后,概率分布会变得更加"尖锐"------高概率的词概率更高,低概率的词概率更低。
      • 上面的例子会变得更像:mat: 0.95, sofa: 0.04, floor: 0.01, car: 0.00。
    • 高温(如 1.5) :logits / temperature 会使数值之间的相对差异变小。经过 Softmax 后,概率分布会变得更加"平滑"------所有词的概率都更接近。
      • 上面的例子会变得更像:mat: 0.35, sofa: 0.25, floor: 0.2, car: 0.2。

2. 直观效果:不同温度下的行为

温度值 别名 对概率分布的影响 模型行为 适用场景
低温度 (0.1 - 0.5) 保守 / 确定性 使分布更尖锐 - 更可预测、一致 - 选择最可能词汇的概率极高 - 输出重复性可能增加 - 创造性、多样性低 - 事实问答 (需要准确答案) - 代码生成 (需要语法正确) - 总结摘要 (需要忠于原文) - 需要可靠、稳定输出的场景
中温度 (0.5 - 1.0) 平衡 使分布适度平滑 - 在可靠性和创造性之间取得平衡 - 偶尔会使用不那么常见的词 - 输出通顺且有一定新意 - 通用聊天机器人 - 内容创作 (如写邮件、文章) - 大多数任务的默认设置
高温度 (> 1.0) 创造性 / 随机性 使分布更平坦 - 更具创造性、多样性 - 可能产生出人意料的词和想法 - 容易产生不合逻辑或无意义的内容 - 输出不一致 - 写诗歌、小说 - 头脑风暴、生成新点子 - 角色扮演对话 - 需要高度创新的场景

3. 举例说明

假设我们让模型补全句子:"今天的天气真..."

模型计算出的原始概率分布可能是:

  • 好: 0.6
  • 不错: 0.3
  • 糟糕: 0.08
  • 疯狂: 0.02

不同温度下的采样结果:

  • 温度 = 0.1:

    • 分布变得非常尖锐,好的概率接近 100%。
    • 几乎每次输出:"今天的天气真好。"
    • 特点:可靠但枯燥。
  • 温度 = 1.0(默认):

    • 分布基本保持不变。
    • 可能输出:"今天的天气真好。" 或 "今天的天气真不错。",偶尔会出现 "糟糕"。
    • 特点:自然、平衡。
  • 温度 = 2.0:

    • 分布变得平坦,所有词都有机会。
    • 可能输出:"今天的天气真疯狂!" 或 "今天的天气真适合睡觉。" (甚至是一些训练数据中不常见的组合)
    • 特点:有趣、有创意,但也可能胡言乱语。

4. 与其他参数的关系

  • Top-p(核采样) :温度控制的是整个概率分布 的形状,而 Top-p 是另一种采样方法,它从概率最高的词开始累积,直到累积概率总和超过 p,然后只从这个集合中采样。高温和高 Top-p 值 经常一起使用来增加创造性,而低温和低 Top-p 值 一起使用来增加确定性和专注度。
  • Top-k:类似 Top-p,但它只考虑概率最高的 k 个词。现在 Top-p 更常用,因为它能动态适应概率分布。

总结

温度是一个权衡参数:

  • 追求准确性和一致性 -> 降低温度。
  • 追求多样性和创造性 -> 提高温度。

在实际应用中,你需要根据具体任务来调整温度值。没有放之四海而皆准的最佳值,通常需要通过实验来找到最适合你用例的设置。

相关推荐
吴佳浩17 小时前
中小企业跑125B 大模型:显存装不下的时候,Strata 做了什么
人工智能·llm
学IT的周星星17 小时前
LangGraph:用「流程图」的方式编排 Agent
数据库·人工智能·大模型·llm·流程图·agent
莪_幻尘18 小时前
Codex 周活涨 6 倍背后:AI Agent 的四条战线
llm·openai
Eloudy19 小时前
全文 - Improving Language Understanding by Generative Pre-Training
llm
江屿风19 小时前
【Plain Language Large Model】【从麦当劳点餐到Redis接入:MCP如何让AI工具集成变简单】流食般投喂
人工智能·redis·笔记·语言模型·llm·mcp
大侠在此在在此19 小时前
我花了不到1块钱,用python把自己一年的1500次会话做成了个人知识库
python·llm
小林ixn20 小时前
从线性 RAG 到 Agentic RAG:用 LangGraph 搭一个会判断、会纠错、会兜底的检索闭环
langchain·llm·agent
承渊政道1 天前
【大模型应用开发:基于GPT-4和ChatGPT】(使用LangChain框架和插件增强LLM的功能)
chatgpt·langchain·llm·框架·大模型应用开发
MoonOut1 天前
LLM | 大模型数据公司(Scale AI、Mercor、Surge AI 等)的由来、现状与演变
llm
DO_Community1 天前
WorkBuddy 接入自定义模型教程:接入 GPT、Claude 等大模型
人工智能·llm·agent