Temperature通过reshape概率分布控制输出多样性——低温趋近确定性适合factual任务,高温增加创意性适合brainstorming;top-p则通过截断低概率token控制采样范围。两者是LLM应用中最重要但最容易被忽视的调参维度。
两个人给同一个 LLM 发送相同的提示词,却得到了不同的回答。模型并没有出问题——它是有意在"掷骰子",而几个参数设置控制着这些骰子的作弊程度。如果你忽略了这些参数,你的应用要么枯燥重复,要么完全不可靠。
Temperature、top-p 以及它们的同类,是应用 AI 中最不吸引人、却最实用的旋钮。以下是它们实际的工作原理。
在每一个生成步骤中,LLM 不会直接决定下一个 token。它会为所有可能的下一个 token 生成一个概率分布——"cat" 40%、"dog" 25%、"car" 8%,以此类推,涵盖整个词表。然后必须有某个东西从这个分布中实际抽取一个 token。采样设置控制的就是这个选择过程,而随机性正是从这里引入的。
Temperature 在采样前对分布进行重塑。
低 temperature(接近 0)会使得分布更加尖锐——概率最高的 token 几乎必然被选中。输出集中、确定、重复。这正是你做事实问答、提取任务和代码生成时想要的。
高 temperature(接近 1 甚至更高)会使得分布更加平坦——概率较低的 token 也有真正的机会。输出更加多样、有创意、出人意料。适合头脑风暴和写作,但对任何要求正确性的任务来说很危险。
可以把它想象成一个创造力旋钮。调低时,模型求稳。调高时,它敢于冒险——包括走入胡说八道的风险。对于任何关乎正确性的任务,保持低温;高 temperature 只会给模型更多添油加醋的空间,而这正是快速产出自信满满但错误的答案的捷径。
Top-p(核采样)采用了不同的切法。它不是重塑概率,而是限制候选池:只保留最可能的那批 token,只要它们加起来的概率和达到比如说 90%,然后仅从这些 token 中采样。它动态地忽略那些荒谬的长尾——那些技术上可能但几乎永远错误的 token——同时仍然允许在合理选项之间存在多样性。Temperature 和 top-p 通常会一起使用。
这是人们付出代价才学到的部分:非确定性是你必须管理的一个特性,而非可以忽略的 bug。如果你的系统需要相同输入能可靠地产生相同的结构化输出,高 temperature 会悄悄用偶尔的格式外回答来破坏你。把随机性调低往往是最便宜的可靠性修复——这是我在我构建的所有 AI 系统中应用的教训。
反过来,如果你把所有参数调到确定性模式,却疑惑为什么你的"创意写作助手"感觉毫无生气——同样是这个旋钮,用在了与任务不匹配的方向上。
事实问答、提取、分类、代码、结构化输出:低 temperature。你想要的是可靠、一致的答案。
头脑风暴、创意写作、生成多样性:高 temperature,让模型去探索。
测试可复现性:尽可能保持低温固定,这样行为足够稳定,可以调试。
这个旋钮不是"让它更聪明"——而是"它应该冒多大的险"。根据任务能容忍的程度来设置它,一整类不稳定行为就会消失。更多内容见 www.divyakush.com。
Why LLMs hallucinate — and the patterns that actually stop it — why high randomness makes fabrication worse.
Prompt engineering that actually works (and what does not) — the prompt patterns that measurably work.
Guardrails: keeping LLM systems from going off the rails — making an LLM safe to expose to users.
Divyakush Punjabi · Full-Stack & AI Engineer Portfolio · GitHub · LinkedIn