AI的数学血脉|两个密码学家定义了一个”不对称的距离”。70年后,它成了AI不”遗忘”的守护神。


2022年。OpenAI在训练InstructGPT时面临一个棘手的问题。

他们要模型”对人有帮助”。但这不能简单地说”给好评的回答加分”。如果你把一个模型往”更符合人类偏好”的方向推得太猛,它会发现一种作弊方式:直接胡说八道,但用非常有礼貌的语气。 或者——反过来——完全放弃已经学会的知识,变成一台只会拍马屁的机器。

这不是假设。它真的发生过。

研究团队需要一种方法来同时做到两件事:让模型变得更好——同时让它记住已经学会的一切。

他们的解决方案是给训练目标加一个”惩罚项”:

D_KL(π_θ || π_ref)

这行符号的含义是:新模型和旧模型之间的距离——用KL散度测量。

如果新模型偏离旧模型太远——即使它能获得更高的奖励分——KL惩罚会把它拉回来。

这个精巧的机制拯救了RLHF。它让ChatGPT可以在”更安全、更有用”和”不忘记自己是谁”之间取得平衡。

但KL散度——Kullback-Leibler Divergence——是谁定义的?

两个密码学家。1951年。


一、1951:一本统计学论文里的”不对称距离”

1951年。《数理统计年鉴》第22卷第1期。

一篇标题平淡的论文:《论信息与充分性》(On Information and Sufficiency)。作者:S. Kullback和R. A. Leibler。10页。没有公式推导。全是定义和定理。

论文定义了一个量:

D_KL(P || Q) = Σ P(x) log(P(x) / Q(x))

P和Q是两个概率分布。D_KL衡量的是:如果你用Q来近似P,你会损失多少”信息”。

但它不是距离——不是数学意义上的”度量”。因为它不满足最基础的对称律:

D_KL(P || Q) ≠ D_KL(Q || P)。

用P近似Q所损失的信息,不等于用Q近似P所损失的信息。

(ps:把这个不对称性翻译成直觉:用”狗的照片”来编码”猫的照片”,需要的额外信息量——不等于用”猫的照片”来编码”狗的照片”。为什么?因为猫和狗在特征空间中的分布不同。如果一个方向上的近似比另一个方向”更容易”,对称性就打破了。KL散度捕捉的正是这种”方向性”:它不是两个分布之间的中性距离,而是”从Q到P”的替换成本。)

库尔贝克和莱布勒是谁?

所罗门·库尔贝克1907年生于布鲁克林。1930年——他23岁那年——加入了美国陆军刚成立的信号情报局(SIS)。他是威廉·弗里德曼手下最初三名雇员之一。另外两个是弗兰克·罗莱特和亚伯拉罕·辛科夫。

他们四人是美国密码学的奠基团队。

二战期间,库尔贝克破解了日本”紫色”密码机——从未见过机器实物就破解了。 1945年,他成为美国陆军密码分析主任,手下2574人。后来NSA成立,他担任首席科学家。

理查德·莱布勒1914年生于芝加哥。数学博士。NSA密码分析员。1949-1950年间,他参与了VENONA项目——破解苏联间谍密码。莱布勒的贡献被描述为”打开了新的攻击途径”——这可能指的就是他1951年与库尔贝克合著的那篇论文。因为那篇论文公开后,苏联密码学家立刻注意到了它。

(ps:在1970年代,莱布勒担任国防分析研究所通讯研究部主任。他有一个下属——一个年轻的数学家,后来成了地球上最成功的对冲基金经理——吉姆·西蒙斯。是的,就是那个文艺复兴科技的西蒙斯。KL散度的定义者和量化交易之王——在同一个办公室工作过。这大概是数学史上最意想不到的同事关系之一。)

他们在1951年发表的论文里没有用”KL散度”这个名字。库尔贝克叫它”鉴别信息”(discrimination information)——因为它衡量的是一个分布”鉴别”出另一个分布的能力。对称化版本叫”散度”,他们用J来表示。

直到几十年后,这个量才被广泛称为”KL散度”。而在AI爆发的2020年代,它成了一个家喻户晓的概念——至少在机器学习研究员的家谱里。


二、不对称:一个”缺陷”如何变成超能力

KL散度的不对称——现代数学教科书常常把它当作一个”遗憾”来提及:“可惜它不是真正的度量。”

但在AI对齐中,这个”缺陷”恰恰是超能力。

为什么?

因为当你”对齐”一个AI模型时,你不是在中立的两个方向之间做选择。你有一个明确的方向性

从已经学会一切的安全模型(π_ref)→ 被人类偏好微调的新模型(π_θ)。

你关心的是:新模型不要偏离旧模型太远。 你不关心的是:旧模型是否偏离新模型太远(因为旧模型已经固定了)。

D_KL(π_θ || π_ref)是”新模型相对于旧模型的额外信息成本”。如果π_θ在π_ref认为极不可能的地方分配了大量概率——KL散度会爆炸。

反过来——D_KL(π_ref || π_θ)——毫无意义。你不需要担心旧模型是否能”近似”新模型。

