5.0 信息论基础
核心问题: 什么是信息?如何衡量信息的不确定性?
在线 Notebook
对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明。
为什么需要理解信息论
在 LLM 中:
- 交叉熵损失是训练的核心目标函数
- KL 散度用于衡量两个概率分布的差异
- 互信息用于理解特征之间的依赖关系
- 困惑度用于评估模型性能
理解信息论可以帮助我们理解 LLM 的训练目标和评估指标。
信息熵
信息的定义
信息量衡量一个事件发生时带来的"惊讶程度":
其中
直观理解:
- 概率高的事件(容易发生):信息量小
- 概率低的事件(难以发生):信息量大
例子:
- "明天太阳升起":
,信息量 ≈ 0 - "明天下雨":
,信息量 ≈ 1.74 bits
熵(Entropy)
定义: 熵是信息量的期望值,衡量一个概率分布的不确定性:
对连续变量,对应量称为微分熵,通常记为小写
微分熵依赖坐标和单位,可以为负,不能直接套用离散熵的全部直觉。
单位:
- 以 2 为底:bits
- 以
为底:nats - 以 10 为底:hartleys(较少使用)
离散熵的性质
| 性质 | 说明 |
|---|---|
| 非负性 | 离散熵满足 |
| 最大值 | 对有限的 |
| 最小值 | 当分布确定时为 0 |
例子
均匀分布:
二元分布:
最大值在
条件熵和联合熵
条件熵
定义: 给定
直观理解: 如果我们已经知道
联合熵
定义: 两个随机变量的联合分布的熵:
链式法则
交叉熵
定义
交叉熵衡量真实分布为
与熵的关系
其中
在 LLM 中的应用
在语言模型中:
:真实的下一个 token 的分布(one-hot 编码) :模型预测的下一个 token 的分布
损失函数:
对于 one-hot 编码,这简化为:
其中
KL 散度
定义
Kullback-Leibler 散度衡量两个概率分布的差异:
性质
| 性质 | 说明 |
|---|---|
| 非负性 | |
| 非对称性 | 一般有 |
| 零点 | 当且仅当 |
直观理解
小: 是 的好近似 大: 与 差异大
在 LLM 中的应用
微调(Fine-tuning)中的 KL 散度:
在强化学习微调中,使用 KL 散度来防止模型偏离原始预训练分布太远:
这里采用最小化损失的记号;若写成最大化奖励目标,KL 惩罚项的符号应相反。
互信息
定义
互信息衡量两个随机变量之间的依赖程度:
与熵的关系
直观理解: 互信息是知道
性质
| 性质 | 说明 |
|---|---|
| 对称性 | |
| 非负性 | |
| 独立性 | 当 |
在深度学习中的应用
信息瓶颈(Information Bottleneck):
经典信息瓶颈目标在保留任务相关信息
困惑度
定义
困惑度是衡量语言模型性能的常用指标:
或者用自然对数:
直观理解
困惑度可以粗略理解为模型在预测下一个 token 时的“有效分支因子”,而不是实际候选数量。PPL 为 10 并不表示模型每一步真的只比较 10 个 token。
与交叉熵的关系
在同一数据、tokenizer 和计分口径下,困惑度是交叉熵的单调变换,因此最小化交叉熵等价于最小化困惑度。
信息论中的不等式
Jensen 不等式
对于凸函数
应用: 在
若存在
Gibbs 不等式
直观理解: 在真实分布
信息论在 LLM 中的应用
1. 训练目标
最小化交叉熵:
这等价于最大化模型对真实数据的似然。
2. 评估指标
困惑度:
在相同 tokenizer、数据和计分口径下,困惑度越低表示模型给测试 token 的平均概率越高;这不能推出模型在事实性、安全性或任务完成度上更好。
3. 微调中的正则化
KL 散度正则化:
防止模型过度改变原始分布。
4. 对比学习
对比目标:
其中
实践建议
监控训练
在训练 LLM 时,应该监控:
- [ ] 训练交叉熵:观察平滑趋势、波动和异常尖峰,不要求每个 step 单调下降
- [ ] 验证集困惑度:使用固定 tokenizer 和计分口径观察泛化趋势
- [ ] 梯度与数值状态:监控梯度范数、NaN/Inf 和学习率变化
常见问题
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 损失长期无改善 | 学习率、数据、Mask 或标签可能有问题 | 先检查小批过拟合、标签偏移和有效 token 比例,再调整学习率 |
| 损失出现 NaN/Inf | 数值范围、混合精度或异常 batch 可能有问题 | 定位首个异常 step,检查 logits、梯度范数和损失缩放 |
| 验证困惑度偏高 | 数据域不匹配、欠拟合或计分口径不一致 | 先固定 tokenizer 与数据,再比较训练/验证曲线和分组样本 |
| 训练改善而验证退化 | 可能过拟合或训练/验证分布不同 | 检查数据切分、重复样本、正则化和早停点 |
信息论的直觉
记住这些关键概念:
- 熵:不确定性的度量
- 交叉熵:编码成本
- KL 散度:有方向的分布差异量,不是距离度量
- 互信息:变量之间的依赖
- 困惑度:平均负对数似然指数化后的语言建模指标
与后续章节的连接
- 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"
关键要点:
- 熵衡量不确定性,是信息论的基础
- 交叉熵是 LLM 的损失函数,最小化它等价于最大化似然
- KL 散度衡量分布差异,用于微调中的正则化
- 互信息衡量依赖关系,用于对比学习
- 困惑度是评估指标,反映模型的预测能力
