welclaiAI·TREND·DIGEST
模型

温度、top-p 与采样:掌控模型输出

温度和 top-p 决定了模型如何挑选下一个词。弄懂它们各自真正在做什么,你就能有意识地把输出从刻板调到富有创意。

models2026-04-06 09:43 KST·主编·7 分钟

如果你曾把同一个问题问模型两遍、却得到两个不同的答案,那你已经见过了采样。一个语言模型并不会确定性地输出“那个”正确的下一个词;在每一步,它产出一组带有不同可能性的候选,然后总得有什么东西在其中作出选择。掌管这一选择的设置——最常见的就是温度top-p——是你能直接控制的为数不多的旋钮之一,它们对输出究竟感觉刻板、均衡还是天马行空,有着不成比例的影响。弄懂它们,就把一句懊恼的“它怎么这么随机?”变成一个你能有意去设定的旋钮。

随机性从哪里来

在生成文本的每一步,模型都为每一个可能的下一个 token 计算一个概率。它也许判定下一个 token 是“蓝”的概率高、是“绿”的概率低一些、是“紫”的概率更低,如此遍及它的整个词汇表。这一组散布就是一个分布:一组带着各自可能性、按序排列的候选。

模型本身并不决定该用哪一个。那是采样这一步的活儿。最简单的规则会是“永远取那个最可能的单一 token”。这条规则叫贪婪解码,它听上去很诱人——永远挑最佳猜测——但实践中它往往产出平淡、重复、有时怪异地卡住的文本。好的语言通常带有一些变化,而那种死板地永远最可能的文本,读起来不像好文章。所以模型通常不是永远抓取顶端的候选,而是从分布里采样,而温度和 top-p 塑造了这种采样如何运作。

温度:把胜算压平还是磨尖

温度控制着模型在多大程度上偏爱它的高概率候选、而非低概率候选。最清爽的想象方式是:温度在一个 token 被抽取之前,重塑了分布。

  • 低温度让分布更尖锐。本就可能的 token 变得更加占优,而那条不太可能的长尾被挤压得近乎无关紧要。输出变得更聚焦、更可预测、更重复。在极端处,很低的温度逼近贪婪行为——它几乎总是取顶端的候选。
  • 高温度让分布更平坦。可能与不可能的 token 之间的差距收窄,于是那些概率较低、更出人意料的 token 有了真正被选中的机会。输出变得更多样、更有创意,而——过了某个点——也更不连贯,因为模型如今愿意去挑它本认为不太可能的 token。

一个有用的直觉:温度并不给模型新的想法。它只改变模型在多大程度上愿意伸手越过它最稳妥的那个猜测。低温度像一个谨慎的写作者,总挑那个显而易见的词;高温度则像一个去够意料之外的人,有时灵光乍现,有时不知所云。

Top-p:在选择之前修剪尾部

Top-p,又称核采样(nucleus sampling),运作方式不同。它不去重塑全部的概率,而是先限制哪些候选有资格参与。

思路是这样:把候选 token 从最可能到最不可能排成一列,不断把它们加入一个候选短名单,直到它们的累计概率达到阈值 p。这一步里,短名单之外的一切都被丢弃,模型只从幸存者中采样。一个较高的 top-p 值会保留一份宽泛的短名单;一个较低的值则只保留少数几个最可能的 token。

巧妙之处在于,这份短名单会自动调整自己的大小。当模型很有把握时——一两个 token 占去了大部分概率——短名单极小,输出便稳稳行驶在轨道上。当模型确实拿不准、概率散布在许多说得通的 token 上时,短名单就扩大,恰恰在该有变化的地方允许变化。Top-p 实际上是一种动态地切掉那条不可信尾部的方式,而不强求一个固定数量的选择。

两者如何关联

温度和 top-p 常常可以一起使用,它们回答两个不同的问题:

  • 温度问的是:我该在多大程度上偏爱我有把握的猜测、而非我拿不准的?
  • Top-p 问的是:那条不太可能的尾部,我究竟该考虑多少?

它们可以组合使用,但激进地组合会让人难以推断结果,因为两者都在以重叠的方式放松或收紧同一个输出。一种常见而稳妥的做法是,把其中一个当作你主要的创意旋钮去调,而把另一个留在一个适中的默认值,而不是把两个同时推到极端。具体的数值区间因模型提供方而异,所以请把那个行为——更尖锐对更平坦、更窄对更宽——当作你在调的东西,并查阅各提供方自己的文档来了解具体的标度。

让设置匹配任务

正确的设置完全取决于你在做什么。

当你想要一致性和正确性时——抽取结构化数据、回答事实性问题、给文本分类、生成必须能运行的代码——就偏向低随机性。你想要模型那个最有把握、最在分布之内的答案,而且想要它可复现。这里的高随机性只会招来本可避免的错误,并让失败更难调试。

当你想要多样性和创意时——头脑风暴、起草营销文案、生成多个各不相同的选项、虚构写作——就提高随机性。偶尔一个古怪的选择是一种特性;你是在向模型开采它的广度,而几次不同的尝试本身正是重点。

一个用于产生点子的实用套路是:在较高的随机性下,刻意把同一个提示跑上好几遍、再从中挑最好的结果,而不是指望一次就得到完美的输出。对任何你需要稳定且可测试的东西,反其道而行:把随机性降到最低,好让相同的输入可靠地给出相同的输出。

关于可复现性的一点说明

如果你需要每次都得到相同的输出——为了测试、为了缓存、为了可审计——那高随机性就会与你作对。把温度降到其下限附近,会把行为推向确定性,而有些接口还提供了额外的、面向可复现性的控制。但要现实一点:跨多次运行得到完全相同的输出,并不总有保证,你应当去验证而不是想当然。无论如何,总的原则成立:更少的随机性意味着更可重复、更保守的输出;更多的随机性意味着更多样、更难预测的输出。

总结

采样就是模型把它内部那一组可能的下一个 token 的散布,转化为一个实际选择的那一步,而温度和 top-p 是你驾驭它的方式。温度让整个分布更尖锐或更平坦——决定模型多大胆地伸手越过它最稳妥的猜测。Top-p 在选择之前修剪那条不太可能的尾部,只在模型确实拿不准时才放宽选项。两者都不增添知识;它们塑造的都是表达。当你需要正确性和一致性时,伸手去拿低随机性;当你想要广度和惊喜时,调高随机性;并且一次只调一个旋钮,好让你真能看出改变了什么。用得有意,这些设置就把不可预测的输出变成了一件你掌控的工具。

#sampling#temperature#top-p#inference