type
status
date
slug
summary
tags
category
icon
password
记录在这里减少翻笔记的次数
1. KL 散度
KL散度(Kullback-Leibler Divergence),也被称为相对熵(Relative Entropy),是衡量两个概率分布之间差异的一种非对称度量。
可以从以下三个维度来直观理解它:
- 物理含义(信息论视角) 它衡量的是当我们用一个分布 (近似分布)来编码来自另一个分布 (真实分布)的数据时,平均每个样本所产生的额外信息量(或者说是信息损耗)。
- 如果 和 完全一样,KL散度为 0,表示没有额外损耗。
- 和 差异越大,KL散度越大。
- 数学特性(非对称性) KL散度不是严格意义上的“距离”,因为它不满足对称性。
- 。
- 正向 KL()通常用于监督学习(MLE),迫使 覆盖 的高概率区。
- 反向 KL()通常用于强化学习或变分推断,迫使 集中在 的某个高概率峰值上(Mode-seeking)。
简单来说,这两个公式的计算重心不同。一个是对 求和,一个是对 求和,当然结果就不一样了。
- 在 LLM 中的作用(锚点) 在 RLHF 或 GRPO 中,KL散度扮演着“锚点”或“约束器”的角色。它计算当前策略模型()输出的概率分布与参考模型(,即 SFT 模型)之间的差异,作为惩罚项。这强迫模型在学习人类偏好的同时,不要偏离原本通顺的语言表达习惯太远,防止“奖励劫持”和语言能力的崩坏。
工程实现步骤 (Per-token Calculation)
在训练过程中,我们无法遍历整个词表空间来计算精确的期望,而是针对当前生成的样本序列(Sampled Sequence)进行 Token 级别的计算。
假设对于输入 prompt ,模型生成了响应 。计算步骤如下:
- 获取对数概率 (Log Probabilities):
- 将输入序列传入当前策略模型 ,经过 LogSoftmax 得到对应生成 Token 的对数概率:。
- 将同样的序列传入参考模型 (通常冻结参数),得到参考对数概率:。
- 利用对数性质相减: 根据 ,第 个 Token 的 KL 散度(即该位置的惩罚项)计算非常简单: 注:这里通常计算的是样本估计值。
- 近似与稳定性处理: 在 PPO 或 GRPO 的代码实现中(如 TRL 库),为了数值稳定性,有时会使用如下近似公式(来自 http://joschu.net/blog/kl-approx.html ): 或者是标准的: 最终这个值会乘以系数 并从 Reward 中扣除。
2. KL 散度和交叉熵 (Cross-Entropy) 的关系
KL 散度和交叉熵在数学上是紧密耦合的,它们之间只差一个信息熵 (Entropy) 项。
- 数学关系 其中:
- 是交叉熵:
- 是分布 的熵(自身的不确定性):
- 是 KL 散度。
- 直观解释
- 交叉熵 :表示用分布 来编码来自分布 的样本所需的平均总比特数。
- 熵 :表示分布 本身固有的信息量,即编码 所需的理论最小比特数。
- KL 散度 :表示因为使用了 而不是真实的 来编码,所产生的额外信息损耗(Extra bits)。
- 在 LLM 训练中的意义
- 在 SFT (预训练/微调) 阶段:
- 是真实数据分布(Ground Truth,One-hot label),它是固定的。
- 因为 是固定的,其熵 就是一个常数。
- 此时,最小化交叉熵损失 (Cross-Entropy Loss) 等价于最小化 KL 散度。
- 目标是让模型分布 尽可能逼近数据分布 。
- 在 RLHF 阶段 (策略约束):
- 这里的 变成了当前策略模型 (它是变化的), 是参考模型 。
- 我们计算 是为了测量两个模型分布之间的距离。
- 这里不再是简单的最小化交叉熵,而是明确地利用 KL 散度作为距离度量,来限制策略的更新幅度。
其实,它们之间是有明确关系的:。这里的 是真实分布的信息熵,它是一个常数。所以,当我们在训练模型时,最小化交叉熵 也就等同于最小化 KL 散度 。因为真实分布 是固定的,它的熵 自然也是固定的。
3. Clip 和 KL 散度控制的区别?
PPO算法中的 Clip 机制和 KL 散度控制,是实现其核心思想——“在信任域(Trust Region)内进行策略优化”的两种不同路径。它们的目标一致,但实现方式和特点有显著区别。
无论使用Clip还是KL散度,最终目的都是为了解决传统策略梯度方法中,单次更新步长过大可能导致新策略性能急剧下降的问题。
它们都旨在将新的策略 限制在旧策略的一个“信任域”内,从而实现稳定、单调的性能提升。
- KL散度控制 (PPO-Penalty)
- 机制: 这是一种“软约束”(Soft Constraint)的方法。它直接在优化目标中加入一个KL散度作为惩罚项。
- 目标函数 (简化版):
- 是新旧策略的概率比。
- 是优势函数(Advantage)。
- 是新旧策略分布的KL散度,衡量了两个策略的差异程度。
- 是一个超参数,用于控制惩罚的强度。
- 工作方式: 优化器在最大化主要目标()的同时,也要最小化KL散度。如果新策略相比旧策略变化太大,KL散度项就会变得很大,形成一个巨大的惩罚,迫使更新方向回到离旧策略更近的地方。
- 挑战:
- 超参数 敏感: 的值非常难确定。设小了,起不到限制作用;设大了,会导致策略更新过分保守,学习缓慢。
- 动态调整: 在实践中,为了达到良好效果, 通常需要根据KL散度的实际值进行动态调整,这增加了实现的复杂度。
- Clip机制 (PPO-Clip)
- 机制: 这是PPO论文作者最终推荐的、也是目前更主流的方法。它是一种“硬约束”(Hard Constraint)的变体,通过裁剪(Clipping)来直接限制策略更新的幅度。
- 目标函数 (简化版):
- (epsilon) 是一个小的超参数(例如0.2),它定义了裁剪的范围 。
- 的意思是,将概率比 强制限制在这个区间内。如果大于,就取;如果小于,就取 。
- 工作方式:
- 当优势(即这是一个好的动作)时,目标函数变为 。这鼓励增大,但最大不超过,防止策略为了一个好的动作而更新得过于激进。
- 当优势(即这是一个坏的动作)时,目标函数变为 (因为A_t是负数,所以min变成了max)。这鼓励 减小,但最小不低于,防止策略为了避免一个坏动作而过度“逃离”。
- 优势:
- 实现简单: 它移除了KL散度的计算和复杂的 调整逻辑。
- 超参数 不敏感:: 通常取0.1, 0.2, 0.3等值,效果都比较稳定,比 更容易调节。
4. GRPO为什么加上KL散度,用的KL散度是正向KL散度还是反向??
GRPO (Group Relative Policy Optimization) 引入 KL 散度的核心目的是为了进行策略约束(Policy Constraint),防止模型在强化学习过程中为了过拟合奖励信号而导致语言能力退化。
以下是对这两个问题的深度解析:
1. 为什么要加上 KL 散度?
在 GRPO(以及 PPO 等 RLHF 算法)中,KL 散度通常作为一个惩罚项(Penalty)被加入到奖励函数或损失函数中,其主要作用有三点:
- 防止 Reward Hacking (奖励劫持): 奖励模型(Reward Model)或基于规则的验证器通常是不完美的,只能代理真实的人类意图。如果没有 KL 约束,策略模型()会倾向于利用奖励模型的漏洞,输出一些虽然得分很高但完全不符合人类语言逻辑的乱码或重复模式。KL 项强制模型保持在 SFT 模型的分布附近,从而抑制这种行为。
- 保持语言生成的连贯性 (Coherence): SFT 阶段的模型通常已经具备了良好的通顺度和基础指令遵循能力。KL 散度确保了 RL 训练后的模型不会灾难性遗忘这些基础能力,保证输出的文本依然是像“人话”的。
- 作为“信任区域” (Trust Region) 的近似: 虽然 GRPO 摒弃了 PPO 中的 Critic 模型,通过组内相对优势(Group Relative Advantage)来通过基线,但它依然需要控制策略更新的步幅。KL 散度限制了新策略 与旧策略(通常是参考模型 )之间的差异,防止参数更新过猛导致训练不稳定。
2. 为什么是反向 KL 散度 (Reverse KL)?
在数学定义上,GRPO 优化的目标是最小化 ,这就是反向 KL 散度。
- 正向 KL (Forward KL, ):公式为 。如果用于拟合,通常会导致 覆盖 的所有模式(Mean-seeking),即为了覆盖 的高概率区域, 可能会在 低概率的地方也分配概率。这在 RLHF 中通常不可行,因为我们无法直接从 采样并反向传播到 的生成过程。
- 反向 KL (Reverse KL, ):公式为 。在 RLHF 语境下, 对应当前的策略模型 , 对应参考模型 。
- 采样来源:在训练过程中,生成的样本(Prompt + Response)是来自于当前策略 的。这意味着我们在计算期望时,是基于 的分布进行积分的。
- 模式塌缩与精确性:最小化反向 KL 倾向于 Mode-seeking(模式寻找),即 会集中在 概率较高的区域,通过强化学习将概率质量集中在那些既符合 分布又能获得高 Reward 的样本上。
总结公式:
在 GRPO 的实际计算中,KL 惩罚项通常直接体现在每一项的奖励计算中(或者作为正则项),形式如下:
这里 是分子, 是分母,且样本 采样自 ,这完全符合反向 KL 散度的定义。
- 作者:SimonSun
- 链接:https://simonsun.xyz//article/llm-17
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章






