Temperature、Top-K、Top-P 怎样改变生成结果?

从同一组候选词出发,看懂“调权重、删候选、再抽样”

目录

  我们问模型:“法国的首都是”。模型不会直接说“我决定选巴黎”,而是先给词表里的每个 Token 一个分数,再由解码规则挑出下一个 Token。下面为了方便理解,只展示五个候选;真实词表远不止五个。

Temperature 改变候选之间的相对权重;Top-K 和 Top-P 缩小可选范围;最后一步才是抽样。

从 Logits 经 Temperature、Top-K 和 Top-P 到下一 Token 的流程

同一组候选,三种参数分别在哪一步起作用。点击查看原始 SVG

模型先给出一组候选

  假设这次预测的概率是下表这样。数字是教学示意,不代表真实模型对这句话的输出。

候选 Token 概率
巴黎 0.55
北京 0.25
伦敦 0.12
东京 0.05
其他 0.03

  五项加起来等于 1。“巴黎”最可能,但“最可能”与“必定选中”不是同一回事。

先分清:选最大,还是按概率抽

  Greedy(贪心)每一步都选当前概率最高的 Token。按上表,它会选“巴黎”。Sampling(抽样)像按权重抽签:“巴黎”的签最多,其他候选仍有机会。Top-K、Top-P 和 Temperature 主要是给抽样前的分布定规则。

  贪心路径并不保证整段话是概率最高或质量最好的;抽样也不保证内容更正确。解码策略影响结果,同一个模型也可能因选词方式不同,写出很不一样的文本。[1]

Temperature:先改变概率的形状

  模型原先给的是 Logits,即尚未归一化的分数。Temperature(温度)用一个正数 $\tau$ 缩放 Logits,再做 Softmax:

\[p_i(\tau)=\frac{e^{z_i/\tau}}{\sum_j e^{z_j/\tau}},\qquad \tau>0\]

  $\tau<1$ 时,原有分数差距被放大,高概率候选更占优势;$\tau>1$ 时,概率更平均,较弱候选更容易被抽到。温度不直接删除任何候选。它也不会把原来的排名颠倒:最高分仍是最高分。

  接近 0 时,分布会越来越集中在最高分候选;但 $\tau=0$ 不能直接代入上式。有些工具把 0 当作“使用贪心”的特殊选项,那是实现约定,不是公式本身。

Top-K:只留下固定个数

  Top-K 保留分数最高的 $K$ 个 Token,其余候选概率设为 0,再把保留下来的概率归一化。上表若用 $K=2$,就只剩“巴黎”和“北京”;它们的原概率之比 $0.55:0.25$ 保持不变,抽样时对应约 $68.75\%$ 与 $31.25\%$。

  它好懂,但候选个数固定:模型非常确定时也留 $K$ 个,模型犹豫时仍只留 $K$ 个。$K=1$ 等于每一步只让最高分候选入选;若抽样前没有其他约束,结果与贪心一致。

Top-P:让候选数量随分布变化

  Top-P,也叫 Nucleus Sampling。将候选按概率从高到低排列,取累计概率首次达到或超过阈值 $p$ 的最小前缀,丢掉其余候选,再归一化并抽样。[1]

  上表若设 $p=0.80$,“巴黎”占 0.55,还不够;加上“北京”恰好到 0.80,于是只留下两个。若设 $p=0.90$,前两个只有 0.80,还要加入“伦敦”,累计到 0.92 才停。这里的 $p$ 是保留候选集所需的累计概率门槛,不是说“最终答案有 90% 的概率正确”。

  Top-P 的候选数会变化:分布很尖时可能只留一两个;分布较平时可能留更多。这也是它相对于固定 Top-K 的关键区别。

自己调一次参数

教学模拟:以表中的五项概率为起点。先调温度,Top-K 过滤后归一化,再按 Top-P 截断并归一化。没有设置随机种子,点击“抽一次”可能得到不同结果。

三个参数放在一起时

  交互实验采用的顺序是:Logits → Temperature → Top-K → 对剩余候选归一化 → Top-P → 再归一化 → 抽样。顺序很重要:温度和 Top-K 都会改变 Top-P 面对的分布,所以也可能改变它留下多少候选。不同框架还可能加入重复惩罚、禁用词等规则,实际顺序与默认值要看具体实现。

  因此没有通用的“最佳参数”。任务需要稳定输出时,可以减少随机性;探索多样写法时,可以适当放宽。但更随机不等于更有创造力,更不等于更准确。比较参数效果时,要固定模型、输入、其他解码设置,并多次抽样观察,而不是只看一次结果。

  最后记住一句话:Temperature 改权重,Top-K 限个数,Top-P 限累计概率;抽样只在剩下的候选中进行。

约 90 秒讲解视频

参考文献(References)

  1. Holtzman, A., Buys, J., Du, L., Forbes, M., and Choi, Y. “The Curious Case of Neural Text Degeneration.” ICLR, 2020. arXiv:1904.09751.↩

第十七课复习总图

第十七课采样参数复习总图

把三个参数的区别和组合顺序放到一张图里。点击查看原始 SVG

  下一课解释 KV Cache:为什么逐 Token 生成时不必反复计算整个历史?