PPOは死んだ?DeepSeekが使用する強化学習の基盤には重大な欠陥がある!

一句话概括:还在用PPO微调大模型?你可能被它的核心机制坑了!这篇论文发现PPO用来限制更新幅度的“比率截断”CLIP在长尾分布的语言模型上完全失效:它会粗暴地阻止模型探索新颖的低频词,却又管不住高频词的剧烈漂移。作者提出的DPPO算法,直接用“策略分布的真实距离”来做“风控”,彻底解决了训练效率低和不稳定的老大难问题。(原论文题目见文末,点击阅读原文可直接跳转至原文链接, Published on arXiv on 05 Feb 2026, by Sea AI Lab, Singapore / NUS.)

各位小伙伴好,我创建了学术交流群(个人建群,非广告),涵盖大模型/CV/agent/多模态各个方向,欢迎进群交流,一起进步!

图片

第一阶段:识别核心概念

论文的motivation分析

在LLM的强化学习微调(如RLHF)中,PPO(Proximal Policy Optimization)是默认的王者。PPO的核心机制是利用一个“比率截断”来限制模型更新的幅度,防止新策略偏离旧策略太远(即走出Trust Region,信任区域)。作者发现了一个被长期忽视的结构性缺陷:PPO的截断机制是为传统RL(小动作空间)设计的,并不适合LLM(巨大的词表空间)。

具体表现为两个问题:

  • 对低概率Token的过度惩罚:LLM的长尾分布意味着很多合理的探索Token概率很低(如)。如果模型稍微提升一点它的概率(到),比率会瞬间变成100倍,触发PPO截断,导致模型学不动。
  • 对高概率Token的约束不足:对于概率极高的Token(如0.99),如果概率掉到0.8,比率变化很小,PPO认为这很安全。但在概率分布上,这其实是一个巨大的质量移动(Mass Shift),可能导致训练崩塌。

论文主要贡献点分析

  • 提出 Divergence Proximal Policy Optimization (DPPO):放弃了PPO粗糙的“比率”作为代理,直接使用策略散度(Policy Divergence)(如Total Variation或KL散度)来决定是否更新参数。
  • 引入轻量级近似方法:为了解决在几十万词表上计算全量散度太占显存的问题,提出了Binary(二值)Top-K近似方法。这使得DPPO的计算开销几乎可以忽略不计。
  • 建立了针对LLM的理论框架:推导了专门针对LLM生成任务(有限视界、无折扣、序列级奖励)的策略提升下界,弥补了经典RL理论与LLM实践之间的鸿沟。
  • 显著的实验结果:在数学推理任务(AIME24/25)上,DPPO在稳定性和最终性能上都显著优于GRPO等PPO变体,且不需要复杂的Rollout Router Replay技巧就能稳定训练。

理解难点识别

  • 最具挑战性的概念Ratio vs. Divergence (Total Variation) 的本质区别。初学者很难直观理解为什么“比率变化大”不等于“分布变化大”。这是理解为什么PPO在LLM上会失效的关键。
  • 需要重点解释的核心概念
    • PPO的比率陷阱:为什么它对长尾词表不公平?
    • Binary Approximation(二值近似):如何在不遍历整个词表的情况下算出近似的散度?

概念依赖关系

要理解DPPO,必须先通过比喻彻底搞懂PPO错在哪里。路径为:理解PPO的缺陷  引入“真实的距离”概念(TV散度)  解决计算难题(近似方法)  最终方案(DPPO)。

第二阶段:深入解释核心概念

比喻中的关键元素

  • 投资经理:模型策略 Policy。
  • 投资组合:词表 Vocabulary。
  • 蓝筹股(高概率Token):比如“苹果”或“微软”,原本把99%的资金(概率0.99)都投在这里。
  • 仙股(低概率Token):一些名不见经传的小公司,只投了1块钱(概率0.00001)。
  • 风控规则:Trust Region(信任区域)。

每个元素对应的实际技术概念

  • 投资操作:模型更新参数,改变Token的生成概率。
  • 资金变动:概率分布的变化量(Divergence)。
  • 资金倍数:PPO中的概率比率(Ratio)。

解释为什么这些对应关系是合理的

