Skip to content

LLM temerature 和 top_p

Temperature(温度)和 Top_p(核采样)是控制 LLM 输出随机性创造力的两个核心参数。

简单来说:Temperature 调整概率分布的形状,而 Top_p 则是切断低概率的选项。

以下是详细的选择指南和最佳实践:

  • Temperature (0.0 - 2.0):

  • 作用:控制“大胆程度”。

  • 低温 (Low):模型变得保守、自信,倾向于选择概率最高的词。输出稳定、重复。

  • 高温 (High):模型变得“疯狂”,会给低概率词更多的机会。输出多样、不可预测。

  • Top_p (0.0 - 1.0):

  • 作用:控制“候选词范围”。

  • 低 Top_p:只从前 X% 概率最高的词里选(例如只看前 10% 的词)。

  • 高 Top_p:允许从更广泛的词汇库中选择。


这是最实用的速查表,根据你的任务类型进行选择:

任务场景Temperature 推荐Top_p 推荐目标效果
代码生成 / 数学解题0.0 - 0.20.1 - 0.2精确、确定性。避免模型瞎编乱造,保证逻辑严密。
数据提取 / 格式转换0.00.1严格。你需要 JSON 就是 JSON,不要多余的废话。
通用问答 / 客服0.5 - 0.70.8 - 0.9平衡。既要准确,又要像人说话一样自然,不呆板。
文章润色 / 摘要0.5 - 0.70.9流畅。保留原文意思,但在措辞上有一点灵活性。
创意写作 / 头脑风暴0.8 - 1.0+0.9 - 1.0发散。需要模型给出意想不到的点子,允许偶尔的“胡言乱语”。

3. 如何协同调整?(黄金法则)

Section titled “3. 如何协同调整?(黄金法则)”

大多数 API 提供商(如 OpenAI)建议遵循一个原则:通常只调整其中一个,而不是同时调整两个。

策略 A:锁定 Top_p,只调 Temperature(推荐)

Section titled “策略 A:锁定 Top_p,只调 Temperature(推荐)”

这是最常见的做法。

  • Top_p 设置为 1.0(即不限制候选池)。
  • 通过 Temperature 来控制整体的随机性。
  • 写代码?Temp = 0.1
  • 写小说?Temp = 0.9

策略 B:锁定 Temperature,只调 Top_p

Section titled “策略 B:锁定 Temperature,只调 Top_p”
  • Temperature 设置为 1.0(标准分布)。
  • 通过 Top_p 来切断长尾词。
  • 想要极度稳健?Top_p = 0.1
  • 想要多样性?Top_p = 0.95

4. 深入理解:它们到底有什么区别?

Section titled “4. 深入理解:它们到底有什么区别?”

为了形象地理解,假设模型在预测下一个词,候选词及其概率如下: [苹果: 50%, 香蕉: 30%, 飞船: 15%, 恐龙: 5%]

  • 调节 Temperature (例如调高)

  • 它会“拉平”概率分布。

  • 苹果的优势变小(变成 40%),恐龙的机会变大(变成 15%)。

  • 结果:所有词都有机会被选中,甚至是很离谱的词。

  • 调节 Top_p (例如设为 0.8)

  • 模型只取累计概率达到 80% 的前几个词。

  • 50% (苹果) + 30% (香蕉) = 80%。

  • 结果飞船恐龙直接被切掉了,根本不参与随机。模型只能在苹果香蕉里选。

  • 如果不确定:默认保持 Top_p = 1.0,只调整 Temperature
  • 要精准Temperature 设为 0。
  • 要创意Temperature 设为 0.8 ~ 1.0。