一、初识生成中的“随机性开关”
当我们在使用 MiMo 或任何大语言模型 API 生成文本时,常常会遇到输出内容“太正经”或者“太发散”的情况。这背后的核心控制机制,就是 温度(Temperature) 与采样(Sampling) 参数。简单来说,这两个参数共同决定了模型在生成下一个词时,是坚定不移地选择最“正确”的答案,还是有概率“灵光一现”选择一些不那么常见的词。理解它们,是让模型输出符合你预期的第一步。
温度可以理解为对模型输出概率分布的“缩放因子”。它不改变哪些词有可能被选中,但会剧烈改变它们被选中的概率差异。采样则是在这个被温度调整过的概率分布上,实际进行抽签的策略。一个常见的误解是只调温度,而忽略了采样策略的配合,这就像只调节了音量却没选对电台频道,效果自然不尽如人意。
二、深入理解温度:自信度的调节器
温度(temperature)参数通常取值在 0 到 2 之间(常见于 0.1 到 1.5)。它的核心作用是控制模型输出概率的“尖锐”或“平滑”程度。
- 低温(例如 0.1-0.5):模型会变得非常“自信”。概率分布变得极其尖锐,高概率的词(通常是上下文最连贯、最正确的词)会获得压倒性的权重,而低概率的词几乎没机会出现。结果就是输出非常确定、可预测,但可能缺乏创造性,甚至出现重复。
- 高温(例如 0.8-1.5):模型会变得相对“发散”。概率分布被拉平,高概率词和低概率词的差距缩小,一些原本不太相关的词也有机会被选中。这能增加创造性和多样性,但风险是输出可能变得不连贯、出现事实错误或无意义的内容。
- 中温(例如 0.6-0.8):通常是一个很好的平衡点,能在连贯性与多样性之间取得不错的折衷。
提示:将温度设为 0 时,在确定性采样下,模型将总是选择当前概率最高的词,从而实现完全确定性的输出(对于相同的输入和提示,每次结果都相同)。
三、核心采样策略:Top-K 与 Top-P
在温度调整了概率分布之后,我们还需要决定如何从这成千上万个候选词中“抽签”。主流的策略是 top_k 和 top_p。
Top-K 采样:在生成每个词时,只从概率最高的前 K 个词中进行随机选择。例如 top_k=50,就意味着模型永远在最有可能的 50 个词里抽奖。这避免了选到那些概率极低、荒诞的词。但其缺点在于, 2 是一个固定值,当模型对下一个词非常确定时(某个词概率为 99%), 3 仍会引入不必要的随机性;而当模型不确定时(概率均匀分布), 4 可能又排除了一些合理但概率稍低的选项。
Top-P (Nucleus) 采样:更智能的策略。它设定一个概率阈值 P(如 0.9),然后将词按概率从高到低排序,依次累加概率,直到总和刚好超过 P,然后只从这个“核心(Nucleus)”词集中采样。例如,当 top_p=0.9 时,模型会选出一个概率之和 ≥ 90% 的最小词集进行采样。这样,