这个比喻捕捉了LLM中“高频词占据绝大部分概率质量”而“低频词虽然概率极低但数量巨大”的长尾特征,就像投资组合中资金分配极度不均一样。

深入技术细节

PPO的问题核心

PPO使用比率  进行截断。

  • 对于低概率词,分母极小,分子稍有变动, 就会爆炸。
  • 对于高概率词,分母极大,分子的大幅变动在  上体现不明显。

DPPO的解决方案

DPPO引入了一个基于散度(Divergence)的动态掩码(Mask)。它不再盲目截断,而是计算新旧策略分布之间的总变差距离(Total Variation, TV)

关键公式:DPPO的目标函数

符号替换版本DPPO的训练目标 = 期望值 [ 累加每一个Token ( 智能风控开关概率比率优势值 ) ]

这里的核心是那个智能风控开关 (

智能风控开关的状态

  • 情况1(想加仓但超标):如果这个动作是好的(优势值大于0)且正在增加它的概率,并且 整个投资组合的变动量(Divergence)已经超过了安全线() 关掉开关(0),阻止更新
  • 情况2(想减仓但超标):如果这个动作是坏的(优势值小于0)且正在减少它的概率,并且 整个投资组合的变动量(Divergence)已经超过了安全线() 关掉开关(0),阻止更新
  • 其他情况:一切正常,保持开启(1)

解决内存噩梦:Binary Approximation(二值近似)

要计算准确的TV散度,需要遍历词表里所有Token(比如10万个词)的概率变化并求和。这在训练时太慢且太占显存。作者提出了Binary Approximation(二值近似)

公式

符号替换版本简化的变动量计算 = | 旧策略下当前Token的概率 - 新策略下当前Token的概率 |

将技术细节与比喻相互映射

  • 场景一:你发现了潜力股(低概率Token的更新):你觉得那个只投了1块钱的“仙股”很有前途,决定加仓到100块钱。
    • PPO(比率风控官):只看增长倍数。它尖叫道:“天啊!你把仓位增加了100倍(Ratio = 100)!这是违规操作!驳回!” 结果:有益的探索被扼杀了。
    • DPPO(散度风控官):看资金总量的变动。它说:“哦,你只动了99块钱,占总资产比例不到亿分之一。批准操作。” 结果:模型成功学到了新知识。
  • 场景二:蓝筹股暴雷(高概率Token的更新):你突然觉得“苹果”不行了,决定把99%的仓位降到80%。
    • PPO(比率风控官):还是只看倍数。它计算:。它说:“倍数变化不大,还在0.8到1.2的安全范围内。批准操作。” 结果:巨大的策略偏移未被察觉,导致训练不稳定(Collapse)。
    • DPPO(散度风控官):看到你移动了19%的巨额资金。它立刻报警:“警告!资金变动量(Total Variation)超过阈值!这太危险了,必须阻止!” 结果:避免了模型崩塌。

总结

PPO的Ratio机制就像一个只懂小学乘除法的风控,容易对小额交易大惊小怪,却对大额资产流失视而不见。DPPO引入的TV散度(以及其近似)则是真正的精算师,它关注的是实际的“资金流动量”,从而在保证安全的前提下,允许模型对长尾知识进行有效探索。

第三阶段:详细说明流程步骤

具体流程伪代码

输入阶段我们有一个Prompt数据集(例如数学问题 ),一个参考模型(Reference Policy, ,通常是SFT后的模型冻结不变),和一个当前正在训练的模型(Policy, )。

Step 1: 采样与生成 (Rollout)

  • 从数据集中取出一个Prompt 
  • 让当前模型  根据  生成一个完整的回答序列 
  • 关键记录:在生成的过程中,不仅要保留生成的Token,还要记录下旧策略  对这些Token的预测概率以及新策略  对这些Token的预测概率

Step 2: 优势估算 (Advantage Estimation)

  • 将生成的回答  送入奖励模型(或通过规则打分,如数学题看答案是否正确),得到标量奖励 
  • 为了减少方差,通常会用GRPO的方式,对同一个Prompt生成多条回答,计算每条回答相对于平均值的优势 

Step 3: 计算散度与构建掩码 (Divergence Masking)进入训练循环,对于序列中的每一个位置 

  • 输入:当前Token ,旧概率 ,新概率 
  • 计算比率
  • 计算近似散度 (Binary TV):直接做差取绝对值:。(注:如果是Top-K近似,则需要取前K个高频词的概率分布进行对比)。
  • **生成掩码 **:
    • 设定一个超参数 (例如0.15)。
    • 检查是否违反信任区域:
    • 如果 (  且 ) 或者 (  且 ):说明模型正在试图根据优势更新参数。
    • 此时,如果 ,说明这次更新会导致分布变化过大,无论如何都要拦截。
    • 如果满足拦截条件,置 ;否则 

Step 4: 计算损失并反向传播

  • 输入:掩码 ,比率 ,优势 
  • 计算Loss:将它们相乘:。(注意通常是最小化负收益)。
  • 梯度更新:根据Loss计算梯度,更新模型  的参数。

输出更新后的模型参数,进入下一个训练步。

第四阶段:实验设计与验证分析

主实验设计:核心论点的验证

核心主张:DPPO比PPO/GRPO更稳定,且能处理词表长尾问题。

  • 数据集与任务:选择了数学推理任务,使用 AIME 2024 和 AIME 2025 作为测试集。数学推理对逻辑链条要求极高,任何一个步骤的崩塌都会导致结果错误,AIME是高难度竞赛题,非常适合测试RL的稳定性。
  • 基线方法
    • **GRPO (Clip-Higher)**:DeepSeek-R1使用的GRPO算法,加上了Clip-Higher trick。
    • CISPO:另一种尝试解决信任区域问题的方法。
  • 实验结果:DPPO在AIME 24/25上的Pass@1准确率不仅上升速度更快(效率高),而且最终收敛的分数明显高于GRPO。结论是使用散度(Divergence)代替比率(Ratio)作为约束,确实带来了实打实的性能提升。

消融实验分析:内部组件的贡献

问题一:信任区域真的必要吗?

  • 消融对象:移除所有Trust Region约束(即PG-IS方法)。
  • 结果:模型训练很快就崩塌(Collapse)了,准确率跌到谷底。
  • 结论:Trust Region是必须的,尤其是在学习率极低的情况下,训练-推理的不匹配(Mismatch)会累积。

问题二:锚点(Anchor)选谁?

  • 消融对象:对比以  (Rollout Policy)为锚点 vs. 以  (Recomputed Policy)为锚点。
  • 结果:以Rollout Policy为锚点(即DPPO的做法)非常稳定;而以Recomputed Policy为锚点(很多开源库的默认做法,如MiniRL)会导致崩塌。
  • 结论:必须锚定在生成数据的那个模型上,这符合On-Policy的理论假设。

问题三:二值近似(Binary)够用吗?

  • 消融对象:对比 Binary TV vs. Top-K TV。
  • 结果:两者性能几乎一致。
  • 结论:简单的二值近似已经捕捉到了绝大部分的分布偏移信息,性价比极高。

深度/创新性实验剖析:洞察方法的内在特性

实验A:被PPO误杀的Token有哪些?

  • 设计:作者把训练过程中被PPO截断(Clipped)的Token打印出来分析。
  • 发现:被截断最多的全是关键推理词!比如数字("1", "4")、数学符号("+", "=")、逻辑连接词("Therefore", "Since")。
  • 洞见:这些词通常在初始模型中概率较低(因为推理路径多样),一旦RL发现某条路径是对的,想大幅提升这些词的概率时,PPO却因为Ratio过大而“一刀切”地阻止了更新。

实验B:解剖“不稳定性”的来源

  • 设计:作者逐步放宽约束,看看到底哪种更新导致了崩塌。
  • 发现:崩塌的主要推手是对负样本(Negative Samples)的过度更新。当模型收到负反馈时,如果没有Divergence约束,模型会疯狂降低相关Token的概率,导致“矫枉过正”,破坏了模型原本的语言能力。
  • 结论:DPPO的掩码机制在处理负反馈时起到了关键的保护伞作用。

本文题目:Rethinking the Trust Region in LLM Reinforcement Learning

欢迎Deep Learning同好与我交流、讨论、合作!


分享網址
AINews·AI 新聞聚合平台
© 2026 AINews. All rights reserved.