⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

5.0 信息论基础 ​

核心问题: 什么是信息?如何衡量信息的不确定性?

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明。


为什么需要理解信息论 ​

在 LLM 中:

  • 交叉熵损失是训练的核心目标函数
  • KL 散度用于衡量两个概率分布的差异
  • 互信息用于理解特征之间的依赖关系
  • 困惑度用于评估模型性能

理解信息论可以帮助我们理解 LLM 的训练目标和评估指标。


信息熵 ​

信息的定义 ​

信息量衡量一个事件发生时带来的"惊讶程度":

I(x)=−log2⁡P(x)

其中 P(x) 是事件 x 的概率。

直观理解:

  • 概率高的事件(容易发生):信息量小
  • 概率低的事件(难以发生):信息量大

例子:

  • "明天太阳升起":P=0.9999,信息量 ≈ 0
  • "明天下雨":P=0.3,信息量 ≈ 1.74 bits

熵(Entropy) ​

定义: 熵是信息量的期望值,衡量一个概率分布的不确定性:

H(X)=−∑xP(x)log⁡P(x)

对连续变量,对应量称为微分熵,通常记为小写 h:

h(X)=−∫p(x)log⁡p(x)dx

微分熵依赖坐标和单位,可以为负,不能直接套用离散熵的全部直觉。

单位:

  • 以 2 为底:bits
  • 以 e 为底:nats
  • 以 10 为底:hartleys(较少使用)

离散熵的性质 ​

性质说明
非负性离散熵满足 H(X)≥0
最大值对有限的 N 个可能结果,均匀分布时最大,Hmax=log⁡N
最小值当分布确定时为 0

例子 ​

均匀分布: P(x)=1/N 对所有 x

H(X)=−∑i=1N1Nlog⁡1N=log⁡N

二元分布: P(x=1)=p,P(x=0)=1−p

H(X)=−plog⁡p−(1−p)log⁡(1−p)

最大值在 p=0.5 时达到,Hmax=1 bit。


条件熵和联合熵 ​

条件熵 ​

定义: 给定 Y 的条件下,X 的熵:

H(X|Y)=−∑yP(y)∑xP(x|y)log⁡P(x|y)

直观理解: 如果我们已经知道 Y,X 还剩多少不确定性。

联合熵 ​

定义: 两个随机变量的联合分布的熵:

H(X,Y)=−∑x∑yP(x,y)log⁡P(x,y)

链式法则 ​

H(X,Y)=H(X)+H(Y|X)=H(Y)+H(X|Y)

交叉熵 ​

定义 ​

交叉熵衡量真实分布为 P 时,按模型分布 Q 计分的期望负对数概率;使用以 2 为底的对数和理想编码时,可解释为期望编码长度:

H(P,Q)=−∑xP(x)log⁡Q(x)

与熵的关系 ​

H(P,Q)=H(P)+DKL(P∥Q)

其中 DKL(P∥Q) 是 KL 散度。

在 LLM 中的应用 ​

在语言模型中:

  • P:真实的下一个 token 的分布(one-hot 编码)
  • Q:模型预测的下一个 token 的分布

损失函数:

L=H(P,Q)=−∑iP(i)log⁡Q(i)

对于 one-hot 编码,这简化为:

L=−log⁡Q(y)

其中 y 是真实的 token。


KL 散度 ​

定义 ​

Kullback-Leibler 散度衡量两个概率分布的差异:

DKL(P∥Q)=∑xP(x)log⁡P(x)Q(x)

性质 ​

性质说明
非负性DKL(P|Q)≥0
非对称性一般有 DKL(P|Q)≠DKL(Q|P)
零点当且仅当 P=Q(几乎处处)时为 0

直观理解 ​

  • DKL(P∥Q) 小:Q 是 P 的好近似
  • DKL(P∥Q) 大:Q 与 P 差异大

在 LLM 中的应用 ​

微调(Fine-tuning)中的 KL 散度:

在强化学习微调中,使用 KL 散度来防止模型偏离原始预训练分布太远:

L=Ltask+βDKL(Pnew∥Preference)

这里采用最小化损失的记号;若写成最大化奖励目标,KL 惩罚项的符号应相反。


互信息 ​

定义 ​

互信息衡量两个随机变量之间的依赖程度:

I(X;Y)=∑x∑yP(x,y)log⁡P(x,y)P(x)P(y)

与熵的关系 ​

I(X;Y)=H(X)−H(X|Y)=H(Y)−H(Y|X)

直观理解: 互信息是知道 Y 后,X 的不确定性减少的量。

性质 ​

性质说明
对称性I(X;Y)=I(Y;X)
非负性I(X;Y)≥0
独立性当 X 和 Y 独立时,I(X;Y)=0

在深度学习中的应用 ​

信息瓶颈(Information Bottleneck):