(ps:KL散度在这里做的工作——本质上就是”防止遗忘”。当你用人类偏好数据微调模型时,模型在”讨好人类”和”保持原有知识”之间走钢丝。KL惩罚就是那根平衡杆。如果人类偏好数据说”礼貌的回答更好”——模型可以在”礼貌”的方向上调整。但不能调整到忘掉事实、开始编造礼貌的谎言。KL散度精确地量化了”调整过头”的代价。不对称性在这里不是bug,是feature——因为对齐是单向的:你往好的方向走,但不能走太远。)


三、RLHF和DPO:KL散度的两种用法

RLHF(人类反馈强化学习)的标准做法:

  1. 训练一个奖励模型——让它学会区分”好回答”和”坏回答”
  2. 用PPO算法微调语言模型——最大化奖励
  3. 但每一步都加上KL惩罚——D_KL(π_θ || π_ref)

优化目标变成了:

最大化 [奖励 - β × KL散度]

β是一个超参数。β越大——模型被拉得越紧,不能偏离原始模型太多。β越小——模型可以自由地追逐奖励,但可能走火入魔。

(ps:这个β是所有RLHF训练中最关键的调参。太紧——模型根本不变好。太松——模型学会作弊。InstructGPT论文的一大贡献就是系统地研究了β的最优取值。ChatGPT能在”有用”和”安全”之间取得平衡,β调得好不好是决定性因素。)

2023年。斯坦福的一个团队提出了一种新方法:DPO(Direct Preference Optimization,直接偏好优化)。

DPO的核心洞察是数学上的一个小小的魔术。

它发现:RLHF的优化目标——最大化奖励减去KL散度——可以被重写为不需要显式奖励模型的形式。

通过变量替换,最优策略可以被直接表达为对数概率的比值:

最优策略 ∝ π_ref × exp(奖励/β)

把这个代回损失函数——奖励模型消失了。DPO的损失函数变成了:

直接比较模型在”好回答”和”坏回答”上的对数概率变化。

KL散度不再是一个显式的惩罚项。它被嵌入到了损失函数的结构中——变成了隐式正则。

(ps:这就像两个密码学家在1951年定义的那种运算——衡量两个分布之间的”鉴别信息”——在七十年后被编织进了一个神经网络的训练循环里,不再是一个外加的约束,而是目标函数的组成部分。库尔贝克管它叫”鉴别信息”。它最终真的被用来”鉴别”——鉴别一个好的语言模型和一个偏离太远的语言模型。)


四、KL散度的三条命

到现在为止。KL散度在AI中有至少三种完全不同的用途:

  1. 训练损失:交叉熵 = H(P) + D_KL(P || Q)。最小化交叉熵 = 最小化KL散度 = 让模型预测接近真实。(这是第10篇的故事)

  2. 对齐约束:RLHF中显式KL惩罚 + DPO中隐式KL正则。让模型变好但不遗忘。

  3. 知识蒸馏:用一个大的”教师模型”训练一个小的”学生模型”。学生模型的输出分布应该尽量接近教师模型——最小化D_KL(教师 || 学生)。

一个被两个密码学家定义来”衡量两个假设之间的信息差”的量——七十年后,成了AI训练、对齐、压缩三条技术路线上的核心数学工具。


五、不对称性的哲学

KL散度不对称这个性质——D_KL(P||Q) ≠ D_KL(Q||P)——深刻地回应了AI对齐中的一个核心问题。

AI对齐不是中立的”匹配”。它是有方向的。

你有一个已经训练好的模型。它知道语法、事实、推理。然后你希望它在”价值观”上更符合人类——同时不丢失任何已经学到的东西。

这是单向的。你只有一个方向可以走。

KL散度的不对称性完美地契合了这个逻辑。π_ref是”不要忘记的锚”。π_θ是”希望变好的帆”。KL惩罚确保帆不离开锚太远。

如果KL散度是对称的——如果它是一个真正的距离——“遗忘”和”学会”将在数学上是对称的惩罚。但这个世界上,“学会新东西后忘记了旧东西”和”记住旧东西但没有学会新东西”不是对称的错误。前者是灾难性的。后者只是不足。

两个密码学家不会想到。他们1951年定义的那个”不对称的量”——最初用来区分两个统计假设——在七十年后,被用来守护地球上最智能的机器不堕入”讨好人类而丧失一切”的深渊。

库尔贝克破解了日本Purple密码,莱布勒攻击了苏联VENONA系统。1951年他们在一个统计学问题上的合作——只是他们各自辉煌的密码学生涯中的一篇小论文。他们不会知道。这篇论文里定义的那个量——D_KL(P||Q)——将在七十年后被嵌入世界上每一块AI训练芯片里。这不是在传递秘密信息。这是在守护——守护模型在变得更好时,不要忘记它曾经是谁。


下一篇预告:《AI的数学血脉|从欧几里得到黎曼:几何学的两次革命》——第五辑(高维几何)开篇。一个28岁的德国人在哥廷根大学的就职演讲中重新定义了”空间”。170年后,AI在黎曼式的拓扑流形上理解一切词语的含义。