12 分钟
本页目录

LLM 中的信息论

把前五章的工具全部对准 LLM:困惑度是交叉熵的人类可读包装,预训练目标就是交叉熵损失本身,RLHF/DPO 用 KL 惩罚拴住策略,scaling law 是一条熵率收敛曲线,而采样温度直接是输出分布的熵旋钮。信息论不是 LLM 的背景板,而是它的骨架。

引子:同一套工具,换个场子

前五章的量——熵、KL、交叉熵、熵率、互信息——听起来像通信和压缩的老古董。这一章要做一件事:把它们一件件对准现代 LLM,你会发现每一个都在里面占着一个关键位置。

预训练的损失、评测用的困惑度、对齐时的约束、scaling law 的形状、推理时的温度旋钮——⁠没有一个是新东西,全是前五章那几个量在不同位置的显影⁠。信息论不是 LLM 的背景板,它就是骨架本身。逐个来看。

交叉熵损失:预训练目标本身

LLM 预训练在做什么?一句话:交叉熵 最小化。

每一步,模型给出下一个 token 在整个词表上的预测分布 q。真实的下一个 token 是一个 one-hot 分布 p(真值 token 概率为 1,其余为 0)。这一步的损失就是交叉熵:

H(p,q) = -\sum_x p(x) \log q(x) = -\log q(\text{真实 token})

因为 p 是 one-hot,求和塌缩成单项——损失就是"模型分给真实 token 的那个概率的负对数"。整个序列的损失,是逐 token 交叉熵的平均。

而第 2、3 章已经证过:最小化交叉熵 = 最小化 D_{KL}(p \parallel q) = 最大似然⁠,也 = 用模型做无损压缩的比特率。所以"训练一个 LLM"和"训练一个极致压缩器",是同一件事的两个说法。至于词表怎么切、one-hot 建立在什么单位上,取决于分词,见 Token 与采样

困惑度:交叉熵的人类可读包装

交叉熵的单位是 bit(或 nat),数值小、不直观。看到"损失 2.1"很难有画面感。

困惑度(perplexity, PPL) 把它指数化,变成一个有画面感的量——"平均有几个等概率的选项在纠结":

\text{PPL} = \exp(\text{交叉熵}) = 2^{H(p,q)}

(这里以 2 为底,与前面各章的 bit 口径一致;换成 e 为底就是 \exp。)

怎么读?如果模型在每个位置平均"在 N 个等可能 token 之间摇摆",困惑度就是 N。完美预测(每次都确定真值)PPL =1;在词表大小 V 上瞎猜,PPL =V

它和交叉熵是一一对应的单调映射,所以降低交叉熵损失和降低困惑度是同一件事⁠,PPL 只是给人看的刻度。这也解释了为什么 PPL 是语言模型最经典的内在评测指标:它就是模型压缩数据能力(熵率估计)的读数。

预测分布 → 交叉熵 → 困惑度 模型输出 q 词表上的分布 真值 p one-hot H(p,q) = −log q(真值) PPL = exp(H) 损失↓ ⟺ 困惑度↓ ⟺ 压缩率↑ ⟺ 更逼近数据熵率

KL 散度在 RLHF / DPO 中的角色

预训练之后是对齐阶段。这时 KL 散度 换了个身份——从"损失"变成"缰绳"。

RLHF 的 PPO 目标⁠,在最大化奖励模型给的回报之外,加了一个 KL 惩罚项:

\text{目标} = \mathbb E[\text{reward}(x,y)] - \beta \cdot D_{KL}(\pi_\theta(\cdot \mid x) \parallel \pi_\text{ref}(\cdot \mid x))

这里 \pi_\theta 是正在训练的策略,\pi_\text{ref} 是冻结的参考模型(通常是 SFT 后的初始模型)。这个 KL 项惩罚策略偏离参考太远,防的是什么?防模型为了刷高奖励而钻奖励模型的空子(reward hacking),退化成胡言乱语或复读。

注意方向:这里用的是 reverse 方向的 KL,呼应第 2 章的 mode-seeking——策略被允许在参考模型附近寻找高回报模式,但不许跑太远。\beta 越大,缰绳越紧。

DPO(Direct Preference Optimization) 更精巧。它从数学上证明:带 KL 约束的 RLHF,其最优解有闭式形式。于是 DPO 跳过显式的奖励模型和 PPO,直接用一个分类式损失在偏好数据上训练。

那 KL 约束去哪了?没丢——那个 \beta \cdot D_{KL}(\pi_\theta \parallel \pi_\text{ref}) 正则化被隐式地折叠进了 DPO 的损失函数里。换句话说,DPO 没有放弃缰绳,只是把它编织进目标,不再需要在线采样和显式惩罚项。两条路,同一根缰绳。

Scaling law:压缩视角