经典信息瓶颈目标在保留任务相关信息 I(Z;Y) 与压缩输入信息 I(Z;X) 之间做权衡。它是一种分析和建模原则,不表示普通神经网络训练会自动精确求解这两个互信息量。


困惑度 ​

定义 ​

困惑度是衡量语言模型性能的常用指标:

Perplexity=2H(P,Q)=2−1N∑i=1Nlog2⁡Q(yi)

或者用自然对数:

Perplexity=e−1N∑i=1Nlog⁡Q(yi)

直观理解 ​

困惑度可以粗略理解为模型在预测下一个 token 时的“有效分支因子”,而不是实际候选数量。PPL 为 10 并不表示模型每一步真的只比较 10 个 token。

与交叉熵的关系 ​

Perplexity=eH(P,Q)

在同一数据、tokenizer 和计分口径下,困惑度是交叉熵的单调变换,因此最小化交叉熵等价于最小化困惑度。


信息论中的不等式 ​

Jensen 不等式 ​

对于凸函数 f:

f(E[X])≤E[f(X)]

应用: 在 P,Q 对同一有限支持均为正的简化条件下,用凸函数 f(u)=−log⁡u 证明 KL 散度非负:

DKL(P∥Q)=EP[−log⁡Q(X)P(X)]≥−log⁡EP[Q(X)P(X)]=−log⁡∑xQ(x)=0.

若存在 P(x)>0 但 Q(x)=0,则 DKL(P∥Q)=+∞,非负性仍成立。

Gibbs 不等式 ​

H(P,Q)≥H(P)

直观理解: 在真实分布 P 下进行平均,并采用同一对数底与理想编码口径时,使用 Q 计分不会得到低于 P 自身熵的交叉熵。


信息论在 LLM 中的应用 ​

1. 训练目标 ​

最小化交叉熵:

L=−1N∑i=1Nlog⁡Pθ(yi|xi)

这等价于最大化模型对真实数据的似然。

2. 评估指标 ​

困惑度:

PPL=eL

在相同 tokenizer、数据和计分口径下,困惑度越低表示模型给测试 token 的平均概率越高;这不能推出模型在事实性、安全性或任务完成度上更好。

3. 微调中的正则化 ​

KL 散度正则化:

L=Ltask+βDKL(Pnew∥Poriginal)

防止模型过度改变原始分布。

4. 对比学习 ​

对比目标:

L=−log⁡exp⁡(s(x,x+)/τ)exp⁡(s(x,x+)/τ)+∑x−exp⁡(s(x,x−)/τ)

其中 s 是相似度函数,τ 是温度参数。在特定采样与分布假设下,InfoNCE 可用于构造互信息下界;实际训练更直接优化的是匹配对相对候选集合的排序。


实践建议 ​

监控训练 ​

在训练 LLM 时,应该监控:

  • [ ] 训练交叉熵:观察平滑趋势、波动和异常尖峰,不要求每个 step 单调下降
  • [ ] 验证集困惑度:使用固定 tokenizer 和计分口径观察泛化趋势
  • [ ] 梯度与数值状态:监控梯度范数、NaN/Inf 和学习率变化

常见问题 ​

问题可能原因解决方案
损失长期无改善学习率、数据、Mask 或标签可能有问题先检查小批过拟合、标签偏移和有效 token 比例,再调整学习率
损失出现 NaN/Inf数值范围、混合精度或异常 batch 可能有问题定位首个异常 step,检查 logits、梯度范数和损失缩放
验证困惑度偏高数据域不匹配、欠拟合或计分口径不一致先固定 tokenizer 与数据,再比较训练/验证曲线和分组样本
训练改善而验证退化可能过拟合或训练/验证分布不同检查数据切分、重复样本、正则化和早停点

信息论的直觉 ​

记住这些关键概念:

  1. 熵:不确定性的度量
  2. 交叉熵:编码成本
  3. KL 散度:有方向的分布差异量,不是距离度量
  4. 互信息:变量之间的依赖
  5. 困惑度:平均负对数似然指数化后的语言建模指标

与后续章节的连接 ​

  • 5.1-5.4:LLM 训练中的信息论应用
  • 第6-8章:微调、对齐、多模态学习中的信息论
  • 扩展:信息瓶颈、对比学习、互信息最大化

进一步阅读 ​

经典教材:

  • Cover & Thomas, "Elements of Information Theory"
  • MacKay, "Information Theory, Inference, and Learning Algorithms"

论文:

  • Tishby & Schwartz-Ziv, "Opening the Black Box of Deep Neural Networks via Information"
  • Alemi et al., "Deep Variational Information Bottleneck"

关键要点:

  1. 熵衡量不确定性,是信息论的基础
  2. 交叉熵是 LLM 的损失函数,最小化它等价于最大化似然
  3. KL 散度衡量分布差异,用于微调中的正则化
  4. 互信息衡量依赖关系,用于对比学习
  5. 困惑度是评估指标,反映模型的预测能力

本教程采用 CC BY-NC-SA 4.0 许可协议