大模型面试题:PPO等RL算法中怎么算KL散度的,KL散度不对称?
我整理好的1000+面试题,请看
大模型面试题总结-CSDN博客
或者
https://gitee.com/lilitom/ai_interview_questions/blob/master/README.md
最好将URL复制到浏览器中打开,不然可能无法直接打开
-------------------------------------------------------------------------------------------------
好了,我们今天针对上面的问题,
PPO等RL算法中怎么算KL散度的,KL散度不对称?
关于这点,我看下了主力的几个PPO算法在文中是怎么定义的
PPO:

GRPO:

DAPO:

好像以居多,我也查了下相关论文对这个的描述,论文是https://arxiv.org/pdf/2512.16565,论文提到

上图给出了forward kl 和 reverse kl的表达形式
相关参数的介绍如下:

forward kl 和 reverse kl的推导过程如下:
令
也就是 PPO 里的 ratio。
那就有:
forward KL定义是:
把 ratio 代进去:
于是:
这就是表里 “forward KL → − log x” 的来源 没有近似、没有 heuristic,就是定义。
reverse KL 定义是:
但注意: PPO / TRPO 的数据 不是从 采的,而是从 。
所以要做 importance sampling:
令 ,得到:
于是:
为什么这两种形式“行为完全不同”, 我们分析一下哈.
| KL 类型 | 数学形式 | 行为特性 |
|---|---|---|
| forward KL | 对 小概率事件极其敏感 | |
| reverse KL | 对 大概率(mode)更敏感 |
forward KL的特性
-
当 :
-
强烈惩罚 新策略漏掉旧策略支持的动作
-
mode-covering
reverse KL的特性:
-
当 很大: 爆炸
-
当 :
-
容忍遗漏小概率动作
-
mode-seeking
总结:
正向KL:倾向于使模型分布 Q 覆盖目标分布 P 的所有支持点,适合于需要模型分布更广泛覆盖的情况。
反向KL:倾向于使模型分布 Q 集中在目标分布 P 的高概率区域,适合于生成任务,能够提高生成样本的质量和稳定性。
因此,在大语言模型和生成任务中,反向KL通常更受青睐。
更多推荐
所有评论(0)