博客

信息论足以理解 LLM

2026年2月17日

English

本文改写自我在 2025-03-27 写下的原文,当时配套发布了一期同主题的 Bilibili 视频

大语言模型做的每一件事——预测下一个 token、从数据中学习、把知识压缩进权重——都可以追溯到 Claude Shannon 在 1948 年发表的一篇论文。

这不是比喻。数学上就是同一套东西。


信息量与熵

香农的核心洞察是:一个事件发生的概率越小,它携带的信息量就越大

I(x)=log2(p(x))I(x) = -\log_2(p(x))

一枚公平硬币落在正面,给你 1 bit 信息。骰子掷出 6,大约给你 2.58 bits。中彩票?大约 23 bits。事件越罕见,它发生时你学到的东西越多。

Binary entropy function showing maximum uncertainty at p=0.5, and bar chart comparing information content of events from coin flip (1 bit) to lottery (23.3 bits)

是所有可能结果的信息量期望:

H(X)=p(x)log2p(x)H(X) = -\sum p(x) \log_2 p(x)

这一个公式同时定义了无损压缩的理论极限、编码一条消息所需的最小平均 bit 数,也定义了——事实证明——每一个现代语言模型的训练目标。


为什么 LLM 使用交叉熵损失

训练 LLM 时,我们最小化真实下一个 token 分布 PP 与模型预测分布 QQ 之间的交叉熵:

H(P,Q)=P(x)log2Q(x)H(P, Q) = -\sum P(x) \log_2 Q(x)

交叉熵可以干净地分解:

H(P,Q)=H(P)+DKL(PQ)H(P, Q) = H(P) + D_{KL}(P \| Q)

真实熵 H(P)H(P) 是固定的——它是语言自身的性质。所以最小化交叉熵等价于最小化 KL 散度,也就是把模型预测尽可能推向真实分布。

Left: true vs predicted letter distributions for good, bad, and uniform models. Right: cross-entropy decomposition showing H(P,Q) = H(P) + KL divergence for each model

这不是某个人随手拍脑袋选的设计。它是从信息论里直接长出来的。


注意力就是互信息的形状

两个变量 XXYY 之间的互信息,衡量的是:知道其中一个,能减少多少关于另一个的不确定性。

I(X;Y)=H(X)H(XY)I(X;Y) = H(X) - H(X|Y)

Self-attention 做的是一件类似的事。QKTQ \cdot K^T 的点积量化了每个 token 表示对其他 token 的依赖程度。softmax 之后的 attention weights 近似一个条件分布——token jj 对 token ii 提供了多少信息。

Left: joint probability distribution heatmap for weather and umbrella variables. Right: entropy Venn diagram showing H(X), H(Y), conditional entropies, and mutual information I(X;Y)=0.531

严格数学意义上,attention 机制并没有直接计算互信息。但它在参数化同一种依赖结构,而训练目标(交叉熵)保证模型学到数据里真实存在的依赖关系。

Left: attention matrix heatmap for 'the cat sat on the mat' showing which tokens attend to which. Right: mutual information approximation derived from attention weights

热力学上界

大多数人会漏掉这一点:任何模型架构都不可能从一个数据集中抽取出比数据本身更多的信息

这不是猜想。它来自同一套原则,也正是物理学中 Landauer 极限的来源——擦除 1 bit 信息,至少需要消耗 kTln2kT \ln 2 的能量。

对一个固定训练集来说,你用 Transformer、Mamba、RWKV,或者任何未来架构,都不改变这件事。你可以优化信息抽取效率(LoRA 很高效,全量微调很昂贵),但你不能凭空创造数据里没有的信息。训练数据就是天花板。

这就是为什么越过某个规模之后,数据质量比模型大小更重要,也是为什么合成数据生成有一个根本性的 bootstrap 问题。


压缩就是智能

香农熵定义了最优压缩极限。一个重复 1000 次的 "aaaa" 字符串熵接近于零——几乎可以压缩到什么都不剩。随机字节熵最大——根本压不动。

语言介于这两个极端之间。它有结构、有模式、有冗余。一个预测得好的语言模型,按定义就是一个好的压缩器;反过来也成立。

这不只是类比。Hutter Prize 是 AI 领域最老的基准之一,真的就是奖励谁能把 Wikipedia 压得最好。而最好的压缩器,总是语言模型。


V-Information:当计算能力也重要

经典香农理论假设计算资源无限。V-information theory 往前走了一步,问的是:在计算受限时,某一类特定模型能够抽取多少信息?

这把问题从「数据里有多少信息?」改写成「这个模型实际上能用上多少信息?」它解释了为什么 self-attention 能比 bag-of-words 模型从同一批数据里抽取更多有用信息——不是因为数据变了,而是因为抽取方法更强。

V-information 目前仍然更像启发式框架,而不是直接可操作的工程量,但它给了我们一个正确的思考方式:为什么有些架构学得更快。


交互式 Notebook

我整理了一个 Jupyter notebook,用可运行代码把这些概念串起来:熵曲线、互信息 Venn 图、交叉熵与 KL 散度可视化、attention heatmap,以及压缩实验。

Notebook 同时提供 中文版英文版

waylandzhang/information-theory-and-language-models

Interactive tutorial: Information Theory and LLM Language Modeling

View on GitHub

这个 notebook 是拿来跑的,不只是拿来读的。可视化会让这些概念真正咬合起来,这是单靠公式很难做到的。