Chinchilla scaling law 说:给定计算预算 C,模型参数量 N 和训练 token 数 D 应大致按 N \propto C^{0.5}D \propto C^{0.5} 同步扩,才能最小化损失——而不是一味堆参数。

从信息论看,这条定律其实是压缩视角的自然结论。

模型的测试损失,就是它对数据的交叉熵,也就是 熵率 的一个估计。那么损失-算力曲线,本质上就是熵率估计随参数量 / 数据量收敛的曲线:模型越大、见的数据越多,对真实数据分布的压缩就越接近其熵率下界,损失沿幂律逼近一个压不过去的底(irreducible loss,即数据本身的熵率,再强的模型也压不穿它)。

于是"最优 scaling"这个问题,翻译过来就是:⁠给定算力,怎么把这个熵率估计压到最低? Chinchilla 的答案是参数和数据要平衡——这和源编码定理"码长逼近熵"的精神,一脉相承。至于模型架构如何影响这条曲线(比如 稠密 vs MoE 在等效算力下的参数效率),是同一张图的另一个切面。

采样温度:输出分布的熵旋钮

推理时的采样温度(temperature) T,从信息论看就是一个直接操控输出分布 的旋钮。做法是在 softmax 前把 logits 除以 T:

  • T > 1:分布被拉平⁠,熵增大⁠。更多 token 有了可观概率,输出更随机、更发散。
  • T < 1:分布被削尖⁠,熵减小⁠。概率集中到少数高分 token,输出更确定、更保守。
  • T \to 0:熵 \to 0,退化成 argmax(greedy),几乎没有随机性。

所以调温度,字面上就是在调"每一步输出携带多少不确定性"。

这层信息论解释,是补在 Token 与采样 之上的:那篇讲的是 top_p / top_k 怎么截断候选集、以及 Claude 托管 API 为何移除了这些旋钮;这里只补一句"温度在信息论上到底动了什么"——它动的是输出分布的熵。两者互补,不重复。

信息论工具在 LLM 里的化身出处章节
交叉熵 H(p,q)预训练损失第 2 章
\exp(\text{交叉熵})困惑度 PPL本章
KL 散度 D_{KL}RLHF/DPO 的策略正则化第 2 章
熵率scaling law 的收敛底第 3 章
分布的熵采样温度第 1 章

几个反直觉但要命的点

  • 困惑度不能跨分词器比。 PPL 是"每 token"的量,而不同模型 切 token 的粒度不同——字符级、子词级、词级模型的 PPL 数值不能直接比。必须换算到每字符或每字节的比特(bits-per-byte)才公平。看到两个模型的 PPL 就下结论,常常是在比不同的单位。
  • 交叉熵损失有个压不过的底。 数据本身有熵率,再强的模型也压不到它以下(irreducible loss)。损失曲线看着还在降,但它逼近的是这个物理下界,而不是 0。把"损失还能不能降"当成"模型还能不能变强",会误判天花板。
  • KL 惩罚的 \beta 是双刃剑。 \beta 太小,策略会 reward hacking 跑飞;太大,又被参考模型拴死,学不到新东西。它不是可有可无的正则项,而是对齐质量的关键旋钮。
  • 温度不改变模型知道什么,只改变它敢说什么。 温度是推理时对 logits 的后处理,不动权重、不动模型对世界的建模,只在既有分布上调熵。指望调温度去修正事实错误,是走错了门。

收束:一套语言,一张网

回看整条线。一个 LLM,从预训练(最小化交叉熵 = 极致压缩)、到对齐(KL 约束拴住策略)、到扩展(熵率沿 scaling law 收敛)、到推理(温度调节输出熵)——⁠每一环都是信息论量的直接应用⁠。

信息论值得系统学一遍,不是因为它优雅,而是因为它是理解现代 LLM 的公共语言。把 KL / 交叉熵压缩信道信息瓶颈 这几件工具握在手里,再回头看模型的损失曲线、对齐配方、采样参数,就都是同一套东西在不同位置的显影。

参考

  • 论文⁠: "Training Compute-Optimal Large Language Models" (Hoffmann et al., 2022 — Chinchilla scaling law)
  • 论文⁠: "Direct Preference Optimization" (Rafailov et al., 2023 — DPO 如何隐式编码 KL 约束)
  • 论文⁠: "Language Modeling Is Compression" (Delétang et al., 2023 — LLM 损失即比特率的实证)
  • 文档⁠: Token 与采样推理与 thinking(本仓库既有的采样与推理机制)

关键词: 困惑度 perplexity, 交叉熵损失, 预训练目标, one-hot, RLHF, PPO, KL 惩罚, DPO, reward hacking, scaling law, Chinchilla, 熵率, irreducible loss, 采样温度 temperature, 输出熵