前两块的框架有一个隐藏假设:每个符号都服从同一个概率分布。但自然语言显然不是这样——每个词、每个字母的概率都强烈依赖于前文。现代语言模型(Language Model)正是利用这一点。我们将看到,训练语言模型时常用的交叉熵损失,本质上就是在训练一个尽可能高效的文本压缩器。
机器人指令、前缀码、Huffman 编码与压缩极限。
信息定义 -log₂(p)、熵的面积解释、香农无噪声编码定理。
语言建模、条件概率链式法则、交叉熵损失、压缩⇔智能。
机器人指令的例子过于理想化:四个方向的概率恰好是 2 的幂次,因此每个符号的信息量都是整数比特。真实数据远非如此。以英语为例,每个新字母的概率:
这些差异并没有改变压缩极限的核心逻辑,只是让 Huffman 编码这样的单符号方案远远不够。我们需要一种能根据上下文动态调整概率的模型。
对于一段文本 x₁, x₂, ..., xₙ,其联合概率可以按顺序拆解:
这就是概率的链式法则。它把「整个句子的概率」转化为「已知前文后下一个符号的条件概率」的连乘。
取负对数后,连乘变成求和:
于是,整条消息的总信息量,等于每个位置在给定上下文后的条件信息之和。语言模型要学的,正是这些条件概率。
在监督学习中,交叉熵损失衡量模型预测分布 q 与真实分布 p 之间的差异:
在语言模型训练中,真实分布 p 通常是「下一个 token 的真实答案」——一个 one-hot 向量。因此交叉熵简化为:
也就是说:最小化交叉熵,等价于让模型给正确 token 分配更高的概率。从压缩视角看,如果模型对下一个 token 预测得越准,编码这条消息所需的比特就越少。
模型对正确 token 很自信。信息量少,压缩率高,预测准确。
模型分布平坦、不确定。信息量大,压缩率低,预测混乱。
大型语言模型的预训练通常被描述为「下一个 token 预测」。但结合前面的讨论,我们可以把它重新框定为:
这个视角的价值在于:
当然,"压缩就是智能" 仍是一个难以严格评判的口号,因为「智能」本身定义模糊。更稳妥的说法是:压缩的数学理论与人工智能高度相关。