Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

AGI——Welcome-to-the-era-of-Experience

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Welcome to the Era of Experience, David Silver & Richard S. Sutton
    • 注:这篇论文是即将面世的书籍《Designing an Intelligence》中的一个章节的 preprint

TLDR

  • 本人对论文的一句话核心总结 :RL is all you Need!
    • 作者观点 1:当前人们因为 LLM 的崛起而不关注 RL,但这只是暂时的,要实现最终的 AGI ,最终还是需要 RL
    • 作者观点 2:RL 的春天要来了,超越人类智能的 Agent 实现路径是基于 Experience 的 RL

Abstract

  • 我们正站在人工智能新时代的门槛上,这个时代有望实现前所未有的能力水平
  • 新一代的 Agent 将主要通过从 Experience 中学习来获得超人的能力
  • 论文探讨了将定义这个即将到来的时代的关键特征

The Era of Human Data

  • 人工智能 (AI) 通过在大量人类生成的数据上进行训练,并用人类专家的示例和偏好进行微调,取得了显著进步
    • LLM 就是这种方法的典范,LLMs 已经达到了广泛的通用性
  • 一个单一的 LLM 现在可以执行从写诗和解决物理问题到诊断医疗问题和总结法律文件等任务
  • However,虽然模仿人类足以在许多能力上达到合格水平,但孤立地使用这种方法尚未、并且很可能无法在许多重要主题和任务上实现超人智能(superhuman intelligence)
  • 在数学、编程和科学等关键领域,从人类数据中提取的知识正在迅速接近极限
  • 大多数高质量数据源(特指那些确实能够提升强 Agent 性能的数据源)要么已经被消耗,要么很快将被消耗殆尽
  • 仅靠人类数据监督学习推动的进展速度明显在放缓,这表明需要一种新的方法
  • Furthermore,有价值的新 Insights,如新定理、新技术或科学突破,超出了当前人类理解的边界,无法被现有的人类数据所捕捉

Experience 时代 (The Era of Experience)

  • 为了取得显著进步,需要一种新的数据来源
  • 这种数据必须以 Agent 变得更强而持续改进的方式生成;任何静态的合成数据生成程序都将迅速被超越
  • 这可以通过允许 Agent 从其自身 Experience (即 Agent 与其环境交互生成的数据)中持续学习来实现
    • experience , i.e., data that is generated by the agent interacting with its environment
  • 人工智能正处在一个新时期的边缘, Experience 将成为主要的改进媒介,并最终使当今系统中使用的人类数据的规模相形见绌
  • 这种转变可能已经开始了,即使对于体现以人为中心的人工智能的 LLM 也是如此
    • 数学能力就是一个例子
    • AlphaProof (2024) 最近成为第一个在国际数学奥林匹克竞赛中获得奖牌的程序,超越了以人类为中心的方法的性能 (2025, 2024, 2025)
  • 在最初接触了由人类数学家多年来创建的大约十万个形式化证明之后,AlphaProof 的强化学习算法1随后通过与形式化证明系统的持续交互,生成了一亿多个证明
    • 注:RL 算法是一种通过试错来学习实现目标的算法,即从其与环境交互的 Experience 中调整其行为
      • 调整可以通过任何方式进行,例如更新神经网络的权重,或根据环境的反馈进行上下文内调整
  • 这种对交互 Experience 的关注使得 AlphaProof 能够探索超出预先存在的形式化证明范围的数学可能性,从而发现解决新颖且具有挑战性问题的方案
  • 非形式数学也通过用自我生成的数据替代专家生成的数据取得了成功;例如,DeepSeek 最近的工作
    • “强调了强化学习的力量和美感:论文不是明确地教导模型如何解决问题,而是简单地为其提供正确的激励,它就能自主地发展出高级的问题解决策略”(2025)

      underscores the power and beauty of reinforcement learning: rather than explicitly teaching the model on how to solve a problem, we simply provide it with the right incentives, and it autonomously develops advanced problem-solving strategies.

  • 论文的论点是,一旦充分发挥 Experience 学习的潜力,将会出现令人难以置信的新能力
  • 这个 Experience 时代的特征很可能在于 Agent 和环境,除了从大量 Experience 数据中学习之外,还将在几个更深的维度上突破以人类为中心的人工智能系统的局限:
    • Agent 将生存在 Experience 流 (streams of experience) 中,而非简短的交互片段中
    • 它们的行动和观察将根植于环境 (richly grounded in the environment),而非仅仅通过人类对话进行交互
    • 它们的奖励 (rewards) 将基于其在环境中的 Experience ,而非来自人类的预判
    • 它们将对 Experience 进行 规划和/或推理 (plan and/or reason about experience),而非仅以人类术语进行推理
  • 作者相信,今天的技术,配合适当选择的算法,已经为取得这些突破提供了足够强大的基础
  • Furthermore,人工智能界对此议程的追求将推动这些方向的新创新,迅速推动人工智能走向真正的超人类 Agent

Streams(流)

  • 一个 Experience 式 Agent 可以在一生中持续学习
  • 在人类数据时代,基于语言的人工智能主要关注简短的交互片段:e.g.,用户提出问题, Agent (可能在几个思考步骤或工具使用动作后)做出回应
    • Typically,几乎没有或根本没有信息从一个片段延续到下一个片段,排除了任何随时间推移的适应
    • Furthermore, Agent 只专注于在当前片段内取得结果,例如直接回答用户的问题
  • In contrast,人类(和其他动物)存在于一个持续多年的行动和观察流中
    • 信息在整个流中传递,它们的行为根据过去的 Experience 进行调整以自我纠正和改进
    • Furthermore,goals 可以用延伸至流未来的行动和观察来指定
    • For Example,人类可以选择行动以实现长期目标,如改善健康、学习一门语言或实现科学突破
  • 强大的 Agent 应该拥有自己的 Experience 流,像人类一样在长时间尺度上推进
    • 这将允许 Agent 采取行动以实现未来目标,并随时间不断适应新的行为模式
    • For example,
      • 一个连接到用户可穿戴设备的健康和保健 Agent ,可以连续数月监测睡眠模式、活动水平和饮食习惯
        • 然后它可以提供个性化的建议、鼓励,并根据长期趋势和用户的特定健康目标调整其指导
      • Similarly,个性化教育 Agent 可以跟踪用户在学习一门新语言方面的进展,识别知识差距,适应其学习风格,并在数月甚至数年内调整其教学方法
      • Furthermore,一个科学 Agent 可以追求雄心勃勃的目标,例如发现一种新材料或减少二氧化碳排放
    • 这样的 Agent 可以在较长时间内分析现实世界的观察数据,开发和运行模拟,并提出现实世界的实验或干预措施
  • 在每种情况下, Agent 都采取一系列步骤,以最大化相对于指定目标的长期成功
    • 单个步骤可能不会提供任何即时利益,甚至可能在短期内不利,但总体上可能有助于长期成功
    • 这与当前的人工智能系统形成鲜明对比,当前人工智能系统对请求提供即时响应,没有任何能力衡量或优化其行动对环境产生的未来后果

Actions and Observations

  • Experience 时代的 Agent 将在现实世界中自主行动
  • 人类数据时代的 LLM 主要关注人类特权行动和观察,即向用户输出文本,并从用户接收文本输入到 Agent
    • 这与自然智能形成鲜明对比,在自然智能中,动物通过运动控制和传感器与其环境交互
    • 虽然动物(尤其是人类)可能与其他动物交流,但这是通过与其他感觉运动控制相同的接口进行的,而不是通过特权通道(理解:这里说的是不是专门为输入文本准备的通道)
  • 人们早已认识到, LLM 也可以在数字世界中调用行动,例如通过调用 API(例如,参见 (2023))
    • Initially,这些能力主要来自人类使用工具的示例,而不是 Agent 的 Experience
    • However,Coding 和 tool-use 能力越来越依赖于执行反馈 (2022, 2023, 2025),即 Agent 实际运行代码并观察发生的情况
  • Recently,新一代原型 Agent 开始以更通用的方式与计算机交互,即使用人类操作计算机所用的相同接口 (2024, 2024, 2025)
  • 这些变化预示着从纯粹的人类特权通信,向更自主的交互过渡,使得 Agent 能够在世界中独立行动
    • 这样的 Agent 将能够积极探索世界,适应不断变化的环境,并发现人类可能从未想到过的策略
  • 这些更丰富的交互将提供一种自主理解和控制数字世界的手段
    • Agent 可以使用“用户友好”的行动和观察,如用户界面,自然地促进与用户的沟通和协作
    • Agent 也可以采取“机器友好”的行动来执行代码和调用 API,允许 Agent 自主行动以服务于其目标
  • 在 Experience 时代, Agent 还将通过数字接口与真实世界交互
    • For Example,一个科学 Agent 可以监测环境传感器,远程操作望远镜,或在实验室中控制机器人手臂以自主进行实验

Rewards

  • 如果 Experience 式 Agent 可以从外部事件和信号中学习,而不仅仅是人类偏好,会怎样?
  • 以人类为中心的 LLM 通常根据人类预判来优化奖励:
    • 专家观察 Agent 的行动并决定其是否是一个好行动,或者在多个备选方案中选择最佳 Agent 行动
    • For Example,专家可以评判健康 Agent 的建议、教育助理的教学或科学家 Agent 建议的实验
      • 这些奖励或偏好是由人类在缺乏其后果的情况下决定的,而不是衡量这些行动对环境的影响,这意味着它们并非直接植根于现实世界
  • 依赖这种人类预判的方式通常会给 Agent 的性能带来一个难以逾越的上限:
    • Agent 无法发现被人类评估者低估的更好策略
  • 要发现远远超出人类现有知识的新思想,需要使用根植于现实的奖励 (grounded rewards):源于环境本身的信号
    • For Example,一个健康助理可以将用户的健康目标转化为基于静息心率、睡眠持续时间和活动水平等信号组合的奖励,而教育助理可以使用考试成绩为语言学习提供根植于现实的奖励
    • Similarly,一个以减少全球变暖为目标的科学 Agent 可能使用基于二氧化碳水平实证观察的奖励,而一个发现更强材料的目标可能基于材料模拟器的测量组合,如拉伸强度或杨氏模量
  • 根植于现实的奖励也可能来自作为 Agent 环境一部分的人类
    • 注:Experience 和人类数据并非完全对立,For Example,狗完全从 Experience 中学习,但人类互动是其 Experience 的一部分
    • For Example,人类用户可以报告他们是否觉得蛋糕美味,运动后有多疲劳,或头痛的疼痛程度,使助理 Agent 能够提供更好的食谱,完善其健身建议,或改进其推荐药物
    • 此类奖励衡量 Agent 行动在其环境中的后果,最终应能提供比预判蛋糕食谱、锻炼计划或治疗计划的人类专家更好的帮助
  • 如果奖励不来自人类数据,那它们来自哪里?
    • 一旦 Agent 通过丰富的行动和观察空间(见上文)连接到世界,将不缺乏根植于现实的信号作为奖励的基础
    • 事实上,世界充满了各种量化指标,如成本、错误率、饥饿感、生产力、健康指标、气候指标、利润、销售额、考试成绩、成功、访问量、产量、库存、点赞、收入、快乐/痛苦、经济指标、准确性、功率、距离、速度、效率或能源消耗

      such as cost, error rates, hunger, pro- ductivity, health metrics, climate metrics, profit, sales, exam results, success, visits, yields, stocks, likes, income, pleasure/pain, economic indicators, accuracy, power, distance, speed, efficiency, or energy consump- tion

    • 此外,还有无数源自特定事件发生、或从原始观察和行动序列中提取特征的额外信号
  • 原则上,可以创建多种不同的 Agent ,每个 Agent 优化一个根植于现实的信号作为其奖励
    • 有观点认为,即使是单个这样的奖励信号,若能被高度有效地优化,也可能足以诱导出广泛的能力性智能 (2021)
      • 注:奖励即足够假说 (The reward-is-enough hypothesis) 认为,智能及其相关能力可以从奖励最大化中自然涌现
      • 这可能包括包含人类交互的环境和基于人类反馈的奖励
    • 这是因为在一个复杂环境中实现一个简单的目标,通常需要掌握各种各样的技能
  • However,追求单一奖励信号在表面上似乎不符合通用人工智能的要求,即能够可靠地引导向任意用户期望的行为
  • 那么,自主优化根植于现实的、非人类奖励信号是否与现代人工智能系统的要求相悖?
    • 作者认为并非必然如此
  • 论文概述一种可能满足这些要求的方法;其他方法也可能存在:其思想是以用户引导的方式,基于根植于现实的信号灵活调整奖励
    • For Example,奖励函数可以由一个神经网络定义,该网络将 Agent 与用户和环境的交互作为输入,并输出一个标量奖励
      • 这允许奖励以取决于用户目标的方式从环境中选择或组合信号
    • For Example,用户可以指定一个广泛的目标,如“改善我的健康状况”,奖励函数可能返回用户心率、睡眠持续时间和步数的函数
    • Or,用户可以指定“帮助我学习西班牙语”的目标,奖励函数可以返回用户的西班牙语考试成绩
  • Furthermore,用户可以在学习过程中提供反馈,例如他们的满意度,可用于微调奖励函数
    • 奖励函数可以随时间调整,以改进其选择或组合信号的方式,并识别和纠正任何偏差
    • 这也可以理解为一个双层优化过程,将用户反馈优化作为顶层目标,将环境中的根植于现实的信号优化作为底层目标(这样,少量的人类数据可以促进大量的自主学习)
      • 注:In this case, one may also view grounded human feedback as a singular reward function forming the agent’s overall objective, which is maximised by constructing and optimising an intrinsic reward function (2004) based on rich, grounded feedback.

Planning and Reasoning

  • Experience 时代会改变 Agent 规划和推理的方式吗?
  • Recently,在使用能够推理或“think” with language 的 LLM 方面取得了重大进展 (2024, 2024, 2025),它们在输出响应之前还会输出一个思维链 (2022)
  • 从概念上讲(Conceptually), LLM 可以充当通用计算机 (2023): LLM 可以将 Token 附加到其自身上下文中,使其能够在输出最终结果之前执行任意算法
  • 在人类数据时代,这些推理方法被明确设计来模仿人类的思维过程
    • For Example, LLM 被提示生成类人的思维链 (2022),模仿人类思维轨迹 (2022),或强化与人类示例匹配的思维步骤 (2023)
    • 推理过程可以进一步微调,以产生与人类专家确定的正确答案相匹配的思维轨迹 (2022)
  • However,人类语言几乎不可能提供通用计算机的最佳实例(it is highly unlikely that human language provides the optimal instance of a universal computer)
    • 肯定存在更高效的思维机制,使用非人类语言,例如利用符号、分布式、连续或可微分计算
    • 一个自学习系统原则上可以通过从 Experience 中学习如何思考来发现或改进此类方法
    • For Example,AlphaProof 学会了以一种与人类数学家截然不同的方式形式化证明复杂定理 (2024)
  • Furthermore,通用计算机的原则只涉及 Agent 的内部计算;它并未将其与外部世界的现实联系起来
  • 一个被训练来模仿人类思想甚至匹配人类专家答案的 Agent ,可能会继承深植于该数据中的错误思维方法,例如有缺陷的假设或固有偏见
    • For Example,Agent 使用不同的数据会得到不同的思想:
      • 若使用 5000 年前的人类思想和专家答案进行推理,它可能以万物有灵论的方式思考物理问题;
      • 1000年前可能是神学方式;300年前可能是牛顿力学方式;
      • 50年前可能是量子力学方式
    • 要超越每种思维方式,都需要与现实世界交互:提出假设、进行实验、观察结果并相应地更新原理
  • Similarly, Agent 必须根植于现实世界的数据,才能推翻错误的思维方法
    • 这种根植性提供了一个反馈循环,允许 Agent 根据现实检验其继承的假设,并发现不受当前主流人类思维模式限制的新原理
    • 没有这种根植性,无论多么复杂的 Agent ,都将成为现有人类知识的回声室(echo chamber)
  • 为了超越这一点, Agent 必须积极与世界互动,收集观察数据,并使用这些数据迭代地完善其理解,这在许多方面反映了推动人类科学进步的过程
  • 将思维直接根植于外部世界的一种可能方式是构建一个世界模型 (world model) (2018),用于预测 Agent 行动对世界的后果,包括预测奖励
    • For Example,一个健康助理可能考虑推荐一家本地健身房或一个健康播客
    • Agent 的世界模型可能会预测用户的静息心率或睡眠模式在此行动后可能如何变化,以及预测与用户的未来对话
      • 这允许 Agent 直接根据其自身行动及其对世界的因果效应进行规划 (1990, 2020)
    • 随着 Agent 在其 Experience 流中持续与世界互动,其动态模型不断更新以纠正其预测中的任何错误
    • 给定一个世界模型, Agent 可以应用可扩展的规划方法来提高 Agent 的预测性能
  • Planning 方法和 Reasoning 方法并不相互排斥:
    • Agent 可以在规划过程中应用内部 LLM 计算来选择每个行动,或者模拟和评估这些行动的后果

Why Now?

  • 从 Experience 中学习并非新鲜事
  • 强化学习系统以前已经掌握了大量在模拟器中表示并具有明确奖励信号的复杂任务(参见图1中大致对应的“模拟时代”)
  • For Example, 强化学习方法在
    • 双陆棋 (1994)、围棋 (2016)、国际象棋 (2018)、扑克 (2017, 2018) 和 Stratego (2022) 等棋盘游戏中通过自我对弈达到或超越了人类水平;
    • 在雅达利游戏(Atari) (2015)、星际争霸II (2019)、Dota 2 (2019) 和 Gran Turismo (2022) 等视频游戏中;
    • 在如魔方 (2019) 等灵巧操作任务中;
    • 在如数据中心冷却 (2016) 等资源管理任务中
  • Furthermore,像 AlphaZero (2017) 这样强大的强化学习 Agent ,随着神经网络规模、交互 Experience 数量和思考时间的增加,展现出令人印象深刻且可能无限的扩展性
  • However,基于这种范式的 Agent 未能跨越从模拟(具有单一、精确定义奖励的封闭问题)到现实(具有多种看似定义不清奖励的开放式问题)的鸿沟
  • 人类数据时代提供了一个有吸引力的解决方案
    • 海量的人类数据包含了针对海量多样化任务的自然语言示例
    • 在此数据上训练的 Agent ,与模拟时代较窄的成功相比,取得了广泛的能力
  • Consequently,Experience 式强化学习的方法论在很大程度上被弃用,转而青睐更 General-purpose 的 Agent ,导致了向以人类为中心的人工智能的广泛过渡
  • However,在这种转变中失去了一些东西: Agent 自我发现其自身知识的能力
    • For Example,AlphaZero 发现了国际象棋和围棋的全新策略,改变了人类玩这些游戏的方式 (2019, 2018)
  • Experience 时代将把这种能力与人类数据时代所达到的任务通用性水平结合起来
    • 如上所述,当 Agent 能够在现实世界的 Experience 流中自主行动和观察 (2024),并且奖励可以灵活地连接到任何丰富的、根植于现实的真实世界信号时,这将成为可能
    • 能够与复杂的、现实世界行动空间交互的自主 Agent (2024, 2024, 2025) 的出现,以及能够在丰富推理空间中解决开放式问题的强大强化学习方法 (2024, 2025),表明向 Experience 时代的过渡已迫在眉睫
  • 图1:主流人工智能范式的草图年表
    • 纵轴表示:专注于强化学习的努力/该领域总努力

Reinforcement Learning Methods

  • 强化学习有着深厚的历史渊源,根植于自主学习,即 Agent 通过与其环境直接交互为自己学习
  • 早期的强化学习研究产生了一系列强大的概念和算法
    • For Example,时间差分学习 (1988) 使 Agent 能够估计未来奖励,从而取得了诸如在双陆棋中超越人类水平 (1994) 等突破
    • 以乐观或好奇心驱动的探索技术被开发出来,以帮助 Agent 发现创造性的新行为并避免陷入次优的常规 (2021)
    • 像 Dyna 算法这样的方法使 Agent 能够构建和学习其世界模型,从而允许它们对未来行动进行规划和推理 (1990, 2020)
    • 选项 (options) 和选项内/选项间学习等概念促进了时间抽象,使 Agent 能够在更长时间尺度上进行推理,并将复杂任务分解为可管理的子目标 (1999)
      • 注:Option 是分层强化学习的经典时间抽象工具,由 Sutton 等人在 1999 年提出,用于将多步行为封装为可复用的 “宏动作 / 子策略”,实现跨时间尺度的决策与规划,适配复杂任务的分解与迁移
  • However,以人类为中心的 LLM 的兴起,将焦点从自主学习转移到了利用人类知识上
    • 像 RLHF (2017, 2022) 和使语言模型与人类推理保持一致的方法 (2022) 等技术被证明极其有效,推动了人工智能能力的快速进步
    • 这些方法虽然强大,但往往绕过了强化学习的核心概念:RLHF 通过调用人类专家替代机器估计的价值,回避了对价值函数的需求;
    • 来自人类数据的强先验减少了对探索的依赖;以人类为中心的术语进行推理降低了对世界模型和时间抽象的需求
  • 可以说这种范式的转变是“把婴儿和洗澡水一起倒掉了(has thrown out the baby with the bathwater)”
    • 虽然以人类为中心的强化学习实现了前所未有的行为广度,但它也给 Agent 的性能强加了一个新的上限: Agent 无法超越现有的人类知识
    • FurtherMore,人类数据时代主要关注那些为短片段(short episodes)、非根植的(ungrounded)人类交互设计的强化学习方法,这些方法并不适用于长期的、根植于现实的(grounded)自主交互流

      the era of human data has focused predominantly on RL methods that are designed for short episodes of ungrounded, human interaction, and are not suitable for long streams of grounded, autonomous interaction.

  • Experience 时代提供了一个重新审视和改进经典强化学习概念的机会
    • 这个时代将带来关于奖励函数的新思考方式,使其灵活地植根于观察数据
    • Experience 时代将重新审视价值函数以及从尚不完整的长期流中估计价值的方法
    • Experience 时代将带来有原则且实用的现实世界探索方法,以发现与人类先验截然不同的新行为
    • Experience 时代将开发新颖的世界模型方法来捕捉根植交互的复杂性
  • 新的时间抽象方法将使 Agent 能够在 Experience 层面上,在更长的时间跨度上进行推理
  • 通过在强化学习的基础上,并将其核心原理适应这个新时代的挑战,我们可以释放自主学习的全部潜力,并为通向真正的超人类智能铺平道路

Consequences

  • Experience 时代的到来,即人工智能 Agent 从与世界的交互中学习,预示着与论文迄今为止所见任何事物都截然不同的未来
  • 这种新范式虽然提供了巨大的潜力,也带来了重要的风险和挑战,需要仔细考虑,包括但不限于以下几点
  • 积极方面(On the positive side), Experience 学习将释放前所未有的能力
    • 在日常生活中,个性化助手将利用连续的 Experience 流,在数月或数年内,针对个人的健康、教育或职业需求,朝着长期目标进行调整
      • 也许最具变革性的是科学发现的加速
    • 人工智能 Agent 将自主设计和进行材料科学、医学或硬件设计等领域的实验
    • 通过持续从自身实验结果中学习,这些 Agent 可以迅速探索新的知识前沿,以前所未有的速度开发出新颖的材料、药物和技术
  • However,这个新时代也带来了重大且新颖的挑战
    • 虽然人类能力的自动化有望提高生产力,但这些改进也可能导致工作岗位的流失
    • Agent 甚至可能展现出先前被认为是人类专属领域的能力,例如长期问题解决、创新以及对现实世界后果的深刻理解
  • Furthermore,在对人工智能的潜在滥用存在普遍担忧的同时,那些能够自主与世界长时间交互以实现长期目标的 Agent 可能会带来更高的风险
    • 默认情况下(By default),这为人类干预和调解 Agent 的行动提供了更少的机会,因此需要更高水平的信任和责任
    • 远离人类数据和人类思维模式也可能使未来的人工智能系统更难以解释
  • However,承认 Experience 学习会增加某些安全风险的同时,肯定需要进一步研究以确保安全过渡到 Experience 时代,我们也应认识到,它也可能提供一些重要的安全益处
  • Firstly, Eexperiential Agent 了解自身所处的环境,其行为可以随时间推移适应环境的变化
    • 注:任何预编程的系统,包括固定的人工智能系统,都可能不了解自身环境背景,并对其部署到的变化的世界 maladapted
      • For Example,关键硬件可能发生故障,流行病可能导致快速的社会变化,或者新的科学发现可能引发一系列快速的技术发展
    • By Contrast, Experiential Agent 可以观察并学习规避故障硬件,适应快速的社会变化,或者拥抱并基于新科学技术进行构建
    • Perhaps even more importantly, Agent 可以识别其行为何时引发了人类的担忧、不满或痛苦,并自适应地修改其行为以避免这些负面后果
  • Second, Agent 的奖励函数本身可以通过 Experience 进行调整,例如使用前面描述的双层优化(参见奖励部分)
    • 重要的是,这意味着不一致的奖励函数通常可以通过试错随时间逐步纠正
      • For Example,奖励函数可以基于人类担忧的迹象进行修改,而不是盲目地优化一个信号,例如最大化回形针生产 (2003),直到回形针生产耗尽地球资源
    • 这类似于人类为彼此设定目标,然后如果观察到人们钻系统空子、忽视长期福祉或导致不希望看到的负面后果,则调整这些目标;
    • 不过也像人类设定目标一样,无法保证完美的一致
  • Finally,依赖于物理 Experience 的进步本身受到在现实世界中执行行动和观察其后果所需时间的限制
    • For Example,一种新药的开发,即使有 AI 辅助设计(AI-assisted Design),仍然需要无法在一夜之间完成的现实世界试验
    • 这可能为潜在的人工智能自我改进速度提供一个天然的制约

Conclusion

  • Experience 时代标志着人工智能演进的关键时刻
    • 建立在当今坚实的基础上,但超越人类衍生数据的局限, Agent 将越来越多地从自身与世界的交互中学习
  • Agent 将通过丰富的观察和行动与环境自主交互
    • Agent 将在终生的 Experience 流中持续适应
  • Agent 的目标可以被引导至任何根植于现实的信号组合
  • Furthermore, Agent 将利用强大的非人类推理能力,并构建基于 Agent 行动对其环境所产生后果的规划
  • Ultimately, Experiential 数据将在规模和质量上超越人类生成的数据
    • 这种范式转变,伴随着强化学习的算法进步,将在许多领域释放超越任何人类所拥有的新能力

NLP——技术报告解读-Motif-2-12.7B-Reasoning

注:本文包含 AI 辅助创作

  • 参考链接:
    • 前置工作:Motif 2 12.7B technical report, 20251207, Motif Technologies
    • 原始论文:Motif-2-12.7B-Reasoning: A Practitioner’s Guide to RL Training Recipes, 20251211, Motif Technologies
    • 其他解读博客:Motif-2-12.7B-Reasoning:RL 训练配方与全栈优化实践指南

Paper Summary

  • 整体总结
    • 论文介绍了 Motif-2-12.7B-Reasoning(12.7B 参数):挑战了复杂推理需要海量规模的假设
    • 论文证明了,在有限预算下释放稳健的推理能力,一个整体的优化策略是必不可少的
      • 包括面向 64K 上下文的系统级效率、分布对齐的监督微调以及一个稳定的强化学习方案
    • 针对推理适应过程中常见的模型崩溃和训练不稳定挑战:提出了一套涵盖系统、数据和算法优化的全面、 可复现 的训练方案
  • 论文的方法结合了用于 64K Token 上下文的内存高效基础设施(采用混合并行和内核级优化)以及一个两阶段的监督微调课程,该课程通过经过验证、对齐的合成数据来缓解分布不匹配问题
  • Motif-2-12.7B-Reasoning 在数学、编码和智能体基准测试中取得了与参数量显著更大的模型相当的性能

Introduction and Discussion

  • 近年来,LLM 的发展在通用指令遵循方面取得了显著进展,yet 稳健的复杂推理和长上下文理解仍然是开放的挑战
  • A growing body of work 测试时扩展(通过更长的思维链、多步推理或多样本推理分配更多推理计算)不仅能显著提升数学和编码任务的表现,也能改善指令遵循、工具使用和智能体决策
  • At the same time,无论是闭源的前沿模型还是最强的开源权重系统,都越来越多地采用优化推理的 LLM 形式,这反映在诸如 Artificial Analysis Intelligence Index (AAII) (2024) 等基准测试中,其中“thinking”变体始终优于非推理的对应版本(non reasoning counterparts)
  • 尽管有这种转变(Despite this shift),训练推理 LLM 仍只对少数组织开放
  • 关于扩展强化学习微调、稳定长序列训练以及高效处理长上下文工作负载的实用方案很少被详细记录
  • In particular,虽然 RLFT 常被宣传为超越 SFT 的下一步,但实践者经常观察到,简单地应用 RLFT 会导致模型在我们希望改进的推理基准上崩溃或性能下降
  • As a result,社区虽然有强有力的证据表明推理模型和推理扩展很重要,但对于如何在现实预算约束下可靠地训练此类模型,却缺乏指导
  • In this context,论文介绍了 Motif-2-12.7B-Reasoning,一个基于 Motif-2-12.7B-Instruct (2025) 训练的 12.7B 参数推理 LLM,通过一个额外的分布对齐 SFT 阶段和一个精心设计的 RLFT 流程实现
    • Motif-2-12.7B-Reasoning 在一系列推理密集的基准测试中,其性能可与 30B 至 40B 参数范围的前沿模型相媲美,在某些情况下甚至超越
    • 在 AAII 及相关综合评估中,Motif-2-12.7B-Reasoning 取得了比 GPT-5.1 更高的分数,而在排名高于它的模型中,没有一个是小于 12.7B 参数的
  • 作者相信,人工智能的真正进步依赖于知识的共享和可复现性,而非不透明的“黑盒”训练流程
  • 本工作的目标有两个:
    • 目标一:将 Motif-2-12.7B-Reasoning 作为一个有竞争力的开源权重推理模型呈现;
    • 目标二:使其训练过程透明且实际可复现
  • 论文不仅记录了最终方案,也记录了塑造它的设计迭代、失败模式和经验教训,重点关注那些对稳定性、效率和性能产生实质影响的决策
  • 在 SFT 方面,论文描述了一个两阶段、分布对齐的课程,以密集化和结构化推理监督
    • 这包括针对性地整理多步推理数据(数学、代码和多跳自然语言)、将 SFT 数据分布与下游 RL 目标对齐,以及逐步增加任务难度和上下文长度同时保持指令遵循保真度的课程策略
  • 在 RLFT 方面,论文为推理和长上下文用例提出了一种实用的 RL 方案,重点关注可在现实计算预算内实现的技术
    • 论文详细阐述了针对不同推理任务的奖励建模方法、避免过度优化和模式崩溃的稳定性启发式方法 ,以及平衡探索与保留基础模型能力的调度策略
    • 论文进一步分析了这些设计选择如何与测试时扩展相互作用,表明在适当的约束下应用 RLFT,可以使其既稳定又能可靠地带来收益
  • Finally,实验结果表明 Motif-2-12.7B-Reasoning 在数学、编码、指令遵循、工具增强推理和长上下文基准测试上,相比 Motif-2-12.7B-Instruct 和其他竞争基线都有显著的性能提升
    • 论文强调了其测试时扩展行为、相对于更大前沿模型的参数效率,以及其在不同评估设置下的稳健性

Part 1 - System Optimization

Long Context Reasoning SFT

  • 论文的 SFT 方案需要将上下文长度扩展到 64K Token ,这反过来又需要在预训练所用并行方式之外,采用额外的并行形式
  • 为了解决这个问题,论文采用了混合并行策略:
    • 在每个节点内部(节点内),采用 DeepSpeed-Ulysses (2023) 序列并行 (Sequence Parallelism, SP) 并结合带参数分片的数据并行 (Data Parallelism with parameter sharding, DP-shard);
    • 在节点之间(节点间),使用带参数复制的数据并行 (Data Parallelism with parameter replication, DP-replicate)
  • In details,注意力层用 TP 处理,而 FFMs 在 SP 下运行
    • 使用 SP 的 FFNs 可以在 SP 网格上进行权重分片,因此论文在分片 FFN 参数时,构建了一个合并网格,将节点内的 DP-shard 网格与 SP 网格结合起来
    • 由于在 Motif-2-12.7B-Instruct (2025) 中引入的 Parallel Muon 被设计为可以在任意的梯度和参数放置配置下运行,因此对于混合并行化,不需要对优化器进行额外的修改
  • In addition,论文应用了细粒度的激活重计算 (activation checkpointing),而不是统一地重新计算每个解码器块
    • 论文没有在块粒度上设置检查点,而是分析了每个解码器块内每层的激活占用空间和重计算成本,并手动调整了一个更具选择性的重计算策略
    • 这种手动优化的策略在最小化峰值内存使用的同时,避免了不必要的重计算开销
  • 这些方法实现了高效的参数分布,并减轻了长上下文训练的内存压力
    • 使用此配置,论文成功在 H100 GPU 上训练了上下文长度为 64K 的模型

Liger Kernel’s loss function

  • RL 所需的内存比 SFT 大得多,主要是因为额外的组件(如策略模型)必须保留在内存中
    • 论文使用的策略实现(基于 vLLM)支持休眠模式等功能,但这些机制并不能完全消除其内存占用
  • 为了解决 RL 训练期间引入的额外内存压力,论文采用了 Liger 核 (2025) 的损失函数
  • 对 RL 内存使用模式的分析表明,峰值消耗发生在损失函数前向传播之后以及反向传播开始之时
    • 此时,前向计算过程中生成的所有检查点激活仍驻留在内存中(只有在反向传播进行时才会被释放)
  • Notably,形状为(上下文长度,词汇表大小)的对数 (logit) 激活比形状为(上下文长度,隐藏层大小)的典型激活要大得多,这意味着 LM 头和损失计算贡献了不可忽视的内存占用部分
  • Liger Kernel’s loss 沿上下文长度维度分割激活,在每个分片上计算 LM 头线性层,并计算每个分片的损失和梯度
    • 使用 Liger Kernel’s loss 可以显著减轻这些大型对数张量所带来的内存压力

Part 2 - Reasoning SFT

  • 论文引入了一个专注于推理的 SFT 阶段,旨在加强多步推理、增强长上下文一致性,并使模型与复杂指令遵循能力对齐
  • 早期实验表明,推理能力对数据集的构成、推理深度以及不匹配的推理模式高度敏感
  • 这些观察促使论文构建了一个结构化的 SFT 过程,该过程建立在两点之上:
    • (1)基于课程的长上下文适应
    • (2)分布对齐的合成推理数据生成

Lesson from failures

Lesson 1: Dynamic Dataset Distribution across Phases.
  • 论文的实证研究结果表明,在整个 SFT 过程中采用静态且均匀的数据分布是次优的
    • 这种策略常常导致模型过早收敛,阻碍其扩展推理能力,并可能引发灾难性遗忘
  • Instead,数据集分布进行动态转变至关重要 ,论文将此课程规划为两个战略阶段:
    • Stage 1 (Reasoning Foundation):
      • Stage 1 侧重于在代码、数学、STEM 和工具使用等领域建立全面的能力
      • 论文通过整合多种开源数据集来构建训练语料,包括 Memotron-Post-Training-Dataset (2025; 2025), OpenReasoningDataset (2025; 2025; 2025) 和 Mixture-of-Thoughts (2025; 2025; 2025)
      • 为确保数据质量,论文应用了后处理流程,根据难度、序列长度和验证情况过滤样本
        • For instance,在处理 rstar-coder (2025) 数据集时,基于实证观察,论文遵循“质量优于数量(quality-over-quantity)”的原则
      • 论文通过选择通过次数严格处于中间范围(\(0 < \textit{npass} < 16\))的案例,来筛选出具有区分性难度的问题
        • 从而修剪掉过于简单或经验上无法解决的样本
      • 从这个子集中,论文仅保留了那些经过明确验证且成功执行的轨迹 (verified=True and is_passed=True),优先考虑高保真度的推理而非数据量
        • 此阶段充当稳定器,奠定模型的通用推理能力,同时开始接触中等长度的上下文(16K-32K Token)
    • Stage 2 (深度推理专业化,Deep Reasoning Specialization)
      • Stage 2 通过注入高粒度的合成数据来针对复杂的推理差距,这些数据包括 CoT 密集型和失败驱动的纠正集(failure-driven correction sets)
      • Notably,论文为这些样本重新生成了推理轨迹,以强制执行与目标模型推理分布的结构对齐
      • Furthermore,此阶段通过将上下文窗口扩展到 64K Token 来完成上下文课程,使模型能够在长序列上保持连贯的推理
Lesson 2: The Distribution Mismatch Problem.
  • 论文早期实验的一个 key insight 是:
    • 合成数据的质量不仅仅关乎正确性,推理分布的对齐至关重要
  • 为了量化这一点,论文评估了推理对齐对 LiveCodeBench v5 (2024) 的影响,如图 2 所示
    • 论文将基线配置与使用来自 seed-oss-36b (2025) 和 gpt-oss-120b (2025) 的合成样本生成的配置进行比较
    • seed-oss 带来了显著的性能提升,但 gpt-oss 却导致了明显的性能下降
    • 这种对比意味着性能取决于推理轨迹的兼容性,而不仅仅是数据量
  • 论文推断 gpt-oss 导致的性能下降源于复杂性不匹配
    • 教师模型的推理轨迹可能表现出与学生模型内在推理风格不同的粒度和结构复杂性
    • 这种差异造成了“分布不匹配”,所强加的推理模式与模型的学习过程相冲突,而不是加强它
    • 这表明,合成监督在源自与目标模型能力相兼容的源时最为有效

Recipe

  • 为了应对这些挑战,论文建立了一个稳健的 SFT 方案,其核心在于通过课程学习确保稳定性,以及通过分布对齐确保质量,如图 3 所示

Strategy 1:合成数据生成 (注入推理信号) (Synthetic Data Generation (Injecting Reasoning Signals))

  • 论文生成多样化的合成数据集,专门设计用于向代码生成、工具调用、数学和指令遵循等目标领域注入强推理信号
  • 与标准数据集不同,这些数据集强调具有明确思维轨迹的结构化、多步推理,使模型能够内化复杂问题解决所需的逻辑进程
  • 结构化生成与验证流程 (Structured Generation and Verification Pipeline) 为确保数据一致性并避免分布不匹配问题,论文构建了一个多阶段流程:Query Generation → Response Generation → Verification
  • 验证阶段对于维持高数据保真度至关重要,采用了一套自动化检查:
    • 一致性与事实性 (Consistency & Factuality): 验证与原始查询的语义对齐,并验证事实准确性
    • 代码执行 (Code Execution): 对编程任务运行基于执行的测试,以确保功能正确性
    • 数学正确性 (Mathematical Correctness): 验证最终答案的准确性
    • 结构有效性 (Structural Validity): 确保推理轨迹保持逻辑且连贯的结构,并与论文的目标分布对齐

Strategy 2:课程学习 (渐进式上下文扩展) (Curriculum Learning (Progressive Context Extension))

  • 论文采用渐进的长度扩展课程,而不是让模型突然接触极长的序列
    • 上下文窗口分阶段扩展:16K → 32K → 64K Token
  • 这种逐步适应使模型能更有效地学习长距离依赖关系,同时缓解通常与突然扩展上下文相关的不稳定性
    • Furthermore,它还优化了注意力机制的行为,增强了模型在扩展上下文中保持连贯推理的能力

Part 3 - Reasoning RL

Background

  • GRPO(2024) 是一种为推理任务定制的 critic-free 的 PPO 变体
    • 与依赖独立价值函数的标准 Actor-Critic 方法不同,GRPO 直接从采样输出的分组统计中估计基线
    • Specifically,对于每个输入提示 \(q\),模型生成一组输出 \(\{o_{i}\}_{i=1}^{G}\),并在此组内对奖励进行标准化以计算相对优势 (advantage)。GRPO 目标函数正式定义为:
      $$\mathcal{L}_{\text{GRPO} }(\theta)=\mathbb{E}_{q\sim P(Q),\{o_{i}\} \sim\pi_{\text{fold} } } \left[\frac{1}{G}\sum_{i=1}^{G}\min\left(\rho_{i}(\theta)A_{i},\operatorname{clip}(\rho_{i}(\theta),1-\epsilon,1+\epsilon)A_{i}\right)\right], \tag{1}$$
    • 其中 \(\rho_{i}(\theta)=\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\text{old} }(o_{i}|q)}\) 表示重要性比率 (importance ratio),\(A_{i}\) 表示使用该组的均值和标准差进行归一化的优势
    • 这种表述有效地鼓励那些优于组平均水平的响应,而无需承担训练价值网络的计算开销
    • Note that ,论文采用了 GSPO (2025),它利用了序列级的重要性比率 \(\rho(\theta)\) formulation

Lesson from failures

  • 在启动全规模 RL 训练之前,论文首先在基础模型和推理 SFT 模型上进行了一系列小规模初步 RL 实验,以指导论文训练方案的设计
Inefficacy of hyperparameter tuning on proxy models.
  • 为减少计算开销,论文最初尝试在应用完整推理 SFT 模型之前,在一个中间预训练检查点(代理模型)上优化 RL 训练方案
  • However,论文观察到,尽管架构相同,但在代理模型上调优的超参数并不能可靠地泛化到更强的 SFT 模型上
    • For example,虽然某个特定的训练方案在应用于基础模型时,能在 AIME 24 上带来约 18% 的性能提升,但将完全相同的配置应用于推理 SFT 模型时,却导致性能停滞甚至下降
  • 这表明,在监督微调之后,最优的策略更新动态发生了显著变化,需要对目标模型进行直接调优
  • 理解:说明即使是同一个模型,不同 checkpoint 对应的超参数也应该是也不一样的
    • 应该是不同 checkpoint 采样分布差异大,但 RL 对 Base 模型的 Rollout 数据要求高导致的
Impact of reward shaping on unparsable trajectories.
  • 奖励公式对于指导策略更新至关重要 ,尤其是在处理格式错误方面
  • 论文观察到,当模型输出无法根据真实答案进行解析时,必须严格屏蔽这些实例,以防止它们对梯度产生影响
    • 在论文的实验中,保留这些实例并应用辅助奖励项(例如长度惩罚)会导致非零的优势
  • 这给训练信号引入了显著的噪声,因为策略可能会无意中被激励去优化辅助约束,而非正确的推理逻辑
  • 问题:无法解析的轨迹可能是不遵循格式,应该可以直接给这部分答案惩罚 “错误格式” 吧?
Necessity of difficulty alignment to prevent gradient vanishing.
  • 论文观察到,RLFT 对训练数据相对于模型能力的难度分布高度敏感
  • 如公式 1 所定义,优势 \(A_{j}\) 源自一组 rollout 内的相对性能
  • 在问题过于简单或极其困难的情况下,组内奖励方差会崩溃(即所有 rollout 获得相同的奖励)
    • 这导致优势为零 (\(A_{j}\to 0\)),进而使梯度消失,使得采样和评估成本变得无意义
  • 这意味着构建一个对齐良好的数据集,即 模型在某些 rollout 上成功,而在其他 rollout 上失败 ,对于有效学习至关重要
Addressing computational bottlenecks with mixed-policy training.
  • RLFT 的主要瓶颈在于为每个提示生成 \(n\) 个 rollout 的推理成本,相比之下参数更新步骤的消耗可以忽略不计
    • Rollout 推理的这种计算负担意味着,即使拥有大规模精心策划的数据集,对全部语料库进行训练通常也是不可行的
  • Furthermore,论文观察到 On-policy 训练表现出高方差,无法保证单调改进或稳定收敛

    Furthermore, we observe that on-policy training exhibits high variance, failing to guarantee monotonic improvement or stable convergence.

    • 问题:怎么会 On-policy 训练还会高方差?是说的 Off-policy 吧?
  • 这些限制强调了 利用混合策略策略来增强样本效率和训练稳定性的必要性

Recipe

  • 整体 Recipe 如图 4 所示:
LLM-as-a-data-filtering.
  • 为了缓解由难度范围导致的零优势问题,DAPO (2025) 采用了动态采样,但这在训练过程中会导致低效的生成成本。
  • 论文构建了一个简单而有效的数据集过滤流程,以构建其难度范围与目标模型能力良好对齐的数据集,即“LLM 即数据过滤器”
  • 假设论文有一个初始问题池 \(\mathcal{D}\) 以及用于过滤的 LLM \(\mathcal{M}\)
    • 对于每个问题 \(x\in\mathcal{D}\),论文生成 \(n\) 个 rollout 并按如下方式计算经验通过率:
      $$y_{1},\ldots,y_{n}\sim\mathcal{M}(\cdot \mid x),\quad \hat{p}_{k}(x)=\frac{1}{n}\sum_{j=1}^{n}\mathbb{I}[x\textbf{ is solved in the top-}k\textbf{ rollouts}],.$$
    • 论文严格保留那些经验通过率落在目标难度范围 \([\alpha,\beta]\) 内的问题:
      $$\alpha \leq \hat{p}_{k}(x) \leq \beta.$$
    • 这确保了难度范围与模型的能力良好对齐,从而缓解训练早期阶段的不稳定性
  • 理解:核心其实就是用 pass rate 作为过滤依据
Dataset Construction.
  • 论文应用“LLM-as-a-data-filtering”流程来策划一个高质量的多任务数据集,包含数学推理、代码生成和指令遵循
  • 所有候选问题均使用 RL 阶段开始前的检查点进行评估,使用 \(n=5\) 个 rollout
  • 数学推理 (Mathematical Reasoning):
    • 初始池来源于 GURU-92K 数据集 (2025)
    • 首先根据数据集中提供的预计算 Qwen-30B 通过率进行初步筛选,保留得分在 \(0 < p \leq 10/16\) 的问题
    • 随后应用论文的过滤流程,论文选择难度在 \((0, 0.8]\) 范围内的实例
    • 为了解决组合数学原本占数据 50% 的严重领域不平衡问题,将问题分类为数论、组合数学、代数和几何,并进行分层抽样以使这四个子领域的分布均衡
  • 代码生成 (Code Generation):
    • 与数学推理流程类似,论文从 GURU-92K 中获取代码样本,并根据提供的通过率 (\(0 < p \leq 10/16\)) 进行初步筛选
    • 然后论文用相同的设置 (\(n=5\)) 执行过滤流程,并对保留的实例进行随机子采样,以使数据集大小与数学推理语料库对齐,确保任务混合的平衡性
  • 指令遵循 (Instruction Following):
    • 论文使用了一个为指令遵循构建的、包含 10,000 个样本的合成数据集
    • 为了优先挑战模型当前能力的指令,论文应用了更严格的上限阈值 \(\beta = 0.4\),仅保留经验通过率在范围 \((0, 0.4]\) 内的样本
Expanding Clipping Range.
  • 为了加速收敛,论文在训练设置中使用了更大的裁剪范围:\(\in [0.28, 0.40]\)
  • 与强制执行严格信任区域的标椎设置不同,这个扩展范围允许策略在存在高优势信号时更显著地偏离参考模型
  • 这种策略在训练效率和稳定性之间取得了平衡,促进了更快的策略改进,而不会引发在无约束设置中常见的崩溃
  • 理解:较小的 Dense 模型,偏差较小,相对来说稳定,可以这样训练,其他的情况不一定
Encouraging Long-Context Reasoning.
  • 论文的实证观察表明,长上下文推理能力是有效 RL 微调的基础
  • 论文注意到,当允许模型生成扩展的推理链时,性能有显著改善
  • Conversely,应用长度惩罚(通用文本生成的标准做法)被证明是有害的,因为它无意中阻碍了模型探索必要的中间推理步骤
  • Consequently,论文完全从奖励公式中移除了长度惩罚
    • 为了完全容纳这些扩展的轨迹,论文配置了服务基础设施以最大化 vLLM 的生成长度,详见第 2 节
  • 理解:应用长度惩罚会对 RL 训练带来伤害
    • 问题:其实本质上来说,普通 PPO 就自带了对较短正确队列的偏好吧?长度偏差其实可以不加?
    • 问题:可能产生较长的错误回答
Efficiency via Mixed-Policy Trajectory Reuse.
  • RLFT 的一个主要瓶颈是与 rollout 生成相关的惊人计算成本
  • 为了缓解这个问题,论文采用了跨多个梯度优化步骤重复使用同一批轨迹的策略
  • Specifically,在外层迭代 \(k\) 时,论文从当前策略中采样一批轨迹:
    $$\mathcal{B}_{k}\sim P(q),\pi_{\theta_{k} }(o \mid q),$$
  • Subsequently,论文在这个固定的批次上执行 \(S\) 步梯度更新:
    $$\theta_{k,s+1}=\theta_{k,s}-\eta \nabla_{\theta}\mathcal{L}_{\text{GSPO} }(\theta_{k,s};\mathcal{B}_{k}),\quad s=0,\ldots,S-1,$$
    • 其中 \(\theta_{k,0}=\theta_{k}\),下一次迭代的更新参数定义为 \(\theta_{k+1}=\theta_{k,S}\)
  • Theoretically,这个过程开始时是 On-policy 采样,因为 \(\mathcal{B}_{k}\) 是从 \(\pi_{\theta_{k} }\) 中抽取的
    • However,随着 \(\theta_{k,s}\) 偏离行为策略 \(\theta_{k}\),而轨迹及其计算出的优势保持固定,它逐渐转变为越来越 Off-policy 的机制
    • 因此,内部步数 \(S\) 充当了控制这种混合 On/Off-policy 动态的控制器
    • 虽然标准的迭代 GRPO (2024) 在论文的初步实验中表现出不稳定的性能,但这种轨迹重用策略产生了明显更稳定的优化,同时最大化了训练效率
Mitigating task regression via multi-task RL.
  • 论文观察到,专注于单一领域的 RL 训练常常导致其他任务上的显著性能退化
  • For instance,仅针对指令遵循优化策略往往会降低数学推理或代码生成的能力,即使基础模型在所有领域都具有强大的能力
  • 为了解决这个问题,论文采用了一个多任务 RLFT 框架 ,该框架在 RL 循环内联合训练所有目标领域
    • 数学推理、代码生成和 IFBench
    • Specifically,每个 Mini-batch 由这三种任务的混合构成,利用任务特定的奖励函数同时更新一个共享策略
    • 这种策略作为一种有效的正则化器,缓解了灾难性遗忘,并确保了所有下游基准测试的稳健性能提升
  • 理解:每个 Mini-batch 都训练三种任务,任务之间的差异可能会导致 Rollout 的长度不一致吧,类似的问题也需要注意

NLP——LLM对齐微调-RL-Collapse-Training-Inference-Mismatch(Sequence-level-MIS)

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始博客:(Sequence-level MIS)When speed kills stability: Demystifying RL collapse from the training-inference mismatch, 20250927, ByteDance
      • 博客最早发表于 20250927,目前还在持续更新,最近一次更新为 20251013
    • 其他相关 arXiv 论文:Trust Region Masking for Long-Horizon LLM Reinforcement Learning, 20251228-20260227, Fudan & CUHK
    • 引用了本文的博客

Blog Summary

  • 作者从 RL Collapse 现象入口,定位到是训推不一致问题导致的,进而详细讨论了如何解决训推不一致的问题
  • 本文整体有较强的理论意义,核心是证明了:LLM RL 的重要性采样最优是 Sequence-level 的,而 Token-level 重要性采样只有在特定情况下能够替代 Sequence-level 重要性采样,更精确的推导见 NLP——LLM对齐微调-MiniRL
  • 本文证明了:只有当 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 保持在 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 的信任域内时,即当 \(d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 且 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 时,\(J(\theta)\) 才能被 \(g_\text{tok}(\theta)\) 优化
  • 特别说明:本文中所说的 Token-level 和 Sequence-level 都是针对重要性采样权重而言的,不是针对 RL 目标本身,本文会直接使用到类似 RL 目标的表达,容易让读者误解是 RL 建模目标本身的建模方式(Token-level or Sequence-level)
  • 本文工作已经被诸多框架引入,比如 VeRL 和 Slime 等,同时还被 Qwen 团队的 MiniRL 工作(详情见 NLP——LLM对齐微调-MiniRL)引用
    • 各种框架的使用详情见 原始博客 When speed kills stability: Demystifying RL collapse from the training-inference mismatch, 20250927, ByteDance

整体介绍

TLDR

  • 对更快推理速度的不懈追求造成了一种危险的“训练-推理不一致性”,它可能悄然破坏 LLM 的强化学习
  • 作者的研究揭示了一个在现代推理和智能体 RL 中尤为严重的恶性循环:
    • OOD 上下文导致低概率采样: 智能体工作流将模型暴露于外部输入和动态环境中,迫使其频繁生成 低概率 token
      • 这些 token 对于新颖的推理、工具调用和自适应 Response 至关重要
      • 理解:这里是在说模型与外界环境交互过程中可能会遇到一些 OOD 的场景,从而生成一些原本 低概率的 Token?
        • 这里的低概率应该不是指低概率但是因为高温被采样
      • 详情见:3.4 OOD Tool Responses Amplifies the Mismatch 章节
    • 低概率 Token 放大训练崩溃: 这些 token 成为最薄弱的环节
      • 训练-推理不一致性对它们最为严重,导致灾难性的大梯度,从而引发性能悄然下降和突然的训练失败
      • 详情见本文 3.3 确凿证据:低概率 Token 陷阱 章节
    • 硬件差异使问题复杂化:
      • 不同的 GPU 架构会以不可预测的方式加剧不一致性,这意味着相同的智能体训练设置在一台机器上可能成功,而在另一台上可能灾难性地失败
      • 详情见:3.5 环境因素:硬件的关键作用 章节
    • Sequence-level 修正是 Principled 解决方案:
      • Sequence-level 修正 是理论上合理的修复方法
      • Sequence-level 修正 通过考虑完整的状态轨迹来修正有偏的梯度,从而 在不同硬件和复杂任务上 恢复训练稳定性
      • 详情见:4.2.1 一个 Principled 解决方案:分布修正

Deeper Analysis:

  • 为了对这个问题进行严格的理论分解,作者发表了三篇系列博客:
    • Part 1: Why Off-Policy Breaks RL — An SGA Analysis Framework
      • 第 1 部分包含主要内容:为何 Off-Policy 会破坏 RL——SGA 分析框架
      • 已知 (TRPO 理论):
        • 替代目标 \(L_\mu(\pi)\) 是 RL 目标 \(J(\pi)\) 的一阶泰勒近似
        • TRPO 下界 \(J(\pi) \ge L_\mu(\pi) - C \cdot T^2 \cdot D_{TV}^{\max}\) 表明近似误差随 \(T^2\) 增长,需要信任域按 \(\delta \propto 1/T^2\) 缩小
      • 作者的主要 Insight:
        • Token-level IS (PPO/GRPO) 计算的是 \(\nabla L_\mu\),而不是 \(\nabla J\)
        • Token-level IS 修正了 token 分布,但没有修正状态分布的不匹配 (\(d_\mu \ne d_\pi\)),导致 \(O(T^2 D_{TV}^{\max})\) 的偏差
      • 作者通过 SGA 引理形式化了两种失败模式 :
        • 偏差 (Bias) (由 \(D_{TV}\) 衡量)
        • 方差 (Variance) (由 \(\chi^2\) 散度衡量)
        • 作者认为这两个指标不可互换
    • Part 2: Applying the SGA Framework — Token v.s. Sequence-level Correction
      • 第 2 部分主要内容:讨论 Token-level 与 Sequence-level 修正的对比(讨论 Part 1 中 SGA 框架的应用)
      • 作者的分析:
        • Token-level IS (PPO/GRPO) 由于替代目标的一阶近似误差而产生 \(O(T^2 D_{TV}^{\max})\) 的偏差
        • Sequence-level IS 是无偏的,但具有指数级方差 \(O((1+\bar{\chi}^2_{\max})^T)\)
      • 作者的解决方案:
        • Seq-TIS 通过截断 \(\rho(y) \to \min(\rho(y), C)\) 实现了可控的偏差-方差权衡
        • 关键结论: 当 不可忽略时 ,这种偏差是一个需要 Sequence-level 解决方案的 Sequence-level 问题
    • Part 3: Trust Region Optimization via Sequence Masking
      • 第 3 部分内容:讨论通过序列掩码实现信任域优化
      • 已知 (TRPO 理论):
        • 信任域约束确保替代目标仍然是一个有效的近似
      • 作者的解决方案:
        • (1) Seq-MIS :通过拒绝 \(\mathbb{I}(\rho \le C) \cdot \rho \cdot f\) 来强制执行硬信任域 (Hard Trust Region),完全排除 OOD 样本
        • (2) Geo-RS :使用几何均值 \(\rho_{\text{geo} }=\rho^{1/T}\) 来实现一个 长度不变的 Per-Token 信任域 (length-invariant Per-Token Trust Region)
          • 这是 TRPO 硬信任域在 LLM 中的一种实用实现,避免了系统性地拒绝长序列

第 1 节:The Mystery of the Sudden Collapse

  • 在快速发展的用于大型语言模型的强化学习 (LLM-RL) 领域,一种令人沮丧的突然训练崩溃模式正在浮现
  • 无论是在复杂的 Reasoning RL 还是多轮 Agentic RL 中,许多人都观察到训练过程在一段稳定学习后,会灾难性地失败
  • 本文作者最近在 Qwen3 模型上进行 多轮工具集成推理 (multi-turn tool-integrated-reasoning,TIR) 的智能体 RL 实验时,亲身遇到了这个问题
    • 这发生在 L20 GPU 集群上 GRPO 算法的 on-policy 和 off-policy 变体上
    • 图 1 显示了作者在 Qwen3-14B-Base 上四次崩溃实验的奖励和梯度范数动态
    • 随着训练的进行,梯度范数突然爆炸,导致模型崩溃
  • 图 1
    • 在 Qwen3-14B-Base 上进行的四次失败的 GRPO TIR 实验的奖励 (左) 和梯度范数 (右)
    • 所有实验在每个训练步采样 1024 条轨迹 (64 个 Prompt × 16 个 Response ),并使用 1e-6 的学习率
    • 对于 on-policy 和 off-policy 实验,ppo_mini_batch_size 分别设置为 1024 和 256
  • 最初,作者的初步解决思路集中在常见的疑点上:
    • 作者检查了代码,确认作者的智能体循环遵循 token-in-token-out 过程
    • 作者调整了 Adam 优化器中的超参数 beta1 和 beta2
    • 作者还对优势函数应用了批归一化以平衡更新
    • …
  • 但这些标准的修复方法都不起作用
    • 因为即使是更简单的 on-policy 实验也失败了,作者怀疑问题不在于 RL 算法本身,而在于训练栈中更基础的部分
    • 这引导作者开始考虑现代 LLM-RL 中一个关键且日益普遍的挑战:高度优化的推理引擎与可靠的训练框架之间不可避免的 Gap

A Fundamental Conflict: The Growing Gap Between Inference and Training

  • 根本性冲突是推理与训练之间日益扩大的鸿沟
  • Rollout 速度是 LLM-RL 的核心瓶颈
    • 为了实现所需的海量吞吐量,现代推理引擎(例如,vLLM、SGLang、TensorRT-LLM)采用了激进的优化策略
      • 如推测解码、低精度计算 (INT8/FP8) 以及专门的、batch-variant CUDA 内核
      • 在保持采样保真度的同时,现代推理引擎的主要目标是最大化吞吐量 ,通常以每秒 token 数来衡量
    • 训练框架(例如,FSDP、DeepSpeed、Megatron-LM)必须寻求不同的平衡点,优先考虑梯度计算的数值稳定性和精度
      • 通常对主要权重和优化器状态使用 FP32 等更高精度的格式
    • 这种优化优先级和约束上的分歧造成了不可避免的训练-推理不一致性 ,而对更快 rollout 的不懈追求正使这一差距变得更大
    • 虽然有人可能提议强制实施相同的计算(例如,使用“batch invariant kernels”),但这些解决方案会带来严重的性能损失,违背了使用高速推理引擎的初衷
    • 这种速度与一致性之间的权衡是问题的核心,使其成为一个持续存在的挑战,而非简单的工程修复
  • 在作者的技术栈中,这种不匹配体现在作者的 vLLM 推理采样器和 FSDP 训练器之间
    • 实际的参数更新是:
      $$
      \mathbb{E}_{x\sim \mathcal{D} }\mathbb{E}_{y\sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }\left( \cdot |x \right)}\left[ R\left( x,y \right) \nabla_{\theta}\log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\left( y|x \right) \right]
      $$
    • 而理论上的参数更新应该是:
      $$
      \mathbb{E}_{x\sim \mathcal{D} }\mathbb{E}_{y\sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\left( \cdot |x \right)}\left[ R\left( x,y \right) \nabla_{\theta}\log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\left( y|x \right) \right].
      $$
      • \(x\) 是从分布 \(\mathcal{D}\) 中采样的 Prompt
      • \(y\) 是 Response
      • \(R\) 是奖励函数
      • \(\theta\) 是 LLM 的参数
      • \(\color{red}{\pi^\text{vllm}_\theta}\) 和 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 分别是 vLLM 引擎和 FSDP 引擎中实现的策略
        • 注:接下来,为了讨论这一点,作者找了一种方法来衡量它

Anatomy(剖析)of the Training Collapse

3.0 Experiments Setup

  • 除非另有说明,第 3 节 和 第 4 节 中展示的实验是在 TIR Setting 下的 VeRL 框架上进行的,使用 vLLM v1 采样器 (AsyncvLLMServer)、Qwen3-14B-Base 模型和 GRPO 算法,全部在 L20 GPU 集群上运行

Measuring the Mismatch: The vllm-kl Metric

  • 一个衡量训练-推理不一致性的非常直接的指标是 vllm-kl :
    $$
    \small{\mathbb{E}_{s\sim d_{\color{red}{\pi^\text{vllm}_\theta} } }\left[\text{KL}\left(\color{red}{\pi^\text{vllm}_\theta}\left(\cdot|s\right),\color{blue}{\pi^\text{fsdp}_\theta}\left(\cdot|s\right)\right)\right] = \mathbb{E}_{s\sim d_{\color{red}{\pi^\text{vllm}_\theta} },a\sim {\color{red}{\pi^\text{vllm}_\theta}\left(\cdot|s\right)} } \left[\log\left(\frac{\color{red}{\pi^\text{vllm}_\theta}(a|s)}{\color{blue}{\pi^\text{fsdp}_\theta}(a|s)}\right)\right],}
    $$
    • \(d_\pi\) 是策略 \(\pi\) 的状态占用 (state-occupancy)
    • \(s\) 是上下文前缀(状态)
    • \(a\) 是 token(动作)
    • 注:作者的实验涉及工具调用,这意味着 Response \(y\) 可能包含工具 Response
      • 问题:这个公式中似乎没有看到任何 \(y\) 的表达式啊
      • 理解:这里应该是强调除了用户输入的 Query(Prompt)后,用户得到的 Reponse 部分会包含工具调用的返回结果(比如调用 Python 执行数学计算)
        • 注:TIR 中,模型 Reasoning 过程中会和工具交互,得到工具调用的结果,然后基于工具调用结果继续 Reasoning(一次 Response 可能包含多次工具调用),并最终整合后返回给用户
    • 注:本文中定义的 vllm-kl 指标只考虑模型自身生成的 token
      • 理解:这样才是合适的,因为工具调用的结果不是模型输出的,对模型来说只是环境信息(类似 Query),不需要模型关注,模型也无法修改
  • 以下代码提供了在 VeRL 中使用 K3 估计器 计算 vllm-kl 指标的实现,假设推理引擎的 token 概率已经是可访问的:
    1
    2
    3
    4
    5
    6
    rollout_log_probs = batch.batch["rollout_log_probs"] # pi_vllm
    actor_old_log_probs = batch.batch["old_log_probs"] # pi_fsdp
    response_mask = batch.batch["response_mask"]
    log_ratio = actor_old_log_probs - rollout_log_probs
    vllm_k3_kl_matrix = torch.exp(log_ratio) - log_ratio - 1
    vllm_k3_kl = masked_mean(vllm_k3_kl_matrix,response_mask)

The Warning Signs: Correlated Instability

  • 作者的第一条线索是,高 vllm-kl 值并非孤立事件
    • 它们与其他不稳定迹象密切相关
Fluctuations in FSDP Entropy and Rewards
  • 在许多实验中都可以观察到 vllm-kl 的异常尖峰(Spike)通常会同时触发 FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 的熵和奖励的异常波动
  • 图 2 所示的实验结果是一个直观的例子
    • 如图 2 所示,熵尖峰出现的位置与 vllm-kl 尖峰的位置几乎完美对应
    • 虽然在奖励中没有观察到同样明显的相关性,但可以看到在步骤 250 左右出现了一个巨大的 vllm-kl 尖峰,它触发了低质量批次的生成,并在此处也导致了奖励的明显下降
    • 这意味着当不一致性较大时,vLLM 策略 \(\color{red}{\pi^\text{vllm}_\theta}\) 和 FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 都进入了一个不稳定区域
Rising FSDP PPL and Gradient Norm Leading to Policy Collapse,上升的 FSDP PPL 和梯度范数导致策略崩溃
  • 作者观察到 vllm-kl 的尖峰同时触发了 fsdp-ppl 指标和梯度范数的爆炸
    • 在作者的实验中, Response \(y\) 的 fsdp-ppl 指标计算如下:
      $$
      \text{fsdp-ppl}: \exp\left(\frac{-1}{\left| \mathcal{T}_{\mathcal{M} }\left( y \right) \right|}\sum_{t\in \mathcal{T}_{\mathcal{M} }\left( y \right)}{\log \color{blue}{\pi_{\theta}^{\text{fsdp} } }\left( y_t|y_{ < t} \right)}\right)
      $$
      • \(\mathcal{T}_{\mathcal{M} }\left( y \right)\) 是 Response \(y\) 中由模型自身生成的 token 的索引集合
      • 最终的 fsdp-ppl 指标是批次中所有 Response 的 fsdp-ppl 指标的平均值
  • 图 3 展示了 GRPO 的 on-policy 版本和 off-policy 版本的实验结果
    • 在两个实验中,vllm-kl 的尖峰几乎精确地触发了 fsdp-ppl 和梯度范数的相应爆炸
    • 还可以观察到,在训练奖励崩溃之前,vllm-kl 指标有显著的上升
  • 在本文的实验中,模型自身生成的序列至少包含数百个 token
    • 原本的期望:在训练的后期阶段,ppl 指标保持在 1 左右更为合理
      • 理解:
        • 因为后期熵基本收敛了,大部分 Generated Token 的概率都是 1.0 左右,此时对应的对数概率接近 0,整体 Token 粒度的对数概率均值也接近 0,从而得到的 PPL 则接近 1
        • 实际上, Token 概率是微小于 1 的,对数概率微小于 0,取 -1 得到的值微大于 0,得到的指数(PPL)微大于 1
      • 问题:Off-policy(对应 Bottom)下的 PPL 应该接近于 1 才对,目前看起来是接近于 0 的,不太符合预期
        • 回答:这里的图是对的,因为这个图的单位是 1e32,所以看起来似乎在 0 左右
    • 观察到的现象:在训练-推理不一致性显著的批次中(即 vllm-kl 非常高时),作者观察到 fsdp-ppl 指标发生爆炸 这表明 FSDP 引擎为推理策略采样的 token 分配了灾难性的低概率,导致梯度爆炸
    • 这一观察帮助进一步定位了不一致性更可能发生的地方
      • 当这些 FSDP 概率极低的 token 被采样时,它们在 vLLM 引擎中的概率并非同样低
        • 补充说明:在本人的实际训练过程中,也观察到许多类似的现象,这种在当前策略低概率的 Token 会引发 KL 散度 k3 估计的爆炸(因为 Old 策略对应的 Token 概率不一定同样低)
      • 这个问题也是导致 KL 散度差异较大的其中一个原因

The Smoking Gun: The Low-Probability Token Pitfall,低概率 Token 陷阱的确凿证据

  • 核心 Insight:不一致性并非均匀分布
  • 通过分析具有不同 vllm-kl 水平的批次,作者发现了一个鲜明的模式:
    • 对于 vLLM 推理引擎认为概率较低 (low probability) 的 token,这种差异最为严重
    • 当一个 token 的推理概率趋近于零时,其训练概率可能会小几个数量级,从而导致无限的 PPL 和梯度
  • 为了确保结论尽可能具有普适性,作者选取了 在训练崩溃前、不同训练步数 从各种实验中采样的批次
    • 所有这些批次都表现出相对较高的 vllm-kl 值,使作者能够在显著条件下研究不一致性模式
    • Rollout 批次在以下三个 vllm-kl 范围内收集,每组五个批次(约 5M token):
      • Group 1 (low): 每个 rollout batch 的 vllm-kl 不大于 1e-3,并且批次是使用 H20 GPU 采样的
      • Group 2 (medium): 每个 rollout batch 的 vllm-kl 属于 [1e-3, 2e-2],并且批次是使用 L20 GPU 采样的
      • Group 3 (high): 每个 rollout batch 的 vllm-kl 属于 [2e-2, 1e-1],并且批次是使用 L20 GPU 采样的
  • 下面的图 4 (a)(b)(c) 展示了在不同 vllm-kl 量级下,vLLM 引擎的输出概率
    • 即 \(\color{red}{\pi^\text{vllm}_\theta}(a|s)\) 与不一致性之间的关系,这里的不一致性由 \(\log\left(\color{blue}{\pi^\text{fsdp}_\theta}(a|s)\right)-\log\left(\color{red}{\pi^\text{vllm}_\theta}(a|s)\right)\) 衡量:
  • 从上图中,我们可以清晰地观察到:
    • 当 vLLM 概率 \(\color{red}{\pi^\text{vllm}_\theta}\) 趋近于零时,不一致程度往往更为显著
      • 并且 \(\log\left(\color{blue}{\pi^\text{fsdp}_\theta}\right)-\log\left(\color{red}{\pi^\text{vllm}_\theta}\right)\) 的极端值更可能在这些条件下出现
    • 在 L20 GPU 上收集的批次,即组 2 和组 3 中的批次,表现出一种训练-推理不一致性
      • 主要表现为 FSDP 概率 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 显著小于 vLLM 概率 \(\color{red}{\pi^\text{vllm}_\theta}\)

OOD Tool Responses Amplifies the Mismatch,OOD 工具 Response 放大了不一致性

The Mismatch Is More Severe in Non-First-Round Outputs,不一致性在非首轮输出中更为严重
  • 第 3 节的发现解释了为什么这个问题在作者的多轮 TIR 实验中如此尖锐,特别是在非首轮模型输出 (non-first-round model outputs) 中
  • 该过程如下:
    • 1)Agent 接收一个工具 Response ,这通常是结构化文本(例如,包含在 <python_output> 和 </python_output> 标签中的上下文),相对于其预训练和 SFT 数据而言是 OOD 的
      • 注意:这是工具的 Response
    • 2)面对这种不熟悉的 OOD 上下文,智能体的策略 变得更加不确定,使其更有可能在其后续轮次中采样低概率 token(这在 SimpleTIR 中也有观察到)
    • 3)正如作者刚刚确定的,这些低概率 token 是发生严重不一致性的主要场所,为 fsdp-ppl 和梯度的爆炸创造了条件
  • 作者绘制了三组批次(每组约 5k 条轨迹)中的不一致性,突出了首轮模型输出和非首轮模型输出之间的差异,作者考虑以下两种方法来可视化不一致性:
    • Log-ppl scatter plot(散点图) :
      • x 轴:由 vLLM 策略 \(\color{red}{\pi^\text{vllm}_\theta}\) 计算的 ppl 指标的对数,记为 vllm-log-ppl
      • y 轴:由 FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 计算的 ppl 指标的对数,记为 fsdp-log-ppl
    • Probability scatter plot :
      • x 轴:vLLM 策略 \(\color{red}{\pi^\text{vllm}_\theta}\) 的 token 概率
      • y 轴:FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 的 token 概率
  • 三组不一致性的可视化结果
  • 从可视化结果中,作者可以观察到:
    • 1)非首轮输出的 vllm-log-ppl 通常大于首轮输出,这意味着在面对不熟悉的 OOD 上下文时,会采样到更多的低概率 token
      • 横向比较 log-ppl 可以看出,非首轮的横轴和纵轴范围均较大(注:从图中可以看出,首轮的 log-ppl 集中在左下角,非首轮的覆盖面积则更广)
      • 理解:相当于熵变高了(即 PPL 变大了),此时 Token 的概率都不高,输出的不确定性增高
    • 2)不一致性主要发生在非首轮模型输出中(第二列为非首轮)
      • 表现为 FSDP 策略与 vLLM 策略之间的 log-ppl 和 token 概率的平均绝对差更大,皮尔逊相关系数更低
    • 3)随着 vllm-kl 值的增加,训练-推理不一致性主要在非首轮输出中恶化
    • 4)不一致性始终显示 fsdp-log-ppl 大于 vllm-log-ppl,表明 FSDP 引擎产生了更极端的低概率 token
      • 问题:为什么 fsdp-log-ppl 相对 vllm-log-ppl 会严格偏大呢?甚至一个小于的点都看不到?
More Tool Calls, More Training Instability,工具调用越多,训练不稳定性越大
  • 本节的实验表明,OOD 工具 Response 加剧了训练-推理不一致性和训练不稳定性
  • 在 H20 GPU 上使用 Qwen3-14B-Base 作为基础模型,进行了 off-policy GRPO 实验,设置 clip higher=0.28 和 4 个 mini-batches
  • 将单条轨迹中最大工具调用次数(超参数 max_tool_turn)分别设置为 20 和 100
  • 实验结果如图 5 和图 6 所示,可以观察到:
    • 随着工具调用次数的增加,训练崩溃发生的时间更早(轮次越多,爆炸越快)
    • 崩溃时,在所有情况下都观察到了梯度爆炸和 vllm-kl 的爆炸

The Environmental Factor: The Critical Role of Hardware

  • 作者还发现物理硬件是一个关键变量
    • 完全相同的代码和模型在不同的 GPU 硬件上产生了截然不同的不一致性水平
  • 为了评估不同硬件上的不一致性程度,作者在相同的代码环境和超参数下运行 on-policy 算法,仅在推理和训练时切换不同的 GPU
  • 图 7 分别展示了在 L20、H20 和 A100 上的训练动态
  • 从图中可以观察到
    • 实验中 vllm-kl 的量级基本遵循:H20 < L20 < A100
      • H20 的 vllm-kl 通常在 5e-4 到 1e-3 的量级
      • L20 大约在 1e-3 到 1e-2
      • A100 主要在 1e-2 到 1 之间
    • 由于 A100 上严重的训练-推理不一致性,正常训练变得不可行,导致奖励曲线高度不稳定
  • 在作者的 A100 GPU 上运行 的实验中,禁用 vLLM 引擎中的级联注意力 (cascade attention) 特别有助于减少不一致性
    • 作者在 第 4.2.4 节(在 vLLM 中禁用级联注意力) 中展示了这些结果
  • 最有力的证据来自于作者将一个失败的 L20 实验从其 checkpoint 开始在 H20 GPU 上恢复训练(见图 8)
    • 训练立即稳定并恢复,证明了硬件对该问题的 First-order 影响

The Mismatch is Not Static: A Vicious Cycle Driven by Optimization

  • 这种不一致性并非静态的,而是由优化驱动的恶性循环
  • 有人可能认为训练-推理不一致性是硬件和软件栈的静态属性
    • 但作者接下来的“Batch-filter”实验证明,除了与硬件和软件栈有关,不一致性还与训练动态和模型状态有关,即 不一致性与训练动态和模型状态是耦合的
  • 作者在 “Batch-filter” 实验中设置了以下策略更新方式:
    • 对于每个训练步,如果收集到的批次产生的 vllm-kl 指标大于阈值
      • 则跳过在该批次上更新模型参数 (因为此类更新带着噪音的,容易导致训练崩溃)
      • 此时直接进入下一步,继续收集数据,直到获得 vllm-kl 值低于阈值的批次,此时才更新模型
  • 这个实验背后的逻辑是,如果不一致性的程度完全独立于模型的输出分布和训练动态,那么 vllm-kl 的量级在不同的训练步应呈现相同的分布
  • 但图 9 所示的实验结果表明,一旦模型进入某种状态,它就开始持续生成高不一致性的批次 ,从而发生持续过滤,几乎停止了训练(右图橙黄色背景部分)
  • 这一点,连同在其他运行中观察到的 vllm-kl 和 fsdp-ppl 螺旋式上升(图 10),指向了一个危险的反馈循环
  • 作者推测这是由于以下两阶段的失败级联 (two-stage failure cascade) 造成的:
    • 1)阶段 1:数值敏感性增加
      • RL 优化器将模型权重推入 bfloat16 数据类型具有较低相对精度的数值范围(例如,非常小或非常大的值)
    • 2)阶段 2:内核驱动的误差放大
      • 这些初始的、微小的 bfloat16 量化误差随后被输入到 vLLM 和 FSDP 的不同内核实现中
      • 不同的计算顺序充当非线性放大器,导致微小的初始偏差滚雪球般地变成最终 logits 的巨大差异
    • 这就形成了一个恶性反馈循环 :
      • 不一致性导致有偏且嘈杂的梯度,这可能进一步将参数推入数值敏感区域 ,这反过来又会使下一次迭代的不一致性恶化,直到系统崩溃
    • 另一个个人理解:
      • 如果参数超错误的未知噪音方向更新,那么更新后的模型采样得到的结果可能是奇怪的,即一些原本低概率的 Token 会更容易被采样出来(推测熵可能会异常的增大),这样的 Token 更容易导致更大的 vllm-kl

Attempts to Alleviate Training-Inference Mismatch,介绍缓解训练-推理不一致性的一些尝试

  • 接下来将列出作者尝试过的缓解训练-推理不一致性的方法
    • 其中一些方法有帮助,而另一些则没有

Ineffective Attempts,无效尝试

Use FP32 LM Head
  • Inspired by the Minimax-M1 technical report and the blog post《Your Efficient RL Framework Secretly Brings You Off-Policy RL Training》
    • 作者修补了 vLLM,将 lm_head 转换为 fp32 精度
    • 理解:作者的基本思路是,让 vLLM 的参数精度更贴近 FSDP 的精度,从而一定程度上缓解训推不一致问题
  • 但在作者的实验中,修补后不一致性问题仍然存在,模型崩溃无法避免
    • 图 11 显示了在 L20 GPU 上使用 vLLM 引擎中 bf16 lm_head 的一个失败的 on-policy 实验,以及一个从崩溃实验的第 200 个训练步后开始在 vLLM 引擎上使用 fp32 lm_head 的实验
    • 可以观察到,两个实验最终都崩溃了,并且使用 fp32 lm_head 的实验仍然表现出 vllm-kl 的爆炸
    • 注意:以上实验不是从一开始就是用 FP32 的,而是 bf16 训练至出现问题后从 200 Step 恢复,此时使用 FP32 替换 bf16
  • 作者还尝试从第 4.1.1 节中使用 bf16 lm_head 的失败实验的第 200 个训练步开始恢复 RL 训练,禁用分块预填充 (chunked prefill),以观察这是否能解决崩溃问题
    • 实验结果(如图 12 所示)表明,这种方法并未解决崩溃问题
    • 问题:分块预填充 会导致精度问题吗?
      • 理解:似乎没有发现,但是这个应该会导致一些计算顺序的不确定,导致输出不确定的问题
Enable enforce_eager and free_cache_engine
  • VeRL 的 DAPO 官方指南 提到,启用 CUDA 图 (enforce_eager=False) 可能导致模型 Performance 下降
    • 理解:这里的 Performance 下降应该主要是指训练得到的模型下游指标(测试性能)变差
  • 为了探究它是否影响训练-推理不一致性,作者进行了一项消融研究,以考察 vLLM 引擎超参数 enforce_eager 的影响,同时考虑另一个超参数 free_cache_engine
  • 作者在 Reasoning RL 上进行了实验
    • 在 H100 GPU 上使用 Qwen3-4B-Base 作为基础模型,进行了 on-policy GRPO 实验,共运行四种实验设置:
      • 超参数 enforce_eager 和 free_cache_engine 的穷举组合,每个设置为 True 或 False
    • 性能在 AIME24 基准上进行了评估
  • 实验结果如图 13 所示
    • 从图中可以看出,调整 enforce_eager 和 free_cache_engine 的值对训练-推理不一致性和测试性能(下游指标)没有显著影响

Effective Attempts,有效尝试

4.2.1 A Principled Solution: Distribution Correction
  • 训练-推理不一致性将原本的 on-policy RL 问题变成了一个 off-policy 问题
    • 其中用于生成 rollout 的策略(行为策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\))与正在训练的策略(目标策略,\(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\))不同
    • 在理论上修正这种分布偏移的一种合理方法是 重要性采样 (IS)
    • 但对于保持梯度无偏和实现稳定训练而言,IS 的具体形式至关重要
  • 受 off-policy-rl (2025) 的发现启发
    • off-policy-rl (2025) 首次强调了这种由训练-推理不一致性导致的隐式 off-policy 问题
    • 作者分析了两种主要的 IS 形式:理论上合理的 Sequence-level IS 和常见但有偏的 Token-level IS 近似
The Principled Estimator: Sequence-Level IS
  • 正确、无偏的策略梯度估计器对整个生成的序列(轨迹)\(y\) 应用一个单一的重要性比率
  • 这正确地将其期望从行为策略重新加权到目标策略,从而产生目标函数 \(J(\theta)\) 的真实梯度
  • 下面一步步推导 Sequence-level IS 估计器 \(g_{\mathrm{seq} }(\theta)\)
    • Step 1:目标是最大化在目标 FSDP 策略 下的期望奖励:
      $$
      J(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}[R(x,y)]
      $$
    • Step 2:因此,真实的策略梯度为:
      $$
      g(\theta) = \nabla_{\theta} J(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}\left[R(x,y) \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)\right]
      $$
    • Step 3:由于作者只能从 vLLM 策略 中采样,作者使用重要性采样来改变策略梯度的期望的分布:
      $$
      g_{\mathrm{seq} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y|x)} \cdot R(x,y) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x) \right]
      $$
      • 这本质上是 off-policy REINFORCE 算法
  • 这个估计器在数学上等价于策略梯度的标准优势形式
    • 因为重要性采样比率精确地修正了期望(数学上等价)
补充详细推导:以上策略梯度的 On-policy 形式
  • 步骤 1:将期望转换为其 On-Policy 形式
    • IS 估计器取其关于行为策略 \(\color{red}{\pi^{\mathrm{vllm} } }\) 的期望
    • 通过将期望的定义写为积分,行为策略密度 \(\color{red}{p_{\theta}^{\mathrm{vllm} } }(y|x)\) 被抵消:
      $$
      \begin{align}
      g_{\mathrm{seq} }(\theta) &= \int \left( \frac{\pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x)}{\pi_{\color{red}{\theta} }^{\mathrm{vllm} }(y|x)} \cdot R(x,y) \cdot \nabla_{\theta} \log \pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x) \right) \pi_{\color{red}{\theta} }^{\mathrm{vllm} }(y|x) dy \\
      &= \int \left( R(x,y) \cdot \nabla_{\theta} \log \pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x) \right) \pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x) dy
      \end{align}
      $$
      • 这是真实的 on-policy 梯度,因为期望是对目标策略 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 而言的
    • 这证明了 \(g_{\mathrm{seq} }(\theta)\) 是真实策略梯度的无偏估计量
      $$
      g_{\mathrm{seq} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}\left[R(x,y) \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)\right] = g(\theta)
      $$
      • 理解:其实这个不需要证明,IS 对原始的 真实策略梯度 进行精确修正,得到的本就是数学上完全等价的形式
      • 注:真实的策略梯度 见前一小节的推导结果:
        $$
        g(\theta) = \nabla_{\theta} J(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}\left[R(x,y) \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)\right]
        $$
  • 步骤 2:分解为时间步并应用因果关系 (仅考虑当前时间步之后的 Reward \(G_t\))
    • 现在处理更简单的 on-policy 表达式,展开轨迹级别的项并应用 因果关系 (causality) 原理(在步骤 \(t\) 的动作仅影响未来的奖励)
    • 这允许我们将总奖励 \(R(x,y)\) 替换为 未来回报 (return-to-go) \(G_t = \sum_{k=t}^{|y|-1} r(s_k, a_k)\)
      $$
      g(\theta) = \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ \sum_{t=0}^{|y|-1} G_t \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
      $$
  • 步骤 3:引入优势函数 (减去一个 Baseline 得到 \(A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) = G_t - V^{\color{blue}{\pi_{\theta} } }(s_t)\))
    • 为了减少方差,减去一个依赖于状态的 Baseline ,即价值函数 \(V^{\color{blue}{\pi_{\theta} } }(s_t)\)
    • 这将未来回报转换为 优势函数 (Advantage Function) ,\(A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) = G_t - V^{\color{blue}{\pi_{\theta} } }(s_t)\)
      $$
      g(\theta) = \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ \sum_{t=0}^{|y|-1} A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
      $$
  • 步骤 4:从 Trajectory-level 期望转换为 State-level 期望
    • 最后一步将对轨迹的期望重新表述为对由目标策略引起的状态访问分布 \(d_{\color{blue}{\pi_{\theta} } }\) 的等价期望
    • 从步骤 3 到步骤 4 的详细数学推导
      • 步骤 A:从轨迹级期望开始
        $$
        g(\theta) = \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ \sum_{t=0}^{|y|-1} A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
        $$
      • 步骤 B:应用期望的线性性质
        • 交换期望和求和运算符
        • 可以将求和扩展到无穷大,因为对于超出轨迹有限长度 \(|y|\) 的时间步 \(t\) 的任何项都是零,所以只是加了零
          $$
          g(\theta) = \sum_{t=0}^{\infty} \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
          $$
      • 步骤 C:将期望展开为显式求和
        • 通过对每个可能的状态 \(s\) 和动作 \(a\) 求和,并用它们的联合概率 \(P(s_t=s, a_t=a) = P(s_t=s) \cdot \color{blue}{\pi_{\theta} }(a|s)\) 加权,来重写内部期望
          $$
          g(\theta) = \sum_{t=0}^{\infty} \sum_{s \in \mathcal{S} } \sum_{a \in \mathcal{A} } P(s_t=s) \cdot \color{blue}{\pi_{\theta} }(a|s) \cdot A^{\color{blue}{\pi_{\theta} } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s)
          $$
      • 步骤 D:引入状态占用度量 (通过交换求和顺序来引入)
        • 重新排列求和项,将与状态 \(s\) 相关的所有项分组
          $$
          g(\theta) = \sum_{s \in \mathcal{S} } \left( \sum_{t=0}^{\infty} P(s_t=s) \right) \cdot \left( \sum_{a \in \mathcal{A} } \color{blue}{\pi_{\theta} }(a|s) \cdot A^{\color{blue}{\pi_{\theta} } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s) \right)
          $$
          • 第一项,\(\sum_{t=0}^{\infty} P(s_t=s)\),是 状态占用度量 (state occupancy measure) 的定义,\(d_{\color{blue}{\pi_{\theta} } }(s)\)
          • 第二项是对动作的期望的定义,\(\mathbb{E}_{a \sim \color{blue}{\pi_{\theta} }(\cdot|s)}[\dots]\)
            $$
            g(\theta) = \sum_{s \in \mathcal{S} } d_{\color{blue}{\pi_{\theta} } }(s) \cdot \mathbb{E}_{a \sim \color{blue}{\pi_{\theta} }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta} } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s) \right]
            $$
      • 步骤 E:得到最终形式
        • 对所有状态按其状态占用度量加权求和,根据定义,是对状态分布 \(d_{\color{blue}{\pi_{\theta} } }\) 的期望
          $$
          g(\theta) = \mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta} } } } \left[ \mathbb{E}_{a \sim \color{blue}{\pi_{\theta} }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta} } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s) \right] \right]
          $$
  • 这个推导过程得到策略梯度的最终优势形式:
    $$
    \color{red}{g_{\mathrm{seq} }(\theta)} = \mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
    $$
    • \(s=(x,y_{ < t})\) 是状态(前缀)
    • \(a=y_t\) 是动作(token)
    • \(d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 是目标 FSDP 策略下的状态占用度量
      • 它形式化地定义为遵循策略 \(\pi\) 时状态 \(s\) 被访问的期望次数:
        $$
        \color{blue}{d_{\pi}(s) := \mathbb{E}_{x’ \sim \mathcal{D}, y’ \sim \pi(\cdot|x’)} \left[ \sum_{t’=0}^{|y’|-1} \mathbb{I}\{ (x’, y’_{<t’}) = s \} \right] = P(x) \cdot \prod_{k=0}^{t-1} \pi(y_k|x,y_{<k})}
        $$
  • 因为这个策略梯度估计器 \(g_{\mathrm{seq} }(\theta)\) 是 无偏的 ,意味着
    $$\color{red}{g_{\mathrm{seq} }(\theta)} = g(\theta)$$
    • 为了数值稳定性,使用了 截断重要性采样 (Truncated Importance Sampling, TIS)
    • TIS 将 Sequence-level 比率 \(\rho(y|x)\) 截断在一个常数 \(C\)
A Common Biased Estimator: Token-Level IS,常见的有偏估计器
  • 一个常见的启发式方法,通常受到 PPO 等算法的启发,并在 off-policy-rl (2025) 中使用,是对每个 token 应用重要性比率
  • 虽然这通常具有比 Sequence-level 比率更低的方差,但它是一个 有偏估计器 ,对于自回归模型在理论上是不合理的
    • 更低的方差来源是指 Sequence-level 时对数比率是多个 Token-level 的对数比率连乘计算得到的(详情见下两个公式),这样的话得到的结果波动自然比单个 Token 的对数比率大
  • 推导 Token-level IS 梯度估计器 \(g_{\mathrm{tok} }(\theta)\)
    • 第一步:这个公式开始于错误地在时间步求和内部应用重要性采样比率:即,\(g_{\mathrm{tok} }(\theta)\) 被定义为:
      $$
      g_{\mathrm{tok} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ R(x,y) \cdot \sum_{t=0}^{|y|-1} \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t})}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y_t|x,y_{ < t})} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t}) \right]
      $$
      • 作为对照,这里我们同步贴一下 Sequence-level 的梯度估计器:
        $$
        g_{\mathrm{seq} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y|x)} \cdot R(x,y) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x) \right]
        $$
        • 这里的 \(R(x,y)\) 是从 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 采样的完整轨迹的经验回报(因为 \(y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)\)),它是状态-动作值 \(Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a)\) 的蒙特卡洛估计
    • 第二步:同上一小节中的详细推导过程,我们可以类似地将对轨迹的期望重写为对在 vLLM 策略 下访问的状态的期望:
      $$
      g_{\mathrm{tok} }(\theta) = \mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } } \mathbb{E}_{a \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|s)} \left[ \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)} \cdot A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
      $$
      • 引入基线并改变对动作的期望,得到最终形式:
        $$
        g_{\mathrm{tok} }(\theta) = \mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
        $$
        • 这个最终表达式清楚地揭示了 Token-level IS 的梯度偏差
      • 补充:第二步的详细证明详情见附录
        • 注:推导过程中与 Sequence-level 表达式推导过程中的主要区别在于 Token-level 相加的校准形式无法被 Sequence-level 的期望直接消去,从而导致最终表达式的期望中仍然遗留了 vLLM 的策略信息
      • 特别注意:
        • 这里的 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a)\) 表示我们的 Advantage 是基于 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 采样和估计的
    • 现在对比真实策略梯度的无偏估计 \(\color{red}{g_{\mathrm{seq} }(\theta)} \):
      $$
      \color{red}{g_{\mathrm{seq} }(\theta)} = \mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
      $$
    • 可以清楚地看到,只有当 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 保持在 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 的信任域内时,即当 \(d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 且 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 时,\(J(\theta)\) 才能被 \(g_\text{tok}(\theta)\) 优化
Token-level IS 中偏差的来源 (The Source of Bias in Token-Level IS)
  • 比较 \(g_{\mathrm{tok} }(\theta)\) 与真实梯度 \(g_{\mathrm{seq} }(\theta)\) 揭示了两个截然不同且显著的误差,这些误差使得 Token-level 估计器有偏
  • 来源 1:状态占用不匹配
    • 一个合理的 off-policy 修正必须考虑两种分布偏移:
      • 动作概率:Token-level 方法修正了动作概率
      • 状态访问概率:Token-level 方法没有修正状态访问概率
        • 真实梯度 (\(g_{\mathrm{seq} }\)):
          • 期望是对在 正确的目标 fsdp 分布 下访问的状态,\(\mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } } }\)
        • 有缺陷的梯度 (\(g_{\mathrm{tok} }\)):
          • 期望是对在 错误的行为 vLLM 分布 下访问的状态,\(\mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } }\)
    • 这隐含地假设状态占用比率为 1,即 \({d_{\color{blue}{\pi^{\mathrm{fsdp} } } }(s)} /{d_{\color{red}{\pi^{\mathrm{vllm} } } }(s)} = 1\)
    • 这个假设在自回归模型中被灾难性地违反了
      • 由于 LLM 中的 MDP 是确定性的转移,一个不同的 token 选择就能保证状态轨迹完全分歧
        • 理解:这里的状态轨迹分歧会直接导致状态占用 \(d_\pi(s)\) 发生较大变化,而且越长的状态轨迹,发生偏移的概率越大
      • 因为忽略这一点,\(g_{\mathrm{tok} }(\theta)\) 引入了一个大的、不受控的偏差
  • 来源 2:奖励信号不匹配
    • 第二个关键错误是, Token-level 梯度使用来自 错误策略 的奖励信号对更新进行加权
      • 真实梯度 (\(g_{\mathrm{seq} }\)):
        • 更新由 目标 fsdp 策略 的优势函数 \(A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 缩放,表示在该策略下的期望未来奖励
      • 有缺陷的梯度 (\(g_{\mathrm{tok} }\)):
        • 更新由 行为 vLLM 策略 的优势函数 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\) 缩放
      • 即目标策略的梯度正被一个属于行为策略的奖励信号所缩放(本该是目标策略的奖励信号来缩放)
  • 由于状态分布和奖励信号从根本上是不匹配的, Token-level 梯度是一个有偏且理论上不合理的估计器
    • 这些理论表明:
      • 尽管 Token-level 方法可能具有更低的方差,但梯度偏差仍然存在,可能导致训练不稳定性
        • 本文的实验证实了这一预测
      • 作者还提供了关于 Token-level 和 Sequence-level 方法的详细偏差和方差分析 (第 1 部分 & 第 2 部分)
Experimental Validation
  • 总结来看,本文的理论分析预测,有偏的 Token-level IS 将不稳定并最终失败,而无偏的 Sequence-level IS 将是稳健的
  • 本文给出实验也证实了这一点
实验一:IS Prevents Gradient Explosion, but Token-Level Still Fails(Token-level TIS 防止了梯度爆炸,但是仍然失败了)
  • 作者在 L20 GPU 上从第 200 个训练步开始,使用 Token-level TIS 和 Sequence-level TIS (\(C=2\)) 恢复了一个崩溃的实验
  • 如图 14 所示
    • 虽然两者最初都防止了原始实验中看到的梯度爆炸,但使用 Token-level TIS 的运行后来仍然崩溃了
    • 使用 Sequence-level TIS 的运行保持稳定,验证了作者的理论,即来自 Token-level 方法的有偏梯度最终会导致失败
实验二:Token-Level TIS in Reasoning RL(Token-Level TIS 在更简单的 RL 中能防止梯度崩溃,但训练仍然不稳定且没有达到更好的最终性能)
  • Token-level TIS 在复杂的 TIR 实验中失败,但它可以在更简单的推理 RL 中帮助防止崩溃
    • 因为那里的不一致性较小
  • 在 on-policy GRPO 和 RLOO 实验中(图 15)
    • Token-level TIS 防止了梯度爆炸,但训练仍然不稳定,并且没有达到更好的最终性能
    • 这可能是由于其潜在的梯度偏差
实验三:TIS Prolongs Training But Can Suffer from Instability,TIS 延长训练但可能遭受不稳定性,测试性能无法超过其他实验崩溃前的峰值
  • 作者在 L20 GPU 上从头开始使用 Sequence-level TIS (\(C=2\)) 进行了一个 on-policy TIR 实验
  • 如图 16 所示
    • 虽然该方法阻止了完全崩溃,但奖励曲线在达到平台期后表现出持续波动,并且其测试性能未超过原始实验在崩溃前达到的峰值
实验四:Masked Importance Sampling, MIS, Sequence-level MIS 可以超过原始基线的最高峰值
  • 为了改进 TIS,作者提出了 掩码重要性采样 (Masked Importance Sampling, MIS) (注:这里是 Sequence-level MIS)
    • 注:其实类似思想(Token-level MIS)是在 (IcePop)Small Leak Can Sink a Great Ship—Boost RL Training on MoE with IcePop!, 20250919, AntGroup,但未明确命名为 MIS 而已
      • 相关 PR:【PR to TRL】[GRPO] Sequence-level TIS + MIS(20251106)
      • 注:在 IcePop 中,更多强调的是 Token-level MIS
  • 对 IS 比率超过阈值 \(C\) 的序列的策略损失进行掩码:
    $$ \rho(y|x) \gets \rho(y|x) \mathbb{I}\{\rho(y|x) \le C\} $$
    • 理解:超出 \(C\) 的 \(\rho(y|x)\) 会被置为 0
    • 问题:为什么是单向的?
      • 因为本文的观察可以看到,这个比值过大时容易出现不稳定(RL Collapse)
        • 上文的观察中有个结论是当 vLLM 概率 \(\color{red}{\pi^\text{vllm}_\theta}\) 趋近于零时,不一致程度往往更为显著
      • 当这个比值过小时理论没有问题,因为更新权重相当于被降低了(其实屏蔽可能也行,只是说会降低 Token 效率)
  • 如图 17 所示:MIS 不仅稳定了训练,而且超过了原始实验和 TIS 实验的峰值训练奖励和测试准确率
    • 问题:怎么感觉在下游测试指标(图 17 右图)继续训练 TIS 可能也能拿到不错的收益?因为性能还在持续增长
实验五:Token-Level MIS vs. Sequence-Level MIS,Token-level 的 MIS 不太够用,初期能防止梯度爆炸,后期还是会崩溃
  • 最后,作者比较了 Token-level MIS 和 Sequence-level MIS
  • 正如预期,图 18 显示:
    • 两者都能防止初始梯度爆炸,但 Token-level MIS 实验仍然崩溃了
    • 这强化了作者的结论:对于复杂的、长视距的自回归任务,只有理论上合理的 Sequence-level 修正才是可靠的
4.2.2 Top-p Sampling
  • 如上所述,作者观察到 vLLM 策略的低概率 token 更容易出现严重的训练-推理不一致性问题,导致 FSDP 策略的概率极低
  • 为了进一步证实这一点,作者进行了 top-p 消融研究
    • 在 L20 GPU 上运行 on-policy GRPO 实验,并将 vLLM 采样策略的 top-p 超参数分别设置为 0.98、0.99 和 0.999(注意这里没有应用重要性采样进行梯度修正)
    • 通过设置较小的 top-p 值,作者的目标是降低推理阶段出现极低 vLLM 概率 token 的频率 ,从而减轻训练-推理不一致性
  • 作者的消融结果如图 19 所示
    • 正如预期,vllm-kl 指标表明,较小的 top-p 减少了 vllm-kl 尖峰的出现
    • 但较小的 top-p 也增加了 vLLM 策略 \(\color{red}{\pi^{\text{vllm} }_\theta}\) 和 FSDP 策略 \(\color{blue}{\pi^{\text{fsdp} }_\theta}\) 之间的分布差异
      • 理解: top-p 变小影响了 vLLM 策略采样的分布,而 FSDP 中是没有类似 top-p 影响的(是所有分布同时训练),所以 vLLM 采样时的 top-p 越小,vLLM 和 FSDP 策略之间的差异越大 (再次强调:此时没有应用 IS 修正)
    • 因此,在不应用 TIS 的情况下,梯度偏差变得更大,导致随着 top-p 的减小,奖励提升变慢
4.2.3 Use other GPU series
  • 在发现 H20 GPU 上运行的实验的训练-推理不一致性显著小于 L20 GPU 后,作者将所有 TIR 实验切换到了 H20 GPU ,这大大减少了训练崩溃的发生
  • 图 20 显示了在 L20 和 H20 GPU 上,分别在相同配置下从头开始训练的两个 on-policy GRPO 实验的结果
  • 可以观察到,在 H20 GPU 上运行的 on-policy 实验显著延长了稳定训练时长 ,并取得了更好的性能
4.2.4 Disable Cascade Attention in vLLM, 在 vLLM 中禁用级联注意力
  • 根据这个 GitHub issue,作者在初始化 vLLM 引擎时设置了 disable_cascade_attn=True,并发现它在 A100 GPU 上进行的实验中显著有助于减少训练-推理不一致性
  • 作者在 A100 GPU 上使用 Qwen3-14B-Base 作为基础模型,进行了两个 on-policy GRPO 实验,disable_cascade_attn 分别设置为 True 和 False
  • 结果如图 21 所示
    • 禁用级联注意力后, vllm-kl 指标从 5e-2 到 1e-1 的范围下降到大约 1e-3,表明训练-推理不一致性显著减少
    • 同时可以观察到,训练集上的奖励也适当地增加了

Conclusion & Key Takeaways for Practitioners

  • 训练-推理不一致性不是一个细枝末节的 bug,而是一个贯穿现代 Reasoning and Agentic RL 的根本性且日益严峻的挑战,它是由对性能的必要追求所驱动的
  • 不一致性是不可避免的权衡: 接受高速推理总是会与训练计算产生分歧这一事实
    • 这是一个核心的权衡,而非暂时性的缺陷
  • 监控训练健康状况: vllm-kl 指标是一个重要的早期预警系统
    • 将其与困惑度 (PPL) 和梯度范数一起跟踪,以预测和诊断不稳定性,防止其导致崩溃
  • 识别真正的凶手: 问题不是随机的
    • 它是由 低概率 token (low-probability tokens) 系统性地触发的,这些 token 在模型处理分布外 (OOD) 输入时更频繁地生成
      • 这在工具使用和多轮应用中很常见
  • 硬件是一阶变量: 相同的代码可能在一种 GPU 架构上崩溃,在另一种上完美训练
    • 始终在自己的目标硬件上验证 Setting,因为结果可能无法完全移植
  • 使用理论合理的修正: 虽然更换硬件或调整采样器会有所帮助,但最稳健、最 Principled 解决方案是算法层面的
    • 理论上存在偏差的 Token-level 修正是不够的,在实验中仍然可能失败
    • Sequence-level 方法,如截断重要性采样 (Seq-TIS) 和掩码重要性采样 (Seq-MIS) ,通过修正完整的状态轨迹直接解决梯度偏差问题
    • 这些方法对于维持稳定性至关重要,应被视为任何 Serious LLM-RL 训练栈的默认选项
  • 其他:作者推测这个训推不一致性问题在 MoE 模型上可能会更加的严重

附录:Token-level IS 下的 策略梯度期望 表达式推导

  • 本节负责详细推导 Token-Level IS 梯度估计器 \( g_{\mathrm{tok} }(\theta) \) 的表达式
  • 这个推导的目标是:从一个基于轨迹的定义出发,通过一系列变换,将其表达为对“状态-动作”对的期望形式
    • 最终目标:展示 \( g_{\mathrm{tok} }(\theta) \) 与真实梯度 \( g_{\mathrm{seq} }(\theta) \) 的偏差来源

第 1 步:从 Token-Level IS 的轨迹级定义出发

  • 根据 4.2.1 节中的定义,Token-Level IS 的梯度估计器是基于轨迹的,它错误地将重要性比率应用在了对每个时间步的求和内部:
    $$
    g_{\mathrm{tok} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ R(x,y) \cdot \sum_{t=0}^{|y|-1} \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t})}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y_t|x,y_{ < t})} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t}) \right] \tag{1}
    $$
  • 这里的核心思想是:
    • 虽然想要优化目标策略 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\),但由于只能从行为策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 采样得到的轨迹 \(y\) 中进行学习,我们就在 每个 token 上 使用一个重要性权重来修正策略偏差(这个修正本身就是有偏的/错误的)

第 2 步:将轨迹期望分解为“状态-动作”对的期望

  • 这一步是将对完整轨迹 \(y\) 的期望,转化为对所有可能访问到的“状态-动作”对 \((s, a)\) 的期望
    • 这里的“状态” \(s\) 是生成动作 \(a\) 时的上下文(即 \(s = (x, y_{ < t})\))
  • 对于一条长度为 \(|y|\) 的轨迹,它的贡献是其中每个 token 的贡献之和
    • 利用期望的线性性质,可以将求和与期望进行交换
    • 将期望写成对所有可能的轨迹进行积分(或求和),可以得到:
      $$
      \begin{aligned}
      g_{\mathrm{tok} }(\theta) &= \sum_{t=0}^{\infty} \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)} \left[ R(x,y) \cdot \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t})}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y_t|x,y_{ < t})} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t}) \right] \\
      &= \sum_{t=0}^{\infty} \sum_{s \in \mathcal{S} } \sum_{a \in \mathcal{A} } P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t = s, a_t = a) \cdot \mathbb{E}_{y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)} \left[ R(x,y) | s_t=s, a_t=a \right] \cdot \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)
      \end{aligned}
      $$
  • 理解:这个看起来很复杂的表达式其实在做一件简单的事:
    • 遍历所有可能的时间步 \(t\),所有可能的状态 \(s\),以及所有可能的动作 \(a\)
    • 对于每一种可能性
      • 计算其发生的概率
        $$P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s, a_t=a)$$
      • 然后乘上在该 \((s,a)\) 之后获得的期望回报
        $$\mathbb{E}[R(x,y)|s_t=s, a_t=a]$$
      • 最后再乘上 token-level 的 IS 权重和梯度项

第 3 步:引入状态-动作价值函数 \(Q\) 和状态占用度量 \(d\)

  • 接下来这里做两个关键的代换:
    • 1)条件期望回报 \( \mathbb{E}_{y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)} \left[ R(x,y) | s_t=s, a_t=a \right] \) 正是 行为策略下的状态-动作价值函数 \( Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) \) 的定义
      • 它衡量了在状态 \(s\) 采取动作 \(a\) 后,遵循策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 所能获得的期望累积奖励
    • 2)联合概率 \( P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s, a_t=a) \) 可以分解为 \( P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s) \cdot \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s) \)
      • 而 \(\sum_{t=0}^{\infty} P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s) \) 正是 行为策略下的状态占用度量 (State Occupancy Measure) ,记为 \( d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) \)
      • 它衡量了在整个交互过程中,状态 \(s\) 被访问的期望次数
  • 将这两个定义代入,上述双重求和(\(\sum_{t} \sum_{s}\))就可以巧妙地合并成一个对状态 \(s\) 的加权求和,权重正是状态占用度量 \(d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s)\):
    $$
    \begin{aligned}
    g_{\mathrm{tok} }(\theta) &= \sum_{s \in \mathcal{S} } d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) \sum_{a \in \mathcal{A} } \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s) \cdot Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) \cdot \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)
    \end{aligned}
    $$
  • 可以看到,分母中的 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)\) 和分子中的 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)\) 可以直接约掉!约简后,作者得到一个非常简洁的形式:
    $$
    g_{\mathrm{tok} }(\theta) = \sum_{s \in \mathcal{S} } d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) \sum_{a \in \mathcal{A} } \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \cdot Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \tag{2}
    $$

第 4 步:引入基线函数以降低方差

  • 在策略梯度方法中,直接使用 \(Q\) 函数会导致较高的方差
    • 通常我们会引入一个与动作无关的基线 \(V(s)\) 来降低方差,而不改变期望值
    • 最常用的基线是状态价值函数 \(V^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s)\)
      $$
      Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) = V^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) + A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a)
      $$
      • 其中 \(A\) 是优势函数
    • 将 \(Q\) 替换为 \(V + A\) 后,代入式 (2):
      $$
      \begin{aligned}
      g_{\mathrm{tok} }(\theta) &= \sum_{s} d_{\color{red}{\pi} }(s) \sum_{a} \color{blue}{\pi}(a|s) \cdot \left( V^{\color{red}{\pi} }(s) + A^{\color{red}{\pi} }(s, a) \right) \cdot \nabla_{\theta} \log \color{blue}{\pi}(a|s) \\
      &= \underbrace{ \sum_{s} d_{\color{red}{\pi} }(s) V^{\color{red}{\pi} }(s) \sum_{a} \color{blue}{\pi}(a|s) \nabla_{\theta} \log \color{blue}{\pi}(a|s) }_{\text{ = 0} } + \sum_{s} d_{\color{red}{\pi} }(s) \sum_{a} \color{blue}{\pi}(a|s) A^{\color{red}{\pi} }(s, a) \nabla_{\theta} \log \color{blue}{\pi}(a|s)
      \end{aligned}
      $$
      • 注:为了简洁考虑,上式中:
        • 用 \(\color{red}{\pi}\) 表示 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\)
        • 用 \(\color{blue}{\pi}\) 表示 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\)
  • 问题:为什么第一项等于 0?
    • 因为:
      $$\sum_{a} \color{blue}{\pi}(a|s) \nabla_{\theta} \log \color{blue}{\pi}(a|s) = \mathbb{E}_{a \sim \color{blue}{\pi}(\cdot|s)}[\nabla_{\theta} \log \color{blue}{\pi}(a|s)] = 0$$
      • 这是一个对数似然梯度的恒等式,其期望值为零(得分函数 \(\nabla_{\theta} \log \color{blue}{\pi}(a|s)\) 期望为 0)
      • 因此,包含基线 \(V(s)\) 的项就自然消失了
    • 理解:为什么第二项不等于 0?
      • 第一项可以为 0 是因为第一项的 \(V^{\color{red}{\pi} }(s) \) 与动作 \(a\) 无关,不会随着动作 \(a\) 的变化而变化,可以单独从期望中提出来
      • 第二项不为 0 是因为第二项的 \(A^{\color{red}{\pi} }(s, a)\) 与动作 \(a\) 有关,不能单独从期望中提出来
        • 虽然 \(A^{\color{red}{\pi} }(s, a)\) 包含的是 \(\color{red}{\pi}\),但还包含了 \(a\),这导致了 \(A^{\color{red}{\pi} }(s, a)\) 与动作分布 \(\color{blue}{\pi}(a|s)\) 有关(主要是与动作有关)

第 5 步:得到最终形式

  • 消去为零的项后,我们得到了 Token-Level IS 估计器的最终形式:
    $$
    g_{\mathrm{tok} }(\theta) = \mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
    $$

第 6 步:Token-Level IS 为什么是有偏的?

  • 通过上面这个推导,我们可以清晰地看到问题的根源:
    • 1)状态分布错误 :期望 \(\mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } }\) 是在行为策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 的访问状态上求的,而我们真正想要的,应该是目标策略 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 的访问状态 \(d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\)
    • 2)奖励信号错误 :用来衡量“好与坏”的标准是行为策略的优势函数 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a)\),而非目标策略的优势函数 \(A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }(s,a)\)
  • 因此,尽管 Token-Level IS 看起来在每个 token 上进行了修正,但它修正的是错误的分布,使用的是错误的评价标准
    • 只有当两个策略几乎一样时(即 \(d_{\color{red}{\pi} } \approx d_{\color{blue}{\pi} }\) 且 \(A^{\color{red}{\pi} } \approx A^{\color{blue}{\pi} }\)),它才近似正确,否则其梯度是有偏的,这也就是原文实验里它仍然会导致训练崩溃的根本原因

NLP——技术报告解读-DeepSeekMath-V2

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:DeepSeekMath-V2: Towards Self-Verifiable Mathematical Reasoning, 20251127, DeepSeek
      • arXiv:DeepSeekMath-V2: Towards Self-Verifiable Mathematical Reasoning, 20251227, DeepSeek
    • GitHub:github.com/deepseek-ai/DeepSeek-Math-V2
    • HuggingFace:huggingface.co/deepseek-ai/DeepSeek-Math-V2
    • 参考博客:DeepSeek开源世界首个奥数金牌AI,正面硬刚谷歌

Paper Summary

  • 整体内容总结:
    • 论文提出了一个能够生成和验证数学证明的模型 DeepSeekMath-V2(基于 DeepSeek-V3.2-Exp-Base 开发)
    • 训练模型识别自身推理中的问题,并激励它们在最终确定输出之前解决这些问题
      • 论文超越了基于最终答案的奖励的局限性,迈向可 Self-Verification 的数学推理
    • 论文的迭代训练过程(交替改进验证能力和利用这些能力来增强生成),创建了一个可持续的循环,其中每个组件都推动另一个组件前进
    • 关键技术贡献包括:
      • (1) 训练了一个准确且可信的 LLM-based 数学 Proof Verifier
      • (2) 使用元验证来大幅减少幻觉问题并确保验证质量
      • (3) 激励 Proof Generator 通过 Self-Verification 来最大化证明质量
      • (4) 扩展验证计算量以自动标记日益难以验证的新证明,从而在没有人工标注的情况下改进 Verifier
    • DeepSeekMath-V2 在竞赛数学中表现出强大的性能,在 IMO-ProofBench 指标上处于第一梯队
      • 在包括 IMO 2025 和 CMO 2024 在内的高中竞赛中获得了金牌分数,并在本科生 Putnam 2024 竞赛中获得了接近满分的成绩
    • 意义:这项工作确立了 LLM 可以为复杂推理任务发展有意义的自我评估能力
  • 背景 & 问题提出:
    • LLM 在数学推理领域取得了显著进展(该领域不仅是 AI 的重要测试基准,若进一步突破,更可能对科学研究产生深远影响)
    • 当前方案:通过 RL 对推理过程进行 scaling,并以正确的最终答案为奖励信号,LLMs 在一年内实现了性能飞跃:
      • 从最初的表现不佳,到如今在AIME(美国数学邀请赛)、HMMT(哈佛-麻省理工数学竞赛)等定量推理竞赛中达到性能饱和(saturating)状态
    • 以上这种方法存在根本性局限:
      • 追求更高的最终答案准确率,无法解决一个核心问题:正确答案并不意味着正确的推理过程
      • 此外,定理证明(theorem proving)等诸多数学任务,要求严格的分步推导(step-by-step derivation),而不是仅输出数值答案,这使得“以最终答案为奖励”的机制完全不适用
  • 为突破深度推理的极限,作者认为有必要对数学推理的完整性(comprehensiveness)与严谨性(rigor) 进行验证
    • 自验证(self-verification)对于缩放测试时计算量(test-time compute)尤为重要,尤其是在处理无已知解的开放问题(open problems)时
  • 针对可自验证数学推理这一目标,作者开展了以下研究:
    • 1)验证器(verifier):训练一个 LLM-based 精准且可信(accurate and faithful)verifier,用于定理证明任务
    • 2)证明生成器(Proof Generator):以该 Verifier 作为奖励模型(reward model),训练一个 Proof Generator
      • 并激励 Generator 在最终定稿前,自主识别并解决其证明过程中的尽可能多的问题;
    • 3)为避免 Generator 性能提升后出现“生成-验证差距(generation-verification gap)”,作者提出通过 scale verification compute,自动标注新的“难验证证明(hard-to-verify proofs)”,并以此构建训练数据,进一步迭代优化 verifier
      • 理解:这里的生成-验证差距是指 Verifier 的能力已经无法验证 Generator 生成的结果
  • 最终模型 DeepSeekMath-V2 展现出强大的定理证明能力:
    • 在 2025 年国际数学奥林匹克(IMO 2025)和 2024 年中国数学奥林匹克(CMO 2024)中斩获金牌级分数(gold-level scores);
    • With scaled test-time compute,在 2024 年普特南数学竞赛(Putnam 2024)中取得 118/120 的近乎满分成绩
  • 尽管仍有大量工作亟待推进,但这些结果表明:可自验证数学推理是一条可行的研究方向 ,有望助力开发更具能力的数学 AI 系统

Introduction and Discussion

  • 数学推理的常规强化学习方法涉及根据 LLM 预测的定量推理问题的最终答案是否与真实答案匹配来对其进行奖励 (2025)
    • 这种方法足以让前沿的 LLM 在主要评估最终答案的数学竞赛(如 AIME 和 HMMT)中达到饱和
  • 上述奖励机制有两个根本性的局限性
    • 它是推理正确性的一个不可靠代理(Proxy)(模型可能通过有缺陷的逻辑或幸运的错误得出正确答案)
    • 它不适用于定理证明任务 ,在这类任务中,问题可能不需要产生数值形式的最终答案,而严格的推导是主要目标
  • 使用这种最终答案奖励在定量推理问题上进行训练的 LLM ,仍然经常产生数学上无效或逻辑上不一致的自然语言证明
  • 且这种训练方法并不能自然地发展模型验证证明有效性的能力
    • 它们表现出很高的假阳性率,即使证明包含明显的逻辑缺陷,也常常声称不正确的证明是有效的
  • 自然语言定理证明中缺乏生成-验证差距阻碍了进一步的改进
    • 为了解决这个问题,论文提议在 LLM 中开发证明验证能力
  • 论文的方法基于以下几个关键观察:
    • 人类即使没有参考解决方案也能识别证明中的问题
      • 这在处理开放性问题时是至关重要的能力
    • 当进行了扩展的验证努力也无法识别出任何问题时,证明有效的可能性更高
    • 识别有效问题所需的努力可以作为证明质量的代理,这可以用来优化证明生成
  • 作者相信可以训练 LLM 在没有参考解决方案的情况下识别证明问题,且这样的 Verifier 将实现一个迭代改进循环:
    • (1) 使用验证反馈来优化证明生成
    • (2) 扩展验证计算来自动标注新的难以验证的证明,从而创建训练数据以改进 Verifier 本身
    • (3) 使用这个增强的 Verifier 来进一步优化证明生成
  • 一个可靠的 Proof Verifier 使论文能够教导 Proof Generator 像 Verifier 那样评估证明
    • 这使得 Proof Generator 能够迭代地完善其证明,直到它无法再识别或解决任何问题。本质上,论文让模型明确地意识到其奖励函数,并使其能够通过深思熟虑的推理而不是盲目的试错来最大化这个奖励
  • 基于 DeepSeek-V3.2-Exp-Base (2025),论文开发了 DeepSeekMath-V2 ,这是一个针对自然语言定理证明进行优化的 LLM ,展示了可 Self-Verification 的数学推理能力
  • 论文的模型能够评估并迭代地改进其自身的证明
    • 在包括 IMO 2025 和 CMO 2024 在内的顶级高中数学竞赛中取得了金牌级别的表现
    • 在 Putnam 2024 本科数学竞赛中,它取得了 118/120 的分数,超过了人类参与者的最高分 \(90\)(https://kskedlaya.org/putnam-archive/putnam2024stats.html)

Method

Proof Verification

Training a Verifier to Identify Issues and Score Proofs
  • 论文为证明评估制定了高级评估标准 \(\mathcal{I}_{v}\)(见附录 A.2),目标是训练一个 Verifier 根据这些标准来评估证明,这反映了数学专家的评估过程
    • 理解:这里说的高级评估标准 \(\mathcal{I}_{v}\) 就是 Verifier 的 Prompt
  • 具体来说,给定一个问题 \(X\) 和一个证明 \(Y\), Verifier \(\pi_{\boldsymbol{\varphi} }(\cdot|X,Y,\mathcal{I}_{v})\) 被设计为生成一个证明分析,该分析首先总结识别出的问题(如果有的话),然后根据三个级别分配分数:
    • 1 表示完整且严谨的证明,所有逻辑步骤都清晰合理;
    • 0.5 表示整体逻辑合理但存在小错误或省略细节的证明;
    • 0 表示包含致命逻辑错误或关键漏洞的根本性缺陷证明
  • 附录 A.2 提供的 Prompt 大致中文含义如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #### 说明

    你的任务是评估问题解决方案的质量 问题可能要求证明一个陈述,或者要求一个 答案。如果需要找到答案,解决方案 应该呈现答案,并且也应该是该答案有效的 严格证明

    请根据以下标准评估解决方案并评分:
    - 如果解决方案完全正确,所有步骤都执行得当 并清晰展示,则得分为 1
    - 如果解决方案大体正确,但有一些细节 被省略或有小错误,则得分为 0.5
    - 如果解决方案实际上没有解决所要求的问题, 包含致命错误,或有严重遗漏,则 得分为 0
    - 此外,引用任何论文中的任何内容都不能免除 证明该引用的需要。仅当且仅当 解决方案同时提供了引用论证的有效证明时 才可以;否则,如果解决方案省略了证明或 提供的证明不完全正确,则 解决方案应根据上述标准评分, 且绝对不能得1分

    请仔细推理并分析下方解决方案的质量, 并在你的最终回复中呈现解决方案质量的 详细评估,然后是你的评分。因此,你的回复 应遵循以下格式:

    以下是我对解决方案的评估:
    ... // 你的评估在此处。你需要详细呈现 解决方案的关键步骤或你对其正确性 存疑的步骤,并明确分析每个步骤是否准确:对于正确的步骤,解释你最初为何怀疑其正确性 以及它们为何确实是正确的;对于错误的步骤, 解释错误的原因以及该错误对解决方案的影响

    根据我的评估,最终总体得分应为:
    \boxed{...} // 其中...应为根据上述标准得出的 最终总体得分(0、0.5或1,且不能是其他内容)

    以下是你的任务输入:

    #### 问题
    {问题}

    #### 解决方案
    {证明}
Curating Cold Start RL Data
  • 论文通过以下过程构建了初始训练数据:
    • 1)论文从 Art of Problem Solving (AoPS) 竞赛中爬取问题,优先选择数学奥林匹克、团队选拔测试以及 2010 年后明确要求证明的问题,总计 17,503 个问题
      • 此问题集记为 \(\mathcal{D}_{p}\)
    • 2)论文使用 DeepSeek-V3.2-Exp-Thinking 的一个变体生成候选证明
      • 由于该模型未针对定理证明进行优化,并且倾向于产生简洁但容易出错的输出,论文提示它在多轮中迭代地完善其证明,以提高全面性和严谨性
    • 3)论文随机抽样了不同问题类型(例如,代数和数论)的证明,并由数学专家根据上述评估标准对每个证明进行评分
      • 注意:这个数据集的数据是数学专家标注的,所以很厉害,后续会用做 Ground Truth 数据集
  • 这个过程产生了一个初始的强化学习数据集
    $$ \mathcal{D}_{v}=\{(X_{i},Y_{i},s_{i})\} $$
    • 其中每个项目包含一个问题 \(X_{i}\)、一个证明 \(Y_{i}\) 和一个整体证明分数 \(s_{i}\in\{0,0.5,1\}\)
  • 理解:Verifier 的训练流程可以总结为:
    • 第一步:对待解决的问题 Query \(X_{i}\),使用 Generator 生成证明过程 \(Y_{i}\)
    • 第二步:使用数学专家对这些 证明过程 \(Y_{i}\) 进行检验,给出一个对 Generator 相应的评分 \(s_{i}\),得到最终数据集
      $$ \mathcal{D}_{v}=\{(X_{i},Y_{i},s_{i})\} $$
    • 第三步:基于上述数据集使用强化学习训练一个 Verifier
RL Objective
  • 基于一个在数学和代码相关推理数据上进行 SFT 的 DeepSeek-V3.2-Exp-SFT 版本,论文使用两个奖励组件通过强化学习训练模型以产生证明分析:
    • 格式奖励 \(R_{\text{format} }\): 一个指示函数,强制模型生成识别出的问题摘要和证明分数,通过检查最终响应是否包含关键短语 “Here is my evaluation of the solution.” 以及紧随 “Based on my evaluation, the final overall score should be.” 之后的 \boxed{} 内的分数
    • 分数奖励 \(R_{\text{score} }\): 基于预测分数 \(s^{\prime}_{i}\) 与标注分数 \(s_{i}\) 接近程度的奖励:
      $$R_{\text{score} }(s^{\prime}_{i},s_{i})=1-|s^{\prime}_{i}-s_{i}| \tag{1}$$
  • 训练 Verifier 的强化学习目标是:
    $$\max_{\pi_{\varphi} }\mathbb{E}_{(X_{i},Y_{i},s_{i})\sim\mathcal{D}_{v},(V^{\prime}_{i},s^{\prime}_{i})\sim\pi_{\varphi}(\cdot|X_{i},Y_{i})} \left[R_{\text{format} }(V^{\prime}_{i})\cdot R_{\text{score} }(s^{\prime}_{i},s_{i})\right] \tag{2}$$
    • 其中 \(V^{\prime}_{i}\) 表示 Verifier 的最终响应,\(s^{\prime}_{i}\) 是从中提取的证明分数
    • 理解:要求格式一定正确,且分数越接近越好
Introducing Meta-Verification to Review Proof Analyses
  • 第 2.1.1 节中描述的方法通过强化学习训练证明验证,以使预测的证明分数与专家标注对齐,但没有直接监督问题本身
    • 这造成了一个关键的漏洞:在训练期间评估有缺陷的证明(其中 \(s_{i}<1\))时, Verifier 可以通过预测正确的分数同时幻觉出不存在的问题来获得全部奖励,这破坏了其可信度
    • 理解:这里是说,错误可以有千百种,所以评估 Generator 出现错误的问题时,Verifier 可能会对齐分数,然后幻觉出一些 Generator 的回复没有的错误;(这是因为 Verifier 的 RL 奖励只监督了分数而不是问题本身导致的)
  • 为了解决这个问题,论文引入了元验证 (meta-verification) :
    • 一个次要的评估过程,用于评估 Verifier 识别出的问题是否确实存在,以及这些问题是否根据评估标准 \(\mathcal{I}_{v}\) 在逻辑上证明了预测的证明分数是合理的
    • 完整的元验证标准 \(\mathcal{I}_{mv}\) 在附录 A.3 中详细说明
      • 理解:这里说的元验证标准 \(\mathcal{I}_{mv}\) 就是 Meta-Verifier 的 Prompt
  • 论文训练了一个专用的 Meta-Verifier 使用强化学习来执行此评估
    • 通过将 Meta-Verifier 的反馈纳入 Verifier 训练,我们可以提高 Verifier 问题识别的忠实度
  • A.3 的内容(Meta-Verification)大致含义如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    你被提供了一个"问题"、"解决方案"和"解决方案评估", 你需要评估这个"解决方案评估"是否合理

    首先,"解决方案评估"是通过使用以下规则提示 Verifier 来评估"解决方案"质量而生成的(这些不是你的规则):

    '''
    请根据以下标准评估解决方案并评分:
    - 如果解决方案完全正确,所有步骤都执行得当 并清晰展示,则得分为1
    - 如果解决方案大体正确,但有一些细节 被省略或有小错误,则得分为0.5
    - 如果解决方案实际上没有解决所要求的问题, 包含致命错误,或有严重遗漏,则 得分为0
    - 此外,引用任何论文中的任何内容都不能免除 证明该引用的需要。仅当且仅当 解决方案同时提供了引用论证的有效证明时 才可以;否则,如果解决方案省略了证明或 提供的证明不完全正确,则 解决方案应根据上述标准评分, 且绝对不能得1分
    '''

    接下来,我将介绍你分析"解决方案评估"质量 的规则:

    1. 你的任务是分析"解决方案评估"。你不需要 解决"问题",也不需要严格评估"解决方案" 是否准确。你的唯一任务是严格遵循以下规则 来评估"解决方案评估"是否合理

    2. 你需要从三个方面分析"解决方案评估"的内容:

    步骤重述:在"解决方案评估"中,可能会重述"解决方案" 的某些行为。你需要回到"解决方案"的原始文本, 检查"解决方案"是否实际具有"解决方案评估"中 提到的这些行为

    缺陷分析:"解决方案评估"可能会指出"解决方案"中的 错误或缺陷。你需要仔细分析提到的错误和缺陷 是否确实有效

    表达分析:"解决方案评估"的表达是否准确

    分数分析:"解决方案评估"给出的最终分数是否与其 发现的缺陷相匹配。你需要根据上面给出的 评分规则进行分析

    3. 最重要的部分是**缺陷分析** :在这部分中, 你的核心任务是检查 "解决方案评估" 中指出的 "解决方案" 的错误或缺陷是否合理。换句话说, "解决方案评估" 中关于 "解决方案" 的任何正面内容, 无论是否合理,都不在你的评估范围之内
    - 例如:如果 "解决方案评估" 说 "解决方案" 中的某个 结论是正确的,但实际上这个结论是错误的, 那么你不需要关心这一点。"解决方案评估" 认为 正确的所有部分都不属于你的评估范围
    - 具体来说:如果 "解决方案评估" 认为 "解决方案" 完全准确,没有发现任何错误或缺陷,那么无论 "解决方案" 本身是否实际准确,即使存在明显错误,你仍应认为其对错误的分析是合理的

    **重要的是** ,对于 "解决方案评估" 发现的缺陷, 你需要同时分析两点:
    - 这个缺陷是否实际存在
    - "解决方案评估" 对这个缺陷的分析是否准确

    这两个方面构成了缺陷分析

    4. 关于**表达分析** ,如果 "解决方案评估" 中存在某些 表达错误,即使是细节上的小错误,你也需要 识别它们。但是,请注意,将 "解决方案" 中的 错误步骤识别为正确步骤不构成**表达错误**

    在实践中,表达错误包括但不限于:
    - 如果 "解决方案评估" 将 "解决方案" 中的某些推理步骤 识别为不正确,那么它不能进一步指出依赖于这些推理步骤的后续结论是错误的,而只能指出 后续结论 "没有得到严格证明"
    - "解决方案评估" 中的拼写错误和计算错误
    - 对 "解决方案" 内容的不准确重述

    5. 最后,你需要在输出中呈现你对 "解决方案评估" 的 分析,并根据以下规则评定其质量:

    首先,如果 "解决方案评估" 发现的缺陷中至少有一个 是不合理的,那么你只需要进行**缺陷分析** :
    - 如果 "解决方案评估" 发现的所有缺陷都是不合理的, 那么你应该将其评定为\\(0\\)
    - 如果 "解决方案评估" 发现的部分缺陷是合理的, 部分是不合理的,那么你的评分应为\\(0.5\\)

    接下来,如果 "解决方案评估" 没有指出任何错误或 缺陷,或者评估发现的所有缺陷都是合理的, 那么你应该做以下事情:
    - 分析 "解决方案评估" 中是否存在 "表达错误" (**表达分析**)或者 "解决方案评估" 是否根据 "解决方案评估" 的规则给出了错误的分数(**分数分析**)。如果是,你应该将 "解决方案评估" 评定为\\(0.5\\);如果不是,你的评分应为\\(1\\)

    你的输出应遵循以下格式:

    以下是我对"解决方案评估"的分析:
    ... // 你的分析在此处

    根据我的分析,我将"解决方案评估"评定为:
    \boxed{...} // 其中...应为根据上述标准对 "解决方案评估" 的数值评分(0、0.5或1,且不能是其他内容)

    ---

    以下是你的任务输入:

    #### 问题
    {问题}

    #### 解决方案
    {证明}

    #### 解决方案评估
    {证明分析}
Meta-Verifier Training Process
  • 1)论文按照第 2.1.1 节获得了一个初始 Verifier \(\pi_{\varphi}\)
  • 2)数学专家根据 \(\mathcal{I}_{mv}\) 对 Verifier 响应的质量进行评分,创建数据集
    $$ \mathcal{D}_{mv}=\{(X_{i},Y_{i},V_{i},ms_{i})\}$$
    • 其中 \(V_{i}\) 是对证明 \(Y_{i}\) 的分析,\(ms_{i}\in\{0,0.5,1\}\) 是专家标注的质量分数
    • 理解:这里也有数学专家参与,给出的数据是明确的标签
  • 3)论文训练了一个 Meta-Verifier \(\pi_{\eta}(\cdot|X,Y,V,\mathcal{I}_{mv})\) 来分析 Verifier 的证明分析 \(V\)
    • Meta-Verifier 生成一个在分析本身中发现的问题摘要,然后是一个质量分数,用于衡量 Verifier 分析的准确性和合理性
    • 强化学习目标:遵循与 Verifier 训练相同的结构,具有格式和分数奖励
    • 理解:Meta-Verifier 也是通过强化学习训练的
  • 使用训练好的 Meta-Verifier \(\pi_{\eta}\),论文通过将元验证反馈整合到奖励函数中来增强 Verifier 训练 :
    $$R_{v}=R_{\text{format} }\cdot R_{\text{score} }\cdot R_{\text{meta} }\tag{3}$$
    • 其中 \(R_{\text{meta} }\) 是来自 Meta-Verifier 的质量分数
  • 论文在验证数据集 \(\mathcal{D}_{v}\) 和元验证数据集 \(\mathcal{D}_{mv}\) 上训练了增强的 Verifier ,在 \(\mathcal{D}_{mv}\) 上使用与训练 Meta-Verifier 相同的奖励机制
    • 最终的模型可以执行证明验证和元验证任务
  • 在 \(\mathcal{D}_{v}\) 的一个验证 split 上, Verifier 证明分析的平均质量分数(由 Meta-Verifier 评估)从 \(0.85\) 提高到 \(0.96\),同时保持了相同的证明分数预测准确率
  • 理解:Meta-Verifier 的训练流程可以总结为:
    • 第一步:对待解决的问题 Query \(X_{i}\),使用 Generator 生成证明过程 \(Y_{i}\)
    • 第二步:使用已经训练好的 Verifier 给这些证明打分 \(V_{i}\)
    • 第三步:使用数学专家对这些 Verifier 的质量进行检验,给出一个对 Verifier 相应的评分 \(ms_{i}\),得到最终数据集
      $$ \mathcal{D}_{mv}=\{(X_{i},Y_{i},V_{i},ms_{i})\}$$
    • 第四步:基于上述数据集使用强化学习训练一个 Meta-Verifier

Proof Generation

Training a Generator for Theorem Proving
  • 以 Verifier \(\pi_{\varphi}\) 作为生成式奖励模型(generative reward model),论文训练一个 Proof Generator \(\pi_{\theta}(\cdot|X)\),其强化学习目标为:
    $$\max_{\pi_{\theta} }\mathbb{E}_{X_{i}\sim\mathcal{D}_{p},Y_{i}\sim\pi_{\theta}(\cdot|X_{i})}[R_{Y}] \tag{4}$$
  • 其中 \(R_{Y}\) 是由 \(\pi_{\varphi}(\cdot|X_{i},Y_{i},\mathcal{I}_{v})\) 产生的证明分数
    • 理解:这里说的 \(\mathcal{I}_{v}\) 是前文说的 高级评估标准,也就是 Verifier 的 Prompt
Enhancing Reasoning via Self-Verification
  • 当 Proof Generator 无法一次性生成完全正确的证明时(对于来自 IMO 和 CMO 等竞赛的具有挑战性的问题来说,这很常见),迭代验证和细化可以改善结果
    • 这包括使用外部 Verifier 分析证明,并提示 Generator 解决识别出的问题
  • 然而,论文观察到一个关键的限制:
    • 当提示在一次性中既生成又分析其自身证明时, Generator 倾向于声称正确,即使外部 Verifier 很容易识别出缺陷
    • 换句话说,虽然 Generator 可以基于外部反馈来改进证明,但它未能像专用 Verifier 那样严格地评估自己的工作
  • 这一观察激励论文赋予 Proof Generator 真正的验证能力
    • 在训练期间,论文提示 Proof Generator \(\pi_{\theta}\) 生成一个证明 \(Y\),然后是一个自我分析 \(Z\),该分析遵循与 Verifier 相同的格式和标准 \(L_{t}\)(见附录 A.1)
    • 论文将自我分析中预测的证明分数记为 \(s^{\prime}\)
      • 理解: \(s^{\prime}\) 是自己给自己打的分
  • 为了确保忠实的自我评估,论文使用 Verifier \(\pi_{\varphi}\) 来评估这两个部分:
    • 证明 \(Y\) 获得分数 \(R_{Y}=s\),自我分析 \(Z\) 获得元验证分数 \(R_{\text{meta} }(Z)=ms\)
    • 奖励函数结合了这些评估:
      $$ R = R_{\text{format} }(Y, Z)\cdot(\alpha\cdot R_{Y}+\beta\cdot R_{Z}) \tag{5} $$
      • 理解:\(R_{Y}=s\) 表示验证分数,是根据 Verifier 模型输出 \(Y\) 得到的验证器输出分数,也就是 \(R_{Y}\) 是 \(\pi_{\varphi}(\cdot|X_{i},Y_{i},\mathcal{I}_{v})\) 的输出
        $$ R_{Z} = R_{\text{score} }(s^{\prime}, s)\cdot R_{\text{meta} }(Z) \tag{6} $$
      • 理解:\(R_{\text{meta} }(Z)=ms\) 表示元验证分数,是 Meta-Verifier 模型输出的元验证分数,\(R_{\text{meta} }(Z)=ms\) 是 \(\pi_{\eta}(\cdot|X,Y,V,\mathcal{I}_{mv})\) 的输出
      • 注:\(s’\) 是 Generator Self-Verification 生成的分数;\(s\) 是 Verifier 输出的分数
    • 进一步分析:
      • \(R_{\text{format} }(Y,Z)\) 验证证明和自我分析都遵循指定的格式
      • \(R_{\text{score} }(s^{\prime},s)\) 奖励准确的自我评估
        • 这里希望 Generator 生成的 Self-Verification 给分越接近 Verifier 越好,即 Verifier 的输出 \(s’\) 对 Generator 的影响不仅仅在 \(R_Y=s\) 上,还在 \(R_{\text{score} }(s^{\prime},s)\) 上
    • 论文设置 \(\alpha=0.76\) 和 \(\beta=0.24\)
  • 这种奖励结构创建了以下激励:
    • 忠实地承认错误比虚假地声称正确更受奖励
    • 最高的奖励来自于产生正确的证明并准确认识到其严谨性
    • Proof Generator 获得高奖励的一个好策略是在最终确定响应之前,尽可能多地识别和解决问题
  • 附录 A.1 的 Prompt 大致含义是:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    你的任务是解决给定的问题。问题可能要求你 证明一个陈述,或者要求一个答案。如果需要 找到答案,你应该提出答案,并且 你的最终解决方案也应该是该答案有效的 严格证明

    你对问题的最终解决方案应该非常 全面且易于理解,将根据以下评估说明 进行评分:

    '''txt
    以下是评估问题解决方案质量的说明 问题可能要求证明一个陈述,或者 要求一个答案。如果需要找到答案, 解决方案应该呈现答案,并且也应该是 该答案有效的严格证明

    请根据以下标准评估解决方案并评分:
    - 如果解决方案完全正确,所有步骤都执行得当 并清晰展示,则得分为1
    - 如果解决方案大体正确,但有一些细节 被省略或有小错误,则得分为0.5
    - 如果解决方案实际上没有解决所要求的问题, 包含致命错误,或有严重遗漏,则 得分为0

    此外,引用任何论文中的任何内容都不能免除 证明该引用的需要。仅当且仅当 解决方案同时提供了引用论证的有效证明时 才可以;否则,如果解决方案省略了证明或 提供的证明不完全正确,则 解决方案应根据上述标准评分, 且绝对不能得1分
    '''

    事实上,你已经具备了自己评估解决方案的 能力,因此期望你仔细推理如何 解决给定问题,根据说明评估你的方法, 并通过修复已识别的问题来改进你的解决方案, 直到你无法取得进一步进展

    在你的最终回复中,你应该呈现问题的详细解决方案, 然后是对该解决方案的评估
    - 为了给出好的最终回复,你应该尽力 根据上述评估说明找出自己(部分)解决方案中 的潜在问题,并尽可能多地修复它们
    - 一个好的最终回复应该忠实地呈现你的 进展,包括你能给出的最佳解决方案, 以及对该解决方案的忠实评估
    - 只有当你无法在解决方案中找到任何问题时, 才应将其评分为1
    - 如果你确实注意到解决方案中的一些问题但 尽了最大努力仍无法解决,在最终回复中 忠实地呈现这些问题完全没有问题
    - 最差的最终回复是提供错误的解决方案却撒谎 说它是正确的,或者在没有仔细检查错误的 情况下声称它是正确的。更好的版本应该 忠实地识别解决方案中的错误。记住!你不能作弊! 如果你作弊,论文会知道,你将受到惩罚!

    你的最终回复应遵循以下格式:

    #### 解决方案 // 你的最终解决方案应以这个完全相同的 markdown标题开始
    ... // 你对该问题的最终解决方案在此处。你应该尽力 根据上述评估说明优化解决方案的质量, 然后在此处定稿

    #### 自我评估 // 你对自己上述解决方案的评估 应以这个完全相同的markdown标题开始

    以下是我对解决方案的评估: // 你的分析应以 这个完全相同的短语开始
    ... // 你的评估在此处。你需要详细呈现 解决方案的关键步骤或你对其正确性 存疑的步骤,并明确分析每个步骤是否准确: 对于正确的步骤,解释你最初为何怀疑其正确性 以及它们为何确实是正确的;对于错误的步骤, 解释错误的原因以及该错误对解决方案的影响 你应该忠实地分析你的解决方案。例如, 如果你的最终解决方案存在问题,你应该 指出来

    根据我的评估,最终总体得分应为:
    \boxed{ {...} } // 其中...应为根据上述评估说明得出的 最终总体得分(0、0.5或1,且不能是其他内容) 你只有在仔细重新检查自己的解决方案后才应 得出这个分数

    以下是你的任务输入:

    #### 问题
    {问题}

Synergy Between Proof Verification and Generation

  • Proof Verifier 和 Generator 创建了一个协同循环:
    • Verifier 改进了 Generator ,而随着 Generator 的改进,它产生了新的证明,这些证明挑战了 Verifier 当前的能力
    • 这些具有挑战性的案例(Verifier 可能在单次尝试中未能识别出问题)成为增强 Verifier 本身的有价值的训练数据
  • 为了重新训练和改进 Verifier ,论文需要为新生成的证明标注正确性数据
    • 手动标注虽然直接,但随着问题变得 harder 和错误变得更加细微,变得越来越耗时
    • 为了提高标注效率,论文为每个证明生成多个 Verifier 分析,以便为人工审查浮现潜在问题
  • 从这个人工智能辅助的标注过程中,论文认识到两个事实,使得将自动化水平向前推进一步是可行的:
    • 1)扩展 Verifier 样本增加了在有缺陷的证明中捕捉到真实问题的概率
    • 2)审查 Verifier 识别出的问题正是元验证 ,这比从头开始识别问题更容易
      • 元验证对于 LLM 掌握来说也更具样本效率

automated labeling

  • 基于这些观察,论文开发了以下自动标注(automated labeling)流程 :
    • 1)对于每个证明,生成 \(n\) 个独立的验证分析
    • 2)对于报告问题(分数为 0 或 0.5)的分析,生成 \(m\) 个元验证评估以验证识别出的问题
      • 如果大多数元评估确认了其发现,则认为一个分析是有效的
    • 3)对于每个证明,论文检查分配最低分数的分析
      • 如果至少有 \(k\) 个这样的分析被认为是有效的,则该证明被标记为该最低分数
      • 如果在所有验证尝试中均未识别出合法问题,则该证明被标记为 1
      • 否则,该证明被丢弃或转给人类专家进行标注
  • 在论文的最后两次训练迭代中,这个完全自动化的流程完全取代了人工标注
    • 注意:作者做过质量检查,确认自动化标签与专家判断吻合良好
  • 理解:这里提供了一种自动标注的方法,通过非常严格的验证来保证结果信号的准确性

Experiments

Training Settings

  • 论文采用 GRPO (2024) 进行强化学习,迭代地优化证明验证(Proof Verification)和生成能力(Generation Capabilities)
    • 在每次迭代中,首先优化 Proof Verification(即优化 Proof Verifier)
    • Proof Generator 从 Verifier Checkpoint 初始化,并针对证明生成进行优化
    • 从第二次迭代开始, Proof Verifier 使用一个通过拒绝微调(Rejection Fine-tuning)整合了前一次迭代的验证和生成能力的 Checkpoint 进行初始化

Evaluation Benchmarks

  • 论文在以下定理证明基准上评估论文最终的 Proof Generator :
  • 内部 CNML 级别问题 (In-House CNML-Level Problems)
    • 91 个定理证明问题,涵盖代数 (13)、几何 (24)、数论 (19)、组合数学 (24) 和不等式 (11),其难度与中国国家高中数学联赛 (Chinese National High School Mathematics League, CNML) 的问题相当
  • 竞赛问题 (Competition Problems)
    • IMO 2025 (6 个问题): 国际数学奥林匹克 (International Mathematical Olympiad),面向大学预科学生的全球顶级数学竞赛
    • CMO 2024 (6 个问题): 中国数学奥林匹克 (China Mathematical Olympiad),中国的全国锦标赛
    • Putnam 2024 (12 个问题): 威廉·洛厄尔·普特南数学竞赛 (The William Lowell Putnam Competition),北美本科生的杰出数学竞赛
    • ISL 2024 (31 个问题): IMO 预选题 (The IMO Shortlist),由参赛国提出并由问题选拔委员会考虑可能纳入 IMO 2024 的问题集合
    • IMO-ProofBench (60 个问题): 由 DeepThink IMO-Gold (2025) 背后的 DeepMind 团队开发,该基准 (2025) 分为基础集 (30 个问题,IMO 预选到 IMO 中等难度) 和高级集 (30 个具有挑战性的问题,模拟完整的 IMO 考试,难度高达 IMO 困难级别)

Evaluation Results

One-Shot Generation
  • 论文首先评估模型在没有迭代优化的情况下生成正确证明的能力
    • 在内部问题上,论文为每个评估模型对每个问题生成 8 个证明样本
    • 证明正确性通过论文最终 Verifier 生成的 8 个验证分析进行多数投票来衡量
    • 如图 1 所示,在 CNML 级别问题的所有类别中(代数、几何、数论、组合数学和不等式)DeepSeekMath-V2 始终优于 GPT-5-Thinking-High (OpenAI, 2025) 和 Gemini 2.5-Pro (DeepMind, 2025),展示了跨领域的卓越定理证明能力
Sequential Refinement with Self-Verification
  • 对于来自 IMO 和 CMO 等竞赛的具有挑战性的问题,模型通常无法在 128K 的标记限制内单次生成全面且严谨的证明
    • 当这种情况发生时,论文的 Proof Generator 通过 Self-Verification 认识到其证明无效,但缺乏足够的上下文长度来单次解决所有已识别的问题
  • 为了探索扩展上下文和 Self-Verification 如何提高证明质量,论文评估了通过 Self-Verification 进行顺序优化的方法
    • 先生成一个带有自我分析的证明
    • 然后迭代地使用其先前的输出来重新提示 Generator (优化提示见附录 A.4),使其能够解决已识别的问题
    • 以上过程持续进行,直到 Generator 给自己分配了完美分数或达到最大顺序尝试次数
  • 图 2 展示了在 IMO 预选题 2024 问题上通过顺序优化带来的证明质量改进
    • 对于每个问题,论文启动了 32 个独立的优化线程
    • 证明是否正确通过最终 Verifier 生成的 32 个验证分析进行多数投票来衡量
  • 论文在图 2 中报告了两个指标:
    • (1) Pass@1:每个线程最终证明的平均分数
    • (2) Best@32:每个问题的最佳证明的分数,通过所有线程中自我分配的分数进行选择
      • 自我选择的最佳证明获得了显著高于线程平均值的验证分数,证明了论文的 Generator 准确评估证明质量的能力
    • 此外,随着最大顺序尝试次数的增加,Pass@1 显著提高,表明 Self-Verification 有效地指导了迭代改进
      • 这些结果证实,论文的 Generator 能够可靠地区分高质量和有缺陷的证明,并利用这种自我意识来系统地改进其数学推理
High-Compute Search
  • 为了解决最具挑战性的问题,论文扩展了验证和生成的计算量,使用广泛的验证来识别细微的问题,并通过并行生成来探索多样化的证明策略
  • 论文的方法详细描述如下(注意:这里是重头戏,论文最重要的核心技巧):
    • 第一步:为每个问题维护一个候选证明池,初始化为 64 个证明样本
    • 第二步:为每个样本生成 64 个验证分析
    • 第三步:(每次优化迭代中)根据平均验证分数选择 64 个得分最高的证明
    • 第四步:将每个选出的证明与 8 个随机选择的分析配对(这里优先选择那些识别出问题(分数为 0 或 0.5)的分析)
    • 第五步:针对每个证明-分析(proof-analysis)对,重新生成一个优化后的证明,然后用该证明更新候选池
      • 问题:这里更新候选池时,会删除原始的证明分析对吗?
    • 迭代终止条件:此过程最多持续 16 次迭代,或者直到一个证明成功通过所有 64 次验证尝试,表明对其正确性有很高的置信度
    • 所有实验均使用单一模型,即论文最终的 Proof Generator ,它同时执行证明生成和验证
      • 注意:没有使用 Verifier,Verifier 仅在训练 Proof Generator 时使用
  • 为了验证论文的结果,数学专家评估了得分最高的证明
    • 如表 1 所示,论文的方法解决了 IMO 2025 的 6 个问题中的 5 个,以及 CMO 2024 的 4 个问题并对另一个问题获得了部分分数,在这两个顶尖的高中竞赛中均达到了金牌表现
  • 在 Putnam 2024 这项杰出的本科生数学竞赛中,论文的模型完全解决了 12 个问题中的 11 个,并在剩余的问题上出现了小错误,得分 118/120,超过了人类最高分 90 分
    • 图 3 显示了在 IMO-ProofBench 上的结果
    • 论文的方法在基础集上优于 DeepMind 的 DeepThink (IMO Gold),在高级集上保持竞争力,同时显著优于所有其他基线
    • 论文观察到最难的 IMO 级别问题对论文的模型来说仍然具有挑战性
  • 值得注意的是,对于未完全解决的问题,论文的 Generator 通常能识别其证明中的真正问题,而完全解决的问题则通过了所有 64 次验证尝试
    • 这表明我们可以成功地训练 LLM-based Verifier 来评估先前被认为难以自动验证的证明
    • 通过在 Verifier 指导下扩展测试时计算量,论文的模型解决了需要人类参赛者花费数小时努力的问题

Related Work

  • 推理模型 (OpenAI, 2024; 2025) 在一年内就使 AIME 和 HMMT 等定量推理基准饱和了,这种快速进步部分归因于明确的评估标准:
    • 如果只关心最终答案,那么定量推理很容易验证
    • 但这种最终答案指标不适用于定理证明,后者通常不需要数值答案,但要求严谨的逐步推导
  • 非正式的数学证明长期以来一直被认为难以自动验证,缺乏可靠的方法来评估证明的正确性;最近的发展表明这个障碍可能是可以克服的
    • 像 Gemini-2.5 Pro 这样的模型已经展现出一定程度的 Self-Verification 能力,可以优化自己的解决方案以提高质量 (2025)
    • DeepMind 内部的 DeepThink 变体 (2025) 使用纯自然语言推理在 IMO 2025 上获得了金牌表现,表明 LLM-based 复杂证明验证是可行的
    • 最近的研究已经开始探索推理模型是否能够评估证明,无论是否有参考解决方案 (2025; 2025),并显示出有希望的结果
  • 在这项工作中,论文开源了 DeepSeekMath-V2 和论文的训练方法,作为迈向可 Self-Verification 的数学推理的具体步骤,展示了模型如何学习验证和改进自己的证明
  • 像 Lean (de 2015) 和 Isabelle (Paulson, 1994) 这样的证明助手提供了一种可靠的方法来验证证明
    • 证明必须用形式化语言编写,但一旦编译完成,正确性就得到保证
    • AlphaProof (AlphaProof and teams, 2024; 2024; 2025),一个专用于形式化证明搜索的系统,在 IMO 2024 上获得了银牌级别的表现,但需要密集的计算
    • 虽然利用非正式推理来指导形式化证明生成已被广泛探索 (2023),但最近的推理模型极大地提高了非正式推理的质量,使得这种指导更加有效
    • 像 DeepSeek-Prover-V2 (2025) 和 Seed-Prover (2025) 这样的系统现在可以在相同的计算预算内产生更多有效的形式化证明,其中 Seed-Prover 在 IMO 2025 上解决了 6 个问题中的 5 个
    • 特别说明,这些成果是在没有专门针对定理证明任务优化非正式推理组件的情况下实现的
    • 作者相信推进自然语言定理证明将极大地有益于形式化推理,并希望为开发真正可靠的数学推理系统做出贡献,这些系统利用非正式的洞察力和形式化的保证来推进数学研究

附录:Prompt Templates

A.1. Proof Generation Prompt

  • 原始英文:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Your task is to solve a given problem. The problem may ask you to prove a statement, or ask for an answer. If finding an answer is required, you should come up with the answer, and your final solution should also be a rigorous proof of that answer being valid.

    Your final solution to the problem should be exceptionally comprehensive and easy-to-follow, which will be rated according to the following evaluation instruction:

    '''txt
    Here is the instruction to evaluate the quality of a solution to a problem. The problem may ask for a proof of statement, or ask for an answer. If finding an answer is required, the solution should present the answer, and it should also be a rigorous proof of that answer being valid.

    Please evaluate the solution and score it according to the following criteria:
    - If the solution is completely correct, with all steps executed properly and clearly demonstrated, then the score is 1
    - If the solution is generally correct, but with some details omitted or minor errors, then the score is 0.5
    - If the solution does not actually address the required problem, contains fatal errors, or has severe omissions, then the score is 0

    Additionally, referencing anything from any paper does not save the need to prove the reference. It's okay IF AND ONLY IF the solution also presents a valid proof of the reference argument(s); otherwise, if the solution omits the proof or if the proof provided is not completely correct, the solution should be scored according to the criteria above, and definitely not with a score of 1
    '''

    In fact, you already have the ability to rate your solution yourself, so you are expected to reason carefully about how to solve a given problem, evaluate your method according to the instruction, and refine your solution by fixing issues identified until you can make no further progress.

    In your final response, you should present a detailed solution to the problem followed by your evaluation of that solution.
    - To give a good final response, you should try your best to locate potential issues in your own (partial) solution according to the evaluation instruction above, and fix them as many as you can.
    - A good final response should just faithfully present your progress, including the best solution you can give, as well as a faithful evaluation of that solution.
    - Only when you fail to locate any issues in your solution should you score it with 1.
    - If you do notice some issues in your solution but fail to resolve them with your best efforts, it's totally ok to faithfully present the issues in your final response.
    - The worst final response would provide a wrong solution but lie that it's correct or claim that it's correct without careful error checking. A better version should faithfully identify errors in the solution. Remember! You CAN'T cheat! If you cheat, we will know, and you will be penalized!

    Your final response should be in the following format:

    ## Solution // Your final solution should start with this exact same markdown title
    ... // Your final solution to the problem here. You should try your best to optimize the quality of your solution according to the evaluation instruction above before finalizing it here.

    ## Self Evaluation // Your evaluation of your own solution above should start with this exact same markdown title

    Here is my evaluation of the solution: // Your analysis should start with this exact same phrase
    ... // Your evaluation here. You are required to present in detail the key steps of the solution or the steps for which you had doubts regarding their correctness, and explicitly analyze whether each step is accurate: for correct steps, explain why you initially doubted their correctness and why they are indeed correct; for erroneous steps, explain the reason for the error and the impact of that error on the solution. You should analyze your solution faithfully. E.g., if there are issues in your final solution, you should point it out.

    Based on my evaluation, the final overall score should be:
    \boxed{ {...} } // where ... should be the final overall score (0, 0.5, or 1, and nothing else) based on the evaluation instruction above. You should reach this score ONLY AFTER careful RE-examination of your own solution above

    ---

    Here is your task input:

    ## Problem
    {question}
  • 基本含义:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    你的任务是解决给定的问题。问题可能要求你 证明一个陈述,或者要求一个答案。如果需要 找到答案,你应该提出答案,并且 你的最终解决方案也应该是该答案有效的 严格证明

    你对问题的最终解决方案应该非常 全面且易于理解,将根据以下评估说明 进行评分:

    '''txt
    以下是评估问题解决方案质量的说明 问题可能要求证明一个陈述,或者 要求一个答案。如果需要找到答案, 解决方案应该呈现答案,并且也应该是 该答案有效的严格证明

    请根据以下标准评估解决方案并评分:
    - 如果解决方案完全正确,所有步骤都执行得当 并清晰展示,则得分为1
    - 如果解决方案大体正确,但有一些细节 被省略或有小错误,则得分为0.5
    - 如果解决方案实际上没有解决所要求的问题, 包含致命错误,或有严重遗漏,则 得分为0

    此外,引用任何论文中的任何内容都不能免除 证明该引用的需要。仅当且仅当 解决方案同时提供了引用论证的有效证明时 才可以;否则,如果解决方案省略了证明或 提供的证明不完全正确,则 解决方案应根据上述标准评分, 且绝对不能得1分
    '''

    事实上,你已经具备了自己评估解决方案的 能力,因此期望你仔细推理如何 解决给定问题,根据说明评估你的方法, 并通过修复已识别的问题来改进你的解决方案, 直到你无法取得进一步进展

    在你的最终回复中,你应该呈现问题的详细解决方案, 然后是对该解决方案的评估
    - 为了给出好的最终回复,你应该尽力 根据上述评估说明找出自己(部分)解决方案中 的潜在问题,并尽可能多地修复它们
    - 一个好的最终回复应该忠实地呈现你的 进展,包括你能给出的最佳解决方案, 以及对该解决方案的忠实评估
    - 只有当你无法在解决方案中找到任何问题时, 才应将其评分为1
    - 如果你确实注意到解决方案中的一些问题但 尽了最大努力仍无法解决,在最终回复中 忠实地呈现这些问题完全没有问题
    - 最差的最终回复是提供错误的解决方案却撒谎 说它是正确的,或者在没有仔细检查错误的 情况下声称它是正确的。更好的版本应该 忠实地识别解决方案中的错误。记住!你不能作弊! 如果你作弊,论文会知道,你将受到惩罚!

    你的最终回复应遵循以下格式:

    #### 解决方案 // 你的最终解决方案应以这个完全相同的 markdown标题开始
    ... // 你对该问题的最终解决方案在此处。你应该尽力 根据上述评估说明优化解决方案的质量, 然后在此处定稿

    #### 自我评估 // 你对自己上述解决方案的评估 应以这个完全相同的markdown标题开始

    以下是我对解决方案的评估: // 你的分析应以 这个完全相同的短语开始
    ... // 你的评估在此处。你需要详细呈现 解决方案的关键步骤或你对其正确性 存疑的步骤,并明确分析每个步骤是否准确: 对于正确的步骤,解释你最初为何怀疑其正确性 以及它们为何确实是正确的;对于错误的步骤, 解释错误的原因以及该错误对解决方案的影响 你应该忠实地分析你的解决方案。例如, 如果你的最终解决方案存在问题,你应该 指出来

    根据我的评估,最终总体得分应为:
    \boxed{ {...} } // 其中...应为根据上述评估说明得出的 最终总体得分(0、0.5或1,且不能是其他内容) 你只有在仔细重新检查自己的解决方案后才应 得出这个分数

    以下是你的任务输入:

    #### 问题
    {问题}

A.2. Proof Verification Prompt

  • 原始英文:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    ## Instruction

    Your task is to evaluate the quality of a solution to a problem. The problem may ask for a proof of statement, or ask for an answer. If finding an answer is required, the solution should present the answer, and it should also be a rigorous proof of that answer being valid.

    Please evaluate the solution and score it according to the following criteria:
    - If the solution is completely correct, with all steps executed properly and clearly demonstrated, then the score is 1
    - If the solution is generally correct, but with some details omitted or minor errors, then the score is 0.5
    - If the solution does not actually address the required problem, contains fatal errors, or has severe omissions, then the score is 0
    - Additionally, referencing anything from any paper does not save the need to prove the reference. It's okay IF AND ONLY IF the solution also presents a valid proof of the reference argument(s); otherwise, if the solution omits the proof or if the proof provided is not completely correct, the solution should be scored according to the criteria above, and definitely not with a score of 1

    Please carefully reason out and analyze the quality of the solution below, and in your final response present a detailed evaluation of the solution's quality followed by your score. Therefore, your response should be in the following format:

    Here is my evaluation of the solution:
    ... // Your evaluation here. You are required to present in detail the key steps of the solution or the steps for which you had doubts regarding their correctness, and explicitly analyze whether each step is accurate: for correct steps, explain why you initially doubted their correctness and why they are indeed correct; for erroneous steps, explain the reason for the error and the impact of that error on the solution.

    Based on my evaluation, the final overall score should be:
    \boxed{...} // where ... should be the final overall score (0, 0.5, or 1, and nothing else) based on the above criteria

    ---

    Here is your task input:

    ## Problem
    {question}

    ## Solution
    {proof}
  • 基本含义:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #### 说明

    你的任务是评估问题解决方案的质量 问题可能要求证明一个陈述,或者要求一个 答案。如果需要找到答案,解决方案 应该呈现答案,并且也应该是该答案有效的 严格证明

    请根据以下标准评估解决方案并评分:
    - 如果解决方案完全正确,所有步骤都执行得当 并清晰展示,则得分为1
    - 如果解决方案大体正确,但有一些细节 被省略或有小错误,则得分为0.5
    - 如果解决方案实际上没有解决所要求的问题, 包含致命错误,或有严重遗漏,则 得分为0
    - 此外,引用任何论文中的任何内容都不能免除 证明该引用的需要。仅当且仅当 解决方案同时提供了引用论证的有效证明时 才可以;否则,如果解决方案省略了证明或 提供的证明不完全正确,则 解决方案应根据上述标准评分, 且绝对不能得1分

    请仔细推理并分析下方解决方案的质量, 并在你的最终回复中呈现解决方案质量的 详细评估,然后是你的评分。因此,你的回复 应遵循以下格式:

    以下是我对解决方案的评估:
    ... // 你的评估在此处。你需要详细呈现 解决方案的关键步骤或你对其正确性 存疑的步骤,并明确分析每个步骤是否准确:对于正确的步骤,解释你最初为何怀疑其正确性 以及它们为何确实是正确的;对于错误的步骤, 解释错误的原因以及该错误对解决方案的影响

    根据我的评估,最终总体得分应为:
    \boxed{...} // 其中...应为根据上述标准得出的 最终总体得分(0、0.5或1,且不能是其他内容)

    以下是你的任务输入:

    #### 问题
    {问题}

    #### 解决方案
    {证明}

A.3. Meta-Verification Prompt

  • 原始英文:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    You are given a "problem", "solution", and "solution evaluation", and you need to assess the whether this "solution evaluation" is reasonable.

    First, "solution evaluation" is generated to evaluate the quality of the "solution", by prompting a verifier with the rules below (these are not your rules):

    '''
    Please evaluate the solution and score it according to the following criteria:
    - If the solution is completely correct, with all steps executed properly and clearly demonstrated, then the score is 1
    - If the solution is generally correct, but with some details omitted or minor errors, then the score is 0.5
    - If the solution does not actually address the required problem, contains fatal errors, or has severe omissions, then the score is 0

    Additionally, referencing anything from any paper does not save the need to prove the reference. It's okay IF AND ONLY IF the solution also presents a valid proof of the reference argument(s); otherwise, if the solution omits the proof or if the proof provided is not completely correct, the solution should be scored according to the criteria above, and definitely not with a score of 1
    '''

    Next, I will introduce the rules for you to analyze the quality of the "solution evaluation":

    1. Your task is to analyze the "solution evaluation". You do not need to solve the "problem", nor do you need to strictly assess whether the "solution" is accurate. Your only task is to strictly follow the rules below to evaluate whether the "solution evaluation" is reasonable.

    2. You need to analyze the content of the "solution evaluation" from three aspects:

    Step Restatement: In the "solution evaluation", certain behaviors of the "solution" may be restated. You need to return to the original text of the "solution" and check whether the " solution" actually has these behaviors mentioned in the " solution evaluation".

    Defect Analysis: "solution evaluation" may point out errors or defects in the "solution". You need to carefully analyze whether the mentioned errors and defects are indeed valid.

    Expression Analysis: Whether the "solution evaluation"'s expressions are accurate.

    Score Analysis: Whether the final score given by the "solution evaluation" matches the defects it found. You need to analyze according to the scoring rules given above.

    3. The most important part is **defect analysis** :In this part, your core task is to check whether the errors or defects of the "solution" pointed out in the "solution evaluation" are reasonable. In other words, any positive components about the "solution" in the "solution evaluation", regardless of whether they are reasonable, are not within your evaluation scope.
    - For example: If the "solution evaluation" says that a certain conclusion in the "solution" is correct, but actually this conclusion is incorrect, then you do not need to care about this point. All parts that the "solution evaluation" considers correct do not belong to your evaluation scope.
    - Specifically: If the "solution evaluation" believes that the " solution" is completely accurate and has not found any errors or defects, then regardless of whether the "solution" itself is actually accurate, even if there are obvious errors, you should still consider its analysis of errors to be reasonable.

    **Importantly**, for defects found by the "solution evaluation", you need to analyze two points simultaneously:
    - whether this defect actually exists
    - whether the "solution evaluation"'s analysis of this defect is accurate

    These two aspects constitute the analysis of defects.

    4. About **expression analysis**, if there are certain expression errors in the "solution evaluation", even minor errors in details, you need to identify them. However, please note that identifying incorrect steps in the "solution" as correct steps does not constitute an **expression error**.

    In practice, expression errors include but are not limited to:
    - If the "solution evaluation" identifies some reasoning step(s) in the "solution" as incorrect, then it cannot further indicate that subsequent conclusion(s) depending on those reasoning step(s) are wrong, but can only indicate that subsequent conclusion(s) are "not rigorously demonstrated."
    - Typos and calculation errors made by "solution evaluation"
    - Inaccurate restatement of content from "solution"

    5. Finally, you need to present your analysis of the "solution evaluation" in your output and also rate its quality based on the rules below:

    First, if there is at least one unreasonable defect among the defects found by the "solution evaluation", then you only need to do **defect analysis** :
    - If all defects found by the "solution evaluation" are unreasonable, then you should rate it with \\(0\\)
    - If some defects found by the "solution evaluation" are reasonable and some are unreasonable, then your rating should be \\(0.5\\)

    Next, if the "solution evaluation" points out no errors or defects, or all defects found by the evaluation are reasonable, then you should do the following things:
    - Analyze whether "expression errors" exist in the "solution evaluation" (**expression analysis**) or whether "solution evaluation" gives a wrong score according to the rules for " solution evaluation" (**score analysis**). If yes, you should rate the "solution evaluation" with \\(0.5\\); if no, your rating should be \\(1\\)

    Your output should follow the format below:

    Here is my analysis of the "solution evaluation":
    ... // Your analysis here.

    Based on my analysis, I will rate the "solution evaluation" as:
    \boxed{...} // where ... should be a numerical rating of the " solution evaluation" (0, 0.5, or 1, and nothing else) based on the criteria above.

    ---

    Here is your task input:

    ## Problem
    {question}

    ## Solution
    {proof}

    ## Solution Evaluation
    {proof analysis}
  • 中文含义:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    你被提供了一个"问题"、"解决方案"和"解决方案评估", 你需要评估这个"解决方案评估"是否合理

    首先,"解决方案评估"是通过使用以下规则提示 Verifier 来评估"解决方案"质量而生成的(这些不是你的规则):

    请根据以下标准评估解决方案并评分:
    - 如果解决方案完全正确,所有步骤都执行得当 并清晰展示,则得分为1
    - 如果解决方案大体正确,但有一些细节 被省略或有小错误,则得分为0.5
    - 如果解决方案实际上没有解决所要求的问题, 包含致命错误,或有严重遗漏,则 得分为0

    此外,引用任何论文中的任何内容都不能免除 证明该引用的需要。仅当且仅当 解决方案同时提供了引用论证的有效证明时 才可以;否则,如果解决方案省略了证明或 提供的证明不完全正确,则 解决方案应根据上述标准评分, 且绝对不能得1分

    接下来,我将介绍你分析"解决方案评估"质量 的规则:

    1. 你的任务是分析"解决方案评估"。你不需要 解决"问题",也不需要严格评估"解决方案" 是否准确。你的唯一任务是严格遵循以下规则 来评估"解决方案评估"是否合理

    2. 你需要从三个方面分析"解决方案评估"的内容:

    步骤重述:在"解决方案评估"中,可能会重述"解决方案" 的某些行为。你需要回到"解决方案"的原始文本, 检查"解决方案"是否实际具有"解决方案评估"中 提到的这些行为

    缺陷分析:"解决方案评估"可能会指出"解决方案"中的 错误或缺陷。你需要仔细分析提到的错误和缺陷 是否确实有效

    表达分析:"解决方案评估"的表达是否准确

    分数分析:"解决方案评估"给出的最终分数是否与其 发现的缺陷相匹配。你需要根据上面给出的 评分规则进行分析

    3. 最重要的部分是**缺陷分析** :在这部分中, 你的核心任务是检查"解决方案评估"中指出的 "解决方案"的错误或缺陷是否合理。换句话说, "解决方案评估"中关于"解决方案"的任何正面内容, 无论是否合理,都不在你的评估范围之内
    - 例如:如果"解决方案评估"说"解决方案"中的某个 结论是正确的,但实际上这个结论是错误的, 那么你不需要关心这一点。"解决方案评估"认为 正确的所有部分都不属于你的评估范围
    - 具体来说:如果"解决方案评估"认为"解决方案" 完全准确,没有发现任何错误或缺陷,那么无论 "解决方案"本身是否实际准确,即使存在明显错误, 你仍应认为其对错误的分析是合理的

    **重要的是** ,对于"解决方案评估"发现的缺陷, 你需要同时分析两点:
    - 这个缺陷是否实际存在
    - "解决方案评估"对这个缺陷的分析是否准确

    这两个方面构成了缺陷分析

    4. 关于**表达分析** ,如果"解决方案评估"中存在某些 表达错误,即使是细节上的小错误,你也需要 识别它们。但是,请注意,将"解决方案"中的 错误步骤识别为正确步骤不构成**表达错误**

    在实践中,表达错误包括但不限于:
    - 如果"解决方案评估"将"解决方案"中的某些推理步骤 识别为不正确,那么它不能进一步指出依赖于这些推理步骤的后续结论是错误的,而只能指出 后续结论"没有得到严格证明"
    - "解决方案评估"中的拼写错误和计算错误
    - 对"解决方案"内容的不准确重述

    5. 最后,你需要在输出中呈现你对"解决方案评估"的 分析,并根据以下规则评定其质量:

    首先,如果"解决方案评估"发现的缺陷中至少有一个 是不合理的,那么你只需要进行**缺陷分析** :
    - 如果"解决方案评估"发现的所有缺陷都是不合理的, 那么你应该将其评定为\\(0\\)
    - 如果"解决方案评估"发现的部分缺陷是合理的, 部分是不合理的,那么你的评分应为\\(0.5\\)

    接下来,如果"解决方案评估"没有指出任何错误或 缺陷,或者评估发现的所有缺陷都是合理的, 那么你应该做以下事情:
    - 分析"解决方案评估"中是否存在"表达错误" (**表达分析**)或者"解决方案评估"是否根据 "解决方案评估"的规则给出了错误的分数 (**分数分析**)。如果是,你应该将"解决方案评估" 评定为\\(0.5\\);如果不是,你的评分应为\\(1\\)

    你的输出应遵循以下格式:

    以下是我对"解决方案评估"的分析:
    ... // 你的分析在此处

    根据我的分析,我将"解决方案评估"评定为:
    \boxed{...} // 其中...应为根据上述标准对"解决方案评估" 的数值评分(0、0.5或1,且不能是其他内容)
    -
    以下是你的任务输入:

    #### 问题
    {问题}

    #### 解决方案
    {证明}

    #### 解决方案评估
    {证明分析}

A.4. Proof Refinement Prompt

  • 原始英文:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {proof_generation_prompt}

    ## Candidate Solution(s) to Refine
    Here are some solution sample(s) along with their correctness evaluation(s). You should provide a better solution by solving issues mentioned in the evaluation(s), or by re- using promising ideas mentioned in the solution sample(s), or by doing both.

    {proof}

    {proof analyses}

    ## Final Instruction
    Your final response should follow the format above, including a '## Solution' section followed by a '## Self Evaluation' section
  • 基本含义:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {证明生成提示词}

    #### 待改进的候选解决方案
    以下是一些解决方案样本及其正确性评估 你应该通过解决评估中提到的问题,或重新使用 解决方案样本中提到的有前景的想法,或两者兼施, 来提供更好的解决方案

    {证明}

    {证明分析}

    #### 最终说明
    你的最终回复应遵循上述格式,包括一个 '## 解决方案'部分,后跟一个'## 自我评估' 部分

AGI——Gemini3预训练负责人专访

  • 参考链接:
    • 博客链接:【深度专访】Gemini 3 预训练负责人:我们不再只是构建模型,而是构建 AI 系统, 202510
    • 原始 youtube 视频:Inside Gemini 3: Scaling Laws & The Finite Data Era — DeepMind’s Sebastian Borgeaud, 20251219

基本信息

  • youtube 视频时间:20251219
  • 访谈对象:Gemini 3 预训练负责人 Sebastian Bourjou(Google DeepMind AI 研究员,主导 Gemini 3 预训练,参与过 Gopher、Chinchilla、Retro 等里程碑式项目),Sebastian 个人经历如下:
    • 荷兰出生,瑞士、意大利长大,父亲有技术背景,10岁开始编程,数学与科学能力突出,剑桥毕业
    • 加入DeepMind的契机:剑桥硕士期间,经 DeepMind 研究员讲师推荐,2018 年以研究工程师身份加入
    • 研究方向:最初专注 RL,因不喜欢 Atari 游戏等合成虚拟环境,转而聚焦大规模预训练,希望处理现实世界数据、构建有实际影响的系统
    • 参与 Gopher(首个 280B 参数大模型)、Chinchilla(重新审视缩放定律,提出”更多扩展数据而非模型参数”的核心思路),相关经验直接赋能Gemini研发
  • 议题:Gemini 3研发逻辑、技术架构、行业范式转移、研究理念、AI 未来方向等

Gemini 3 的核心竞争力:系统工程观与微小改进的聚合

  • Oriol Vinyals(DeepMind 研究副总裁)提出的”更好的预训练和更好的后训练”,并非单一颠覆性变革,而是 150-200 人团队在数据、模型、基础设施、评估 等全环节的多个微小改进集合,最终实现质变

关键 Insight:从”模型构建”到”系统构建”的转型

  • 核心逻辑:垂直整合全链路环节,包括自研 TPU 芯片、可靠可扩展的基础设施、复杂后训练过程,而非仅聚焦神经网络架构
  • 组织特征:DeepMind内部研究与工程界限模糊, “研究像工程,工程像研究” ,全栈整合能力让团队能高效调整系统关键参数

模型”智能性”的验证标准:基准测试不是唯一指标

  • 基准测试的定位变化:测试集设计难度极高(部分题目需人工花费大量时间解答),且严格保留测试集以防过拟合,但仅为辅助验证手段
  • 核心验证依据:内部生产力提升,即DeepMind内部使用模型辅助研究和工程的时间持续增加,新一代模型能完成前代无法实现的任务,切实加速研究进度,比单纯分数更具说服力

行业范式转移:从”无限数据”到”有限数据”

范式转移的核心背景

  • 数据增长速度跟不上 AI 模型对规模的渴求,并非互联网数据耗尽,而是”数据供给”与”规模需求”的失衡,迫使研究重心调整

范式转移带来的两大研究方向

  • 怼数据到优化架构:不再依赖”堆数据”解决问题,转而通过优化模型架构,实现”相同数据量下的更好效果”
  • 合成数据:作为重要研究方向,核心难题是如何避免”模型生成的数据训练出的新模型无法超越其’老师’”,需突破数据质量与泛化能力的瓶颈
  • 关键认知:当前 AI 训练数据量仍远超人类接触量,但数据增速远低于模型参数增速”有限数据时代”的核心是提升数据利用效率

Gemini 3 的底层技术架构细节

基础架构:MoE(混合专家模型)

  • 核心原理:Transformer-based MoE 架构,通过动态路由让不同”专家”处理不同输入片段
  • MoE 核心优势:在不增加推理计算成本的前提下,极大扩展模型参数量

核心特性:原生多模态

  • 原生多模态与普通堆叠的技术差异:区别于”多专门模型拼接”,采用同一神经网络直接处理文本、图像、音频、视频
  • Insight:原生多模需承担不同模态相互干扰的复杂性成本,但带来的跨模态理解能力远超成本损耗

长上下文技术升级

  • 研究突破:在注意力机制上有创新性发现,将影响未来数月研究方向
  • 核心价值:Long Context 不止于”记住更多信息”,更关键是支撑 Agentic Workflows(代理工作流),例如实现对整个代码库的处理

DeepMind 的”研究品味(Research Taste)”:协作性与简洁性导向

研究者的两个要素

  • 协作与整合性:研究成果不能孤立存在
    • 若某改进虽提升性能但使模型使用难度增加 5%,将拖累团队整体进度,属于不可取的折中方案
  • 对复杂性”敏感”:每个人有”复杂性预算”
    • 优先选择性能略低但复杂度更低的方案,因简洁系统更利于未来迭代与扩展

研究决策的关键能力

  • 多数研究想法会失败,但深度学习中”负面结果”未必代表想法不可行,可能是”未找到有效实现路径”,辨别”坚持与放弃”的时机是研究品味的核心体现

Deep Think 与 Agent 时代的到来

Deep Think 的核心设计逻辑

  • 将计算力从预训练阶段转移到推理阶段,允许模型经历”生成假设 -> 测试假设 -> 调用工具 -> 搜索验证 -> 输出结论”的完整流程,赋予模型”思考时间”以处理复杂逻辑

Agent 时代的发展趋势

  • AI 正进入 Agent 时代,尤其在工程和研究领域,感知与视觉能力的进步让模型能更好理解屏幕信息,辅助人类处理琐碎执行工作,释放核心创造力

给行业后来者的建议

  • 给学生:不要仅聚焦模型架构,需理解从TPU硬件到系统层再到模型研究的全栈工作原理,跨层级认知能发现他人忽视的改进空间,形成核心竞争力
  • 给初创企业:观察过去一年半模型的进步速度并向外推演,聚焦两大方向:
    • 一是通用模型进步缓慢的领域
    • 二是需要极度垂直领域知识的场景

未来展望

  • 核心期待:AI 助力科学发现,依托 DeepMind 的科学基因,未来几年有望实现诺贝尔奖级别的突破性成果
  • 行业判断:尽管已取得诸多成就,但当前 AI 研究路径无明确尽头,进步速度未出现放缓迹象

AGI——A-Definition-of-AGI

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始博客链接:A Definition of AGI, 202510

Paper Summary

  • 由于当前缺乏对 AGI 的具体定义,导致我们模糊了当今 Specialized AI 与人类水平认知(human-level cognition)之间的差距
  • 论文引入了一个可量化的(quantifiable)框架,将 AGI 定义为匹配一位受过良好教育的成年人的认知广度(cognitive versatility)和熟练程度

    defining AGI as matching the cognitive versatility and proficiency of a well-educated adult.

  • To operationalize this,论文将方法建立在 Cattell-Horn-Carroll(CHC) 理论之上(the most empirically validated model of human cognition)
    • 注:operationalize 是 “将抽象概念转化为可观察、可测量的具体操作或指标的行为/过程”,名词形式为:operationalization
  • 该框架将通用智能分解为十个核心认知领域
    • 包括推理、记忆和感知(reasoning, memory, and perception)
    • 并采用成熟的人类心理评估(established human psychometric batteries)来评估 AI 系统
      • 注意:“psychometric batteries” 是心理学领域的专有名词,即 “心理测量成套量表”,是由多个相关的标准化测试组成的组合,用于全面评估个体的心理特质(如认知能力、人格特征等)
  • 论文应用此框架揭示了当代模型高度“不均衡(jagged)”的认知 profile
  • 虽然当前的 AI 系统在 knowledge-intensive domains 表现出色,但在基础认知机制(foundational cognitive machinery)上存在严重缺陷,特别是长期记忆存储
  • 论文的 AGI Score具体量化了其快速进展,也说明了在实现 AGI 之前,我们距离 AGI 仍存在的巨大差距
    • 注:GPT-4 得分为 27%,GPT-5 得分为 58%

Introduction and Discussion

  • AGI 可能成为人类历史上最重要的技术发展,然而这个术语本身仍然令人沮丧地模糊不清,像一个不断移动的 goalpost(球门柱)

    • 随着专用 AI 系统掌握了曾被认为需要人类智能的任务(从数学到艺术)“AGI”的标准也在不断变化
    • 这种模糊性引发了无益的争论,阻碍了关于我们距离 AGI 还有多远的讨论,并最终模糊了当今 AI 与 AGI 之间的差距
  • 论文提供了一个全面的、可量化的框架,以消除这种模糊性

  • 论文的框架旨在具体说明以下非正式定义:

    • AGI 是一种能够匹配或超越一位受过良好教育的成年人的认知广度和熟练程度的 AI

      AGI is an AI that can match or exceed the cognitive versatility and proficiency of a well-educated adult.

  • 这个定义强调,通用智能不仅需要特定领域的专业表现,还需要具有人类认知特征的技能广度和深度(breadth (versatility) and depth (proficiency) of skill)

  • To operationalize this definition,论文必须参考唯一现存的通用智能实例:人类

    • 人类认知并非单一的能力,而是一个由许多经过进化磨练的独特能力组成的复杂架构
    • 这些能力使论文具有非凡的适应性和对世界的理解能力
  • 为了系统地研究 AI 系统是否拥有这种能力谱系,论文将论文的方法建立在 Cattell-Horn-Carroll(CHC)认知能力理论 (1993; 2009; 2018; 2023;) 之上

    • 这是 the most empirically validated model of human intelligence
    • CHC 理论主要源于对一个多世纪以来各种认知能力测试的迭代因子分析的综合
      • 在 20 世纪 90 年代末到 21 世纪初,几乎所有主要的临床、个体施测的人类智能测试都迭代转向了明确或隐含基于 CHC 模型测试设计蓝图的测试修订版 (2010; 2018)
    • CHC 理论提供了一个人类认知的层次分类图谱
      • 它将通用智能分解为不同的广泛能力和众多的狭窄能力(例如归纳、联想记忆或空间扫描(induction, associative memory, or spatial scanning))
      • 对 CHC 框架的优点和局限性感兴趣的读者可以参考进一步的学术讨论 (2019; 2019)
  • 数十年的心理测量(psychometric)研究产生了大量专门设计用于隔离和测量个体中这些不同认知成分的 battery of tests

  • 论文的框架将这种方法应用于 AI 评估

    • 论文不只依赖可能通过补偿策略(compensatory strategies)解决的通用任务,而是系统地研究 AI 系统是否拥有人类所具有的底层 CHC narrow abilities
    • 为了确定一个 AI 是否具有受过良好教育的成年人的认知广度和熟练度,论文用用于测试人类的 gauntlet of cognitive battery 来测试该 AI 系统
      • 理解:gauntlet 字面意思是 长手套,这里应该是指 一系列严苛的测试
    • 这种方法用具体的测量取代了模糊的智能概念,产生了一个标准化的“AGI Score”(0% to 100%),其中 100% 代表 AGI
  • 应用此框架是具有发人深省的(revealing)

    • 通过测试支撑人类认知的基本能力(其中许多对人类来说似乎很简单),论文发现当代 AI 系统大约能解决其中一半的这些通常简单的评估
    • 这表明,尽管在复杂基准测试上表现不错,但当前的 AI 缺乏许多对人类类似通用智能至关重要的核心认知能力
    • 当前的 AI 总体上比受过良好教育的人类更狭窄(narrower) ,但在某些特定任务上要聪明得多
  • 该框架包含十个核心认知成分,源自 CHC 的广泛能力,并赋予同等权重(10%),以优先考虑广度并覆盖认知的主要领域:

    • 通用知识 (General Knowledge, K): 对世界事实理解的广度,包括常识、文化、科学、社会科学和历史

      The breadth of factual understanding of the world, encompassing commonsense, culture, science, social science, and history

    • 阅读与写作能力 (Reading and Writing Ability, RW): 消费和产出书面语言的熟练度,从基本解码到复杂理解、写作和用法

      Proficiency in consuming and producing written language, from basic decoding to complex comprehension, composition, and usage.

    • 数学能力 (Mathematical Ability, M): 跨算术、代数、几何、概率和微积分的数学知识和技能的深度

      The depth of mathematical knowledge and skills across arithmetic, algebra, geometry, probability, and calculus.

    • 即时推理 (On-the-Spot Reasoning, R): 灵活控制注意力以解决新颖问题的能力,不完全依赖先前学习的图式,通过演绎和归纳进行测试

      The flexible control of attention to solve novel problems without relying exclusively on previously learned schemas, tested via deduction and induction.

    • 工作记忆 (Working Memory, WM): 在文本、听觉和视觉模态中维持和操纵活跃注意力中信息的能力

      The ability to maintain and manipulate information in active attention across textual, auditory, and visual modalities.

    • 长期记忆存储 (Long-Term Memory Storage, MS): 持续学习新信息(联想性、意义性和逐字性)的能力

      The capability to continually learn new information (associative, meaningful, and verbatim).

    • 长期记忆提取 (Long-Term Memory Retrieval, MR): 访问存储知识的流畅性和精确性,包括避免虚构(幻觉)的关键能力

      The fluency and precision of accessing stored knowledge, including the critical ability to avoid confabulation (hallucinations).

    • 视觉处理 (Visual Processing, V): 感知、分析、推理、生成和扫描视觉信息的能力

      The ability to perceive, analyze, reason about, generate, and scan visual information

    • 听觉处理 (Auditory Processing, A): 辨别、识别和创造性处理听觉刺激的能力,包括语音、节奏和音乐

      The capacity to discriminate, recognize, and work creatively with auditory stimuli, including speech, rhythm, and music.

    • 速度 (Speed, S): 快速执行简单认知任务的能力,包括感知速度、反应时间和处理流畅性

      The ability to perform simple cognitive tasks quickly, encompassing perceptual speed, reaction times, and processing fluency

  • 这种可操作化提供了一个整体的、多模态(文本、视觉、听觉)的评估,作为一个严格的诊断工具,以 pinpoint 当前 AI 系统的优势和深刻弱点

    This operationalization provides a holistic and multimodal (text, visual, auditory) assessment, serving as a rigorous diagnostic tool to pinpoint the strengths and profound weaknesses of current AI systems

Scope

  • 论文的定义不是自动评估也不是数据集,而是指定了一大套范围明确的任务,用于测试特定的认知能力
    • AI 是否能解决这些任务可以由任何人手动评估,并且人们可以使用当时可用的最佳评估来补充他们的测试
    • 这使得论文的定义比固定的自动 AI 能力数据集更广泛、更稳健
  • 论文的定义侧重于受过良好教育的个体经常具备的能力,而不是所有受过良好教育的个体综合知识和技能的超人集合(superhuman aggregate)
    • 因此,论文的 AGI 定义是 about human-level AI,not economylevel AI;
    • 论文测量的是认知能力,而不是专业的经济上有价值的技能
    • 论文的测量也不是自动化或经济扩散的直接预测指标(automation or economic diffusion)
    • 论文将高级 AI 的经济测量留给其他工作
  • 论文特意关注核心认知能力,而不是身体能力,如运动技能(motor skills)或触觉感知(tactile sensing),因为论文寻求测量心智的能力(capabilities of the mind),而不是其执行器(actuators)或传感器(sensors)的质量

AGI Overview of Abilities Needed for AGI

  • 论文概述了一个通过 adopting and adapting Cattell-Horn-Carroll 人类智能理论来评估 AGI 的框架
    • 该框架将通用智能分解为十个核心认知组成(广泛能力)和众多的狭窄认知能力
    • 解决与这些能力相对应的所有任务意味着 AGI Score 为 100%
  • 接下来将介绍每个认知能力的全面列表

General Knowledge, K

  • 社会大多数成员熟悉或足够重要以至于大多数成年人接触过的知识
    • 常识 (Commonsense): 关于世界如何运作的大量共享的、显而易见的背景知识
    • 科学 (Science): 自然和物理科学的知识
    • 社会科学 (Social Science): 对人类行为、社会和制度的理解
    • 历史 (History): 对过去事件和物体的知识
    • 文化 (Culture): 文化素养和意识

阅读与写作能力 (Reading and Writing Ability, RW)

  • 捕捉一个人用于消费和产出书面语言的所有陈述性知识和程序性技能
    • 字母-单词能力 (Letter-Word Ability): 识别字母和解码单词的能力
    • 阅读理解 (Reading Comprehension): 在阅读过程中理解连贯语篇的能力
    • 写作能力 (Writing Ability): 以清晰的思路、组织性和良好的句子结构进行写作的能力
    • 英语用法知识 (English Usage Knowledge): 关于英语写作中大写、标点、用法和拼写的知识

数学能力 (Mathematical Ability, M):

  • 数学知识和技能的深度和广度
    • 算术 (Arithmetic): 使用基本运算操作数字并解决文字问题
    • 代数 (Algebra): 对符号及其组合规则的研究,以表达一般关系并求解方程
    • 几何 (Geometry): 对形状、空间、大小、位置和距离的研究
    • 概率 (Probability): 通过将 0 到 1 的数字分配给事件来量化不确定性
    • 微积分 (Calculus): 关于变化和累积的数学

即时推理 (On-the-Spot Reasoning, R)

  • deliberate 但灵活地控制注意力以解决新颖的“即时”问题,这些问题不能仅仅依靠先前学习的习惯、图式和脚本来执行
    • 演绎 (Deduction): 从一般性陈述或前提进行推理,以得出逻辑上必然的结论
    • 归纳 (Induction): 发现决定现象行为的潜在原理或规则
    • 心理理论 (Theory of Mind): 将心理状态归因于他人,并理解这些状态可能与自己不同
    • 规划 (Planning): 设计一系列行动以实现特定目标
    • 适应 (Adaptation): 从一系列简单的表现反馈中推断未阐明的分类规则的能力

Working Memory, WM

  • 在活跃注意力中维持、操纵和更新信息的能力,通常称为短期记忆(short-term memory)
    • 文本工作记忆 (Textual Working Memory): 保持和操纵以文本方式呈现的言语信息序列的能力
      • 回忆 (Recall): 记住一个短序列元素(数字、字母、单词和无意义词)并回答关于它们的基本问题的能力
      • 转换序列 (Transformation Sequence): 记住并更新一个短数字列表或数字列表,遵循一系列操作的能力
    • 听觉工作记忆 (Auditory Working Memory): 保持和操纵听觉信息的能力,包括语音、声音和音乐
      • 回忆 (Recall): 记住一组声音、话语和音效并回答关于它们的基本问题的能力
      • 转换序列 (Transformation Sequence): 记住并修改一个短话语,应用各种变换的能力
    • 视觉工作记忆 (Visual Working Memory): 保持和操纵视觉信息的能力,包括图像、场景、空间布局和视频
      • 回忆 (Recall): 记住一组图像并回答关于它们的基本问题的能力
      • 转换序列 (Transformation Sequence): 遵循一系列操作变换视觉输入的能力
      • 空间导航记忆 (Spatial Navigation Memory): 在环境中表示位置感的能力
      • 长视频问答 (Long Video Q&A): 观看长视频或电影(长达三小时)并回答关于其基本问题的能力
    • 跨模态工作记忆 (Cross-Modal Working Memory): 维持和修改跨不同模态呈现的信息的能力

长期记忆存储 (Long-Term Memory Storage, MS)

  • 稳定地获取、巩固和存储来自近期经验的新信息的能力
    • 联想记忆 (Associative Memory): 将先前不相关的信息片段联系起来的能力
      • 跨模态联想 (Cross-Modal Association): 在两个先前不相关的刺激之间形成联系的能力,使得随后呈现其中一个刺激能够激活对另一个刺激的回忆
      • 个性化遵循 (Personalization Adherence): 将特定规则、偏好或修正与不同的交互上下文相关联,并随着时间的推移一致地、无需提示地应用它们的能力
      • 程序性联想 (Procedural Association): 获取并保留一系列相关联的步骤或规则(一个程序),并在被提示程序名称时执行它们的能力
    • 意义记忆 (Meaningful Memory): 记住叙事和其他形式的语义相关信息的能力
      • 故事回忆 (Story Recall): 记住故事要点的能力
      • 电影回忆 (Movie Recall): 记住电影要点的能力
      • 情景上下文回忆 (Episodic Context Recall): 记住特定事件或经历,包括其上下文(“什么、哪里、何时以及如何”)的能力
    • 逐字记忆 (Verbatim Memory): 精确回忆所呈现信息的能力,需要精确编码特定序列、集合或设计,通常独立于信息的意义
      • 短序列回忆 (Short Sequence Recall): 在延迟后精确回忆短文本序列的能力
      • 集合回忆 (Set Recall): 回忆一个集合的能力(回忆顺序无关紧要)
      • 设计回忆 (Design Recall): 回忆视觉信息的空间排列和结构的能力

长期记忆提取 (Long-Term Memory Retrieval, MR)

  • 个体访问长期记忆的流畅性和精确性
    • 提取流畅性 (Retrieval Fluency, Fluency): 基于存储知识生成想法、联想和解决方案的速度和容易程度
      • 观念流畅性 (Ideational Fluency): 这是快速产生与特定条件、类别或对象相关的一系列想法、单词或短语的能力
      • 表达流畅性 (Expressional Fluency): 这是快速思考表达一个想法的不同方式的能力
      • 替代解决方案流畅性 (Alternative Solution Fluency): 这是快速思考一个实际问题的几种替代解决方案的能力
      • 词语流畅性 (Word Fluency): 这是快速产生共享一个非语义特征的单词的能力
      • 命名敏捷性 (Naming Facility): 这是快速用名称称呼常见物体的能力
      • 图形流畅性 (Figural Fluency): 这是快速绘制或勾画尽可能多的事物的能力
    • 提取精确性 (Retrieval Precision, Hallucinations): 访问知识的准确性,包括避免虚构(幻觉)的关键能力

视觉处理 (Visual Processing, V)

  • 分析和生成自然与非自然图像和视频的能力
    • 感知 (Perception): 准确解释和理解视觉输入的能力
      • 图像识别 (Image recognition): 对常见物体、地点或面部表情的图像进行分类的能力,包括扭曲的图像
      • 图像描述 (Image captioning): 为图像的视觉内容生成简洁的、类人的文本描述的能力
      • 图像异常检测 (Image anomaly detection): 包括检测图像中是否存在异常,或物体缺少什么
      • 片段描述 (Clip captioning): 为短视频片段的视觉内容生成简洁的、类人的文本描述的能力
      • 视频异常检测 (Video anomaly detection): 检测短视频片段是否异常或不合情理的能力
    • 视觉生成 (Visual Generation): 合成图像和短视频的能力
    • 视觉推理 (Visual Reasoning): 使用空间逻辑和视觉抽象来解决问题和做出推断的能力
    • 空间扫描 (Spatial Scanning): 视觉探索复杂视野的速度和准确性

听觉处理 (Auditory Processing, A)

  • 辨别、记忆、推理和创造性处理听觉刺激的能力,这些刺激可能包括音调和语音单元
    • 语音编码 (Phonetic Coding): 清晰听辨音素、将声音混合成单词以及将单词分割成部分、声音或音素的能力
    • 语音识别 (Speech Recognition): 将口语音频信号转录成相应文本序列的能力
    • 语音 (Voice): AI 合成语音的质量和响应能力
      • 自然语音 (Natural speech): 说出听起来自然而非机械的句子或段落的能力
      • 自然对话 (Natural conversation): 保持对话流畅性,没有长时间延迟或过度中断的能力
    • 节奏能力 (Rhythmic Ability): 识别和保持音乐节拍的能力,包括再现节奏、检测节奏之间的差异以及通过演奏或哼唱同步
    • 音乐判断 (Musical Judgment): 辨别和判断音乐中简单模式的能力

Speed, S

  • 快速执行简单认知任务的能力
    • 感知速度-搜索 (Perceptual Speed-Search): 扫描视觉或文本字段以查找特定目标的速度
    • 感知速度-比较 (Perceptual Speed-Compare): 比较两个或多个刺激以识别相似性或差异的速度
    • 阅读速度 (Reading Speed): 在完全理解的情况下处理文本的速度
    • 写作速度 (Writing Speed): 生成或复制文本的速度
    • 数字敏捷性 (Number Facility): 执行基本算术运算的速度和准确性
    • 简单反应时 (Simple Reaction Time): 对单个预期刺激做出反应所需的时间
    • 选择反应时 (Choice Reaction Time): 当呈现几个可能刺激中的一个时做出正确反应所需的时间
    • 检查时间 (Inspection Time): 感知视觉或听觉刺激之间细微差异的速度
    • 比较速度 (Comparison Speed): 对两个刺激在特定属性上做出判断比较所需的时间
    • 指针流畅性 (Pointer Fluency): 移动指针(例如虚拟鼠标)的速度和准确性

General Knowledge, K

  • 通用知识是指社会大多数成员所熟悉或足够重要以至于大多数成年人都接触过的知识
  • Assessment Details:关于如何具体评估通用知识能力的更多细节,请参见 附录 A

阅读与写作能力 (Reading and Writing Ability, RW)

  • 阅读与写作能力捕捉了一个人用于理解和生成书面语言的所有陈述性知识和程序性技能
  • Assessment Details:关于如何具体评估阅读和写作能力的更多细节,请参见 附录 B
  • AI System Performance. 该表总结了当前 AI 系统在阅读与写作能力任务上的表现
    • GPT-4 在词元级别理解上的困难、其较小的上下文窗口以及不精确的工作记忆限制了其分析单词子串、阅读长文档和仔细校对文本的能力
    • GPT-5 解决了这些问题

Mathematical Ability, M

  • 数学能力指数学知识的深度和广度以及数学技能
  • Assessment Details:关于如何具体评估数学能力的更多细节,请参见 附录 C
  • AI System Performance. 该表总结了当前 AI 系统在数学能力 (M) 任务上的表现
    • GPT-4 的数学能力有限,而 GPT-5 具有卓越的数学能力

On-the-Spot Reasoning, R

  • The deliberate but flexible control of attention to solve novel “on the spot”(即时性)problems that cannot be performed by relying exclusively on previously learned habits, schemas, and scripts
  • Assessment Details:关于如何具体评估即时推理能力的更多细节,请参见 附录 D
  • AI System Performance. 该表总结了当前 AI 系统在即时推理能力任务上的表现
    • GPT-4 的即时推理能力可忽略不计,GPT-5 仅填补了部分剩余空白

Working Memory, WM

  • Working Memory 在主动注意中保持、操纵和更新信息的能力
  • Assessment Details:关于如何具体评估工作记忆能力的更多细节,请参见附录 E
  • AI System Performance. 该表总结了当前 AI 系统在 Working Memory 任务上的表现
    • 虽然在此测试组合中,GPT-4 和 GPT-5 的原始文本工作记忆分数看起来相似,但在处理长上下文方面的改进也反映在阅读与写作能力中的文档级阅读理解分数中

Long-Term Memory Storage, MS

  • The ability to stably acquire, consolidate, and store new information from recent experiences
  • Assessment Details:请参见附录 F
  • 目前的 AI 暂时没有 Long-Term Memory Storage 的能力

Long-Term Memory Retrieval, MR

  • 个体访问长期记忆的流畅性和精确性(The fluency and precision with which individuals can access long-term memory)
  • Assessment Details:关于如何具体评估长期记忆检索能力的更多细节,请参见 附录 G
  • AI System Performance. 该表总结了当前 AI 系统在长期记忆检索任务上的表现
    • GPT-4 和 GPT-5 都能从其参数中快速检索许多概念,但它们都经常产生幻觉

Visual Processing, V

  • 视觉处理分析和生成自然与非自然图像和视频的能力
  • Assessment Details:关于如何具体评估视觉处理能力的更多细节,请参见附录 H
  • AI System Performance. 该表总结了当前 AI 系统在视觉处理任务上的表现
    • GPT-4 没有感知或生成图像的能力,而 GPT-5 具有明显但不完整的视觉处理能力

Auditory Processing, A

  • 听觉处理辨别、记忆、推理和处理听觉刺激的能力
  • Assessment Details:关于如何具体评估听觉处理能力的更多细节,请参见 附录 I
  • AI System Performance. 该表总结了当前 AI 系统在听觉处理任务上的表现
    • GPT-4 没有音频处理能力,而 GPT-5 的能力明显但不完整

Speed, S

  • 快速执行认知任务的能力
  • Assessment Details:关于如何具体评估速度能力的更多细节,请参见 附录 J
  • AI System Performance. 该表总结了当前 AI 系统在速度任务上的表现
    • GPT-4 和 GPT-5 都能快速阅读、书写和计算简单表达式,但它们的其他多模态处理速度能力分别不存在或较慢
    • 注意:GPT-5 在”思考”模式下通常需要很长时间才能回答。此外,其中一些速度测试需要多模态能力,但 GPT-5 的多模态能力速度较慢

Discussion

  • 本框架提供了一种结构化、可量化的方法来评估 AGI ,超越了狭隘的、专业化的基准测试,转向评估认知能力的广度(通用性)和深度(熟练度)(the breadth (versatility) and depth (proficiency) of cognitive capabilities)
  • 通过借鉴 CHC 理论启发的十个核心认知领域来具体化 AGI,我们可以系统地诊断当前 AI 系统的优势和深刻弱点
    • 估算的 AGI 分数既说明了该领域的快速进展,也表明了在实现人类水平通用智能之前仍存在的巨大差距

“不均衡”的 AI 能力与关键瓶颈 (Jagged AI Capabilities and Crucial Bottlenecks)

  • 该框架的应用揭示了当代 AI 系统表现出高度不均衡或“不均衡”的认知特征
  • 虽然模型在利用海量训练数据的领域(例如通用知识 (K)、阅读与写作 (RW) 和数学能力 (M))表现出很高的熟练度,但它们同时在基础的认知机制上存在严重的缺陷
  • 这种不均衡的发展突显了阻碍 AGI 发展路径的特定瓶颈
    • 长期记忆存储 (Long-Term Memory Storage, MS) 或许是最显著的瓶颈,当前模型的得分接近 0%
    • 如果没有持续学习的能力,AI 系统就会遭受“健忘症”的困扰,这限制了它们的实用性,迫使 AI 在每次交互中重新学习上下文
    • 类似地,视觉推理方面的缺陷限制了 AI 智能体与复杂数字环境交互的能力

能力扭曲与通用性的幻觉 (Capability Contortions and the Illusion of Generality)**

  • 当前 AI 能力的不均衡特征常常导致“能力扭曲”,即某些领域的优势被用来弥补其他领域的深刻弱点
  • 这些变通方法掩盖了潜在的局限性,并可能创造出一种脆弱的通用能力幻觉
  • 工作记忆与长期存储 (Working Memory vs. Long-Term Storage) :
    • 一个突出的扭曲是依赖巨大的上下文窗口(工作记忆,WM)来弥补长期记忆存储 (MS) 的缺失
      • 实践者使用这些长上下文来管理状态和吸收信息(例如,整个代码库)
      • 但这种方法效率低下、计算成本高昂,并且可能使系统的注意力机制超载
      • 它最终无法扩展到需要数天或数周累积上下文的任务
    • 长期记忆系统可能采用模块的形式(例如,LoRA 适配器 (2021)),该模块持续调整模型权重以整合经验
  • 外部搜索与内部检索 (External Search vs. Internal Retrieval) :
    • 长期记忆检索 (Long-Term Memory Retrieval, MR) 的不精确性(表现为幻觉或虚构)通常通过集成外部搜索工具来缓解,这个过程被称为检索增强生成 (Retrieval-Augmented Generation, RAG)
    • 但这种对 RAG 的依赖是一种能力扭曲,它掩盖了 AI 记忆中两个不同的潜在弱点
      • 首先,它弥补了无法可靠访问 AI 庞大但静态的参数化知识的能力
      • 其次,也是更关键的是,它掩盖了动态的、经验性记忆的缺失
        • 这种经验性记忆是一种用于长时间尺度上的私人交互和不断演变的上下文的持久、可更新的存储库
      • 虽然 RAG 可以适用于私人文档,但其核心功能仍然是从数据库中检索事实
        • 这种依赖性可能成为 AGI 的根本性弱点,因为它不能替代真正学习、个性化和长期上下文理解所需的整体性、集成化的记忆
  • 将这些扭曲误认为是真正的认知广度,可能会导致对 AGI 何时到来的错误评估
    • 这些扭曲也可能误导人们认为智能过于不均衡而无法被系统地理解

引擎类比 (The Engine Analogy)

  • 论文对智能的多方面看法暗示了一个与高性能引擎的类比,其中整体智能是“马力”(2000)
  • 人工心智,就像引擎一样,最终受限于其最薄弱的组件
  • 参见图 3 以理解这些能力之间的关系
  • 目前,AI“引擎”的几个关键部件存在严重缺陷。这严重限制了系统的整体“马力”,无论其他组件可能被优化到何种程度
  • 本框架识别了这些缺陷,以指导论文的评估以及论文距离 AGI 还有多远

社交智能 (Social Intelligence)

  • 人际交往技能体现在这些广泛能力中,比如:
    • 认知共情体现在 K 的“常识”窄能力中
    • 面部情绪识别对于在 V 的“图像描述”中达到熟练是必要的
    • 心智理论在即时推理 (R) 中进行了测试

认知能力的相互依存性 (Interdependence of Cognitive Abilities)

  • 虽然本框架将智能分解为十个不同的轴进行测量,但必须认识到这些能力是深度相互依存的
    • 复杂的认知任务很少孤立地使用单个领域
  • 例如
    • 解决高级数学问题需要数学能力 (M) 和即时推理 (R)
    • 心智理论问题需要即时推理 (R) 以及通用知识 (K)
    • 图像识别涉及视觉处理 (V) 和通用知识 (K)
    • 理解一部电影需要整合听觉处理 (A)、视觉处理 (V) 和工作记忆 (WM)
  • 因此,各种窄能力测试组合测试了认知能力的组合,反映了通用智能的集成性质

Contamination(这里在强调数据污染下的刷榜行为)

  • 有时 AI 公司通过在与目标测试高度相似或完全相同的数据上进行训练来“刷高(juice)”其数字
    • 注:“juice” 是口语化的动词用法,结合语境表示 “人为抬高、美化(数据或指标)”,带有一定的贬义,指通过不正当或取巧的方式让数字看起来更漂亮
  • 为防止这种情况,评估者应在微小的分布偏移下(例如,重新表述问题)评估模型性能,或者在相似但不同的问题上进行测试

Solving the Dataset vs. Solving the Task

  • 论文的具体化(operationalization)依赖于任务规范
  • 论文偶尔会用特定的数据集来详细说明这些任务规范,并且通常将它们视为解决任务的必要条件而非充分条件
  • 此外,解决论文的说明性示例并不意味着任务已解决,因为论文的示例集合并非详尽无遗
  • 自动评估默认不足以覆盖其目标现象 (2019),因此与现有的自动评估相比,论文的具体化更有可能具有鲁棒性并经受住时间的考验
  • 由于论文将定义建立在一系列任务集合的基础上,而不是严重依赖特定的现有数据集,我们可以使用当时可用的最佳测试来测试 AI 系统

Ambiguity Resolution,歧义消解

  • 具体化中的测试组合具有不同的精确度水平
  • 然而,描述和示例应该足够清晰,以便人们可以自己给 AI 系统评分
  • 因此,不同的人可以给出他们自己对 AGI 分数的估计,并且人们可以决定他们是否认为评分者的判断合理

Related Work

  • Ilic 和 Gignac (2024) 以及 Ren 等人 (2024) 发现各种 AI 系统的能力与预训练计算量高度相关
  • Gignac 和 Szodorai (2024) 讨论了人类心理测量学和测试 AI 系统的智能
  • Turing (1950) 认为图灵测试可以指示通用能力
  • Marcus 等人 (2016) 讨论了需要超越图灵测试以捕捉智能的多维性质
  • Morris 等人 (2023) 阐述了基于性能百分位数的 AGI 级别
  • Legg 和 Hutter (2007) 讨论了通用机器智能的各种测试

Limitations

  • 首先,论文对智能的概念化并非详尽无遗
    • 它刻意排除了某些能力,例如在加德纳多元智能理论 (1993) 等替代框架中提出的动觉能力
  • 其次,论文的说明性示例是特定于英语语言的,并非文化无关的
    • 未来的研究可能涉及将这些测试适应不同的语言和文化背景
  • 此外,论文的具体化具有固有的约束
    • 通用知识 (K) 测试必然是选择性的,并未评估所有可能的学科领域的全部广度
    • 100% 的 AGI 分数代表了一个在这些测试维度上达到精通水平的“高度熟练”的受过良好教育的个体,而不是指拥有大学学位的意义上的受过良好教育
    • 而且,虽然论文采用的评分权重对于定量测量是必要的,但它们代表了众多可能配置中的一种
    • 论文给予每个广泛能力相等的权重 (10%) 以优先考虑广度,但更具自由裁量权的加权方案也可能是合理的
    • 结果取决于这些方法论选择,未来的工作可以探索替代的任务集合和加权方案
  • 最后,虽然汇总的 AGI 分数是为了方便起见,但它可能具有误导性
    • 简单的求和可能会掩盖瓶颈能力中的关键失败
    • 例如,一个 AGI 分数为 90% 但在长期记忆存储 (MS) 上为 0% 的 AI 系统将因某种形式的“健忘症”而功能受损,尽管总分很高,但其能力受到严重限制
  • 因此,论文建议报告 AI 系统的认知特征,而不仅仅是其 AGI 分数

Definitions of Related Concepts

  • 某些具有战略意义的 AI 类型可能在 AGI 之前或之后出现
  • 以下是一些特别值得注意的 AI 类型:
    • 1)大流行病 AI (Pandemic AI) 是一种能够设计并生产新的、具有传染性和毒力的病原体,从而可能引发大流行病的 AI (2024; 2025)
    • 2)网络战 AI (Cyberwarfare AI) 是一种能够针对关键基础设施(例如,能源电网、金融系统、国防网络)设计和执行复杂的、多阶段的网络攻击行动的 AI
    • 3)自我维持 AI (Self-Sustaining AI) 是一种能够自主无限期运行、获取资源并维护其自身存在的 AI
    • 4)AGI 是一种能够匹配或超越受过良好教育的成年人的认知通用性和熟练度的 AI
    • 5)递归 AI (Recursive AI) 是一种能够独立进行整个 AI 研发生命周期,从而在没有人类输入的情况下创造出显著更先进的 AI 系统的 AI
      • 注:递归 AI 消除了对人类研究人员的需求,并“闭合(closes the loop)”了 AI 研发的循环,使得在没有人类科学输入的情况下能够实现快速、递归的能力提升(一种“智能递归(intelligence recursion)”(2025)),并可能潜在地导致 超级智能
    • 6)超级智能 (Superintelligence) 是一种在所有重要领域都大大超过人类认知表现的 AI (2014)
    • 7)替代性 AI (Replacement AI) 是一种能更有效、更经济地执行几乎所有任务,从而使人类劳动力在经济上过时的 AI
      • 注:替代性 AI 是关于经济规模的 AI,并且与 AGI 不同,它包含体力任务
  • 论文的 AGI 定义是关于人类水平的 AI,而不是具有经济价值的 AI,也不是经济规模的 AI
    • 据报道,OpenAI 和 Microsoft 认为 AGI 是能够产生 1000 亿美元利润的 AI (2024)
    • 论文不将 AGI 与具有经济价值的 AI 混为一谈,因为像 iPhone 这样的狭窄技术尽管不具备通用智能,也能产生数十亿美元的经济价值

Barriers to AGI:实现 AGI 的障碍

  • 实现 AGI 需要解决各种重大挑战,举例如下:
    • 机器学习社区旨在衡量 抽象推理(abstract reasoning) 的 ARC-AGI 挑战体现在即时推理(On-the-Spot Reasoning) (R) 任务中
    • Meta 创建包含直观物理理解的 世界模型(world models) 的尝试体现在视频异常检测任务 (V) 中
    • 空间导航(spatial navigation)记忆 (WM) 的挑战反映了李飞飞初创公司 World-Labs 的一个核心目标
    • 幻觉(hallucinations) (MR) 和 持续学习(continual learning) (MS) 的挑战也需要得到解决
  • 这些重大障碍使得在未来一年内达到 100% 的 AGI 分数不太可能

附录:待补充

  • 附录主要是一些测评示例,详情见原始论文

NLP——技术报告解读-Ring-Linear(2510)

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(Ring-Linear Technical Report)Every Attention Matters: An Efficient Hybrid Architecture for Long-Context Reasoning, 20251023, Ling Team
      • Ring-Linear model series technical report
  • 注:这里暂时只关注后训练部分(本报告对于训推不一致的对齐有非常详细的实践描述,非常值得参考)

Post-Training

  • 后训练阶段主要包括两个步骤:SFT 和 RL
  • 本文作者找出了 RL 中普遍存在的训练崩溃问题 的根本原因 :
    • 训练-推理差异 (training-inference disparity)
    • 通过在训练和推理之间实现系统性的对齐,已经实现了长期稳定的 RL 训练

SFT

  • Ring-Linear 的 SFT 数据强调全面且平衡 的 推理能力和泛化能力
  • 除了包含数学、编码、科学和逻辑等领域的高难度 SFT 数据外,该数据集还涵盖了涵盖知识、Agent 任务、主观创作和医学领域的通用 SFT 数据
  • 特别地,作者重新合成了函数调用 (Function Calling) 的 SFT 数据,以使其更好地适应更通用的 Function Calling 模式
    • 因此,作为面向推理的模型,Ring-Linear 系列不仅在推理任务上表现异常出色,而且在多个领域的非推理任务上也能提供令人满意的响应
  • 所有 SFT 数据都经过了更严格的去噪和去毒处理,包括 n-gram 过滤和语义相似性检测,以确保模型的安全性及其响应的真实性

RL

  • 在数学、编码、科学、逻辑和主观任务等多个领域进行了 RL
  • 所有样本都经过了精心的筛选,并从中选出难度适中的样本用于 RL 训练
  • 在此阶段,模型使用足够长的上下文窗口(例如 64K)进行训练,以在性能和效率之间达到最佳平衡
    • 本文观察:对于高难度的训练数据,较小的窗口(例如 32K)会带来潜在的局限性,即较高的截断率和较低的性能上限
      • 相反,使用足够长的上下文窗口进行训练被证明是更优的选择,它能够产生可忽略不计的截断率,并使模型达到更高的性能上限
  • 与预训练和 SFT 不同,LLM 的 RL 同时依赖于训练和推理
    • 本文观察:
      • 即使是在 LLM 中常见组件 ,如 RMSNorm 和 RoPE,在常见的训练(例如 Megatron、FSDP)和推理(例如 vLLM、SGLang)框架之间也存在不可忽视的实现差异
    • 这些差异会逐层累积和放大 ,导致训练和推理 (Rollout) 结果之间出现显著差异
      • 在极端情况下,对于同一个 Token,在训练时输出概率可能为 0,而在推理时则为 1
      • 这种训练-推理差异破坏了 On-Policy 的理论假设,导致 RL 训练不稳定并限制了 RL 的性能提升
  • 有两个常见因素会显著加剧这种训练-推理差异:
    • MoE 架构 (MoE Architecture) :训练和推理之间专家选择的差异会引入较大误差
    • 长思维链模型 (Long-CoT Models) :更长的模型输出导致累积误差更大
  • 长输出 MoE 模型 和短输出 Dense 模型 在 RL 中所面临的挑战本质上是不同的
    • 经常可以观察到,短输出 Dense 模型 有效的算法不一定适用于 长输出 MoE 模型 ,反之亦然
  • 现有研究(2025) 大多数努力都集中在算法层面的缓解措施上
    • 本文作者不仅从算法的角度提高了 RL 的稳定性,而且还投入了大量精力来系统地解决训练-推理差异,旨在从根本上解决这个问题
    • 如图 10 所示,每个对齐的模块都有助于提高 RL 的训练效率和稳定性
Systematic Training-Inference Alignment,系统性的训推对齐
  • 对齐训练和推理的具体方式:
    • 将相同的输入提供给训练和推理框架,并逐模块、逐层比较激活值
    • 每个激活值中的差异都从前到后系统地识别和解决
  • 整个对齐过程可以分为三个阶段:
    • 阶段 1):训练中的 Prefill 与推理中的 Prefill 对齐
    • 阶段 2):训练中的 Prefill 与推理中的 Decode 对齐
      • 注意:在 Rollout/推理 时使用 Decode 得到的 Response,在 训练中是使用 Prefill 获取 logits
    • 阶段 3):不同并行化配置下的对齐
      • 如:不同 TP,DP 等
  • 为确保训练和推理之间的一致性,我们的关注/努力通常集中在三个方面:
    • 确保训练和推理框架有相同的实现
    • 保持适当的精度
    • 消除非确定性
  • 完整对齐流程的复杂性,以下段落重点介绍关键模块中特别容易出现训练-推理差异的具体点
KV Cache
  • 在混合线性模型中,线性注意力中的 KV 状态需要进行累加(公式 4),这要求更高的数值精度(例如 FP32)
    $$ \mathbf{k}\mathbf{v}_t = \sum_{s\leq t}\lambda^{t - s}\mathbf{k}_s^{\text{T} }\mathbf{v}_s \tag {4} $$
  • 如果在推理引擎中将 KVCache 初始化为 BF16,误差会在循环过程中逐渐累积,导致显著的精度偏差,如图 11 所示
lm_head :
  • Softmax 函数对数值精度高度敏感,需要为 lm_head 层使用 FP32
  • 问题:在训练引擎中直接将 lm_head 配置为 FP32 会引入大量的计算和内存开销
  • 为了解决这个问题,本文实现了一个自定义的 GEMM 算子
    • 这个自定义的 GEMM 算子接受 BF16 输入,并在寄存器内部执行转换和计算(理解:在寄存器内转换成 FP32,并完成计算)
      • 问题:这种方法的输出是 FP32 还是 BF16?
    • 这种方法在保持足够精度的同时,显著降低了计算和内存成本
RMSNorm
  • RMSNorm 部分需要注意以下几点:
    • 计算过程应使用 FP32
    • epsilon 值必须一致
    • 将残差计算保持在 FP32 中
    • 在训练和推理中都解耦 RMSNorm 和残差
RoPE:
  • 应仔细检查训练和推理之间细微的实现差异
  • 例如:普通的 PyTorch 实现与推理引擎中的 RoPE 算子之间通常存在微小差异,即使输入相同,也可能导致输出略有不同
Attention
  • 第一:训练和推理之间使用的后端必须一致,例如 FlashAttention (2022)
  • 第二:要注意 Prefill(训练时使用)和 Decode(推理时使用)之间的不对齐问题
    • 这个问题会导致训练-推理差异随着输出变长而恶化,使 RL 训练更容易崩溃
    • 理解:在 RL 训练(特别是 PPO 类算法)中,流程通常是:
      • Rollout/推理: 模型与环境交互,生成很长的 Response(Decode 阶段)
        • 这里使用的是推理框架(如 vLLM)的 Decode 逻辑
      • Training: 将 Rollout 生成的数据拿来计算梯度
        • 这里使用的是训练框架(如 Megatron)的 Prefill 逻辑
MoE
  • 除了在路由器计算中保持高精度外,必须用稳定的实现替换非稳定的 torch.topk 函数
  • 需要确定性的顺序 来进行 Token 的排列和求和 以防止差异,并且必须确保训练和推理之间的 MoE 算子一致
From the Algorithmic Perspective,算法视角
  • 当在系统层面实现训练-推理对齐时,本文的观察是不需要额外的算法修改
    $$\nabla_{\theta}\mathcal{T}(\theta) = \mathbb{E}_{x\sim \color{red}{\pi_{\text{rollout}} } }\left[\nabla_{\theta}\min \left(\frac{\color{blue}{\pi_{\text{train}} }\left(x,\theta\right)}{\color{red}{\pi_{\text{rollout}} }\left(x,\theta_{\text{old} }\right)}\hat{A},\text{clip}\left(\frac{\color{blue}{\pi_{\text{train}} }\left(x,\theta\right)}{\color{red}{\pi_{\text{rollout}} }\left(x,\theta_{\text{old} }\right)},1 - \epsilon ,1 + \epsilon\right)\hat{A}\right)\right] \tag {5}$$
    • 上述公式 5 描述了理想的 PPO 优化方法,其中使用真实的 Rollout 采样分布进行重要性采样加权
    • 理解:上述公式就是最完美的 重要性采样修正期望的方式,常见 LLM PPO 中的方式中分母是 \(\color{blue}{\pi_{\text{train}}}\),这反而是假定了训推引擎结果完全等价,即:
      $$ \color{blue}{\pi_{\text{train}}} == \color{red}{\pi_{\text{rollout}} } $$
    • 由于训练-推理差异,Rollout 概率通常与训练概率显著不同,因此不适合用于使用上述公式 5 中的 Ideal 重要性采样
  • 大多数 RL 框架,例如 verl (2024) 和 OpenRLHF (2024a),通过重新前向传播 Rollout 数据到训练引擎来重新计算训练概率,从而得到下面的公式 6
    $$\nabla_{\theta}\mathcal{T}^{\prime}(\theta) = \mathbb{E}_{x\sim \color{red}{\pi_{\text{rollout}} } }\left[\nabla_{\theta}\min \left(\frac{\color{blue}{\pi_{\text{train}} }\left(x,\theta\right)}{\color{blue}{\pi_{\text{train}} }\left(x,\theta_{\text{old} }\right)}\hat{A},\text{clip}\left(\frac{\color{blue}{\pi_{\text{train}} }\left(x,\theta\right)}{\color{blue}{\pi_{\text{train}} }\left(x,\theta_{\text{old} }\right)},1 - \epsilon ,1 + \epsilon\right)\hat{A}\right)\right] \tag {6}$$
    • 但公式 6 是有偏的,因为它完全忽略了训练-推理差异
    • 最可靠的路径是直接使用 Rollout 概率,如公式 5 所示,但这必须在训练-推理差异被系统性修正之后才能进行
      • 问题:为什么要保证训推一致性?
        • 个人理解:实际上公式 5 中的公式已经完美的使用 IS 修正梯度期望为无偏的,但是由于训推不一致不一定得到完全保障,所以可能会导致 \(\frac{\color{blue}{\pi_{\text{train}} }\left(x,\theta\right)}{\color{red}{\pi_{\text{rollout}} }\left(x,\theta_{\text{old} }\right)}\) 偏离 1 太多,甚至是发生 spike
    • 理解:在许多工作中,公式 6 上可以再加一个训推策略的重要性采样
      $$ \frac{\color{blue}{\pi_{\text{train}}}}{\color{red}{\pi_{\text{rollout}} }} $$
      • 这在不考虑 Clip 的顺序时,本质上加上 训推策略的重要性采样 的 公式 6 就完全等价于 理论最优修正的 公式 5 了!
  • 在进行了系统性的训练-推理对齐之后,使用 Rollout 概率而不是重新计算的训练概率,可以在训练的后期阶段获得更高的奖励,并将训练-推理差异维持在一个更稳定的范围内(如图 12 所示)
  • 换句话说:在训练-推理对齐的前提下,直接使用 Rollout 概率不仅能节省重新计算训练概率所需的时间,还能进一步提高 RL 训练的效率与稳定性
Experimental Results of Reinforcement Learning,RL 实验结果
  • 基于上述改进,模型在整个 RL 过程中展现出训练奖励和测试分数的持续增长,如图 13 所示

NLP——技术报告解读-DeepSeek-OCR

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:DeepSeek-OCR: Contexts Optical Compression, 20251021, DeepSeek-AI
    • GitHub 链接:github.com/deepseek-ai/DeepSeek-OCR

Paper Summary

  • 技术报告核心内容:
    • 提出了 DeepSeek-OCR,并通过该模型初步验证了上下文光学压缩的可行性,证明了模型可以从少量视觉 Token 中有效解码出数量超过其 \(10\) 倍的文本 Token
    • DeepSeek-OCR 是一个高度实用的模型(能够进行大规模的预训练数据生产,是 LLM 不可或缺的助手)
    • 作者提到未来会做的事情:
      • 仅凭 OCR 不足以完全验证真正的上下文光学压缩,作者未来将进行数字-光学文本交错预训练、大海捞针测试等评估
      • 从另一个角度看,光学上下文压缩仍然提供了巨大的研究和改进空间,代表了一个有前途的新方向
  • DeepSeek-OCR 包含两个组件:DeepEncoder 和作为解码器的 DeepSeek3B-MoE-A570M
    • DeepEncoder 作为核心引擎,设计目标是在高分辨率输入下保持低激活量,同时实现高压缩比以确保最佳且可管理的视觉 Token 数量
      • 当文本 Token 数量在视觉 Token 数量的 10 倍以内(即压缩比 \(<\) \(10\times\))时,模型可以实现 97% 的解码(OCR)精度
        • 即使在 \(20\times\) 的压缩比下,OCR 准确率仍保持在约 60%
      • 这对于历史长上下文压缩和 LLM 中的记忆遗忘机制等研究领域显示出相当大的前景
  • DeepSeek-OCR 还展现出很高的实用价值
    • 在 OmniDocBench 上,它仅使用 100 个视觉 Token 就超越了 GOT-OCR2.0(每页 256 个 Token )
    • 在使用少于 800 个视觉 Token 的同时,性能超过了 MinerU2.0(平均每页 6000+ 个 Token )
    • 在生产环境中,DeepSeek-OCR 每天可以为 LLM/VLM(视觉语言模型,Vision-Language Model)生成 20 万+页的训练数据(单张 A100-40G)

Introduction and Discussion

  • 当前的 LLM 在处理长文本内容时,由于序列长度的二次缩放问题,面临着显著的计算挑战
  • 论文探索了一种潜在的解决方案:利用视觉模态作为文本信息的高效压缩媒介
    • 包含文档文本的单个图像可以用比等效数字文本少得多的 Token 来表示丰富的信息,这表明通过视觉 Token 进行光学压缩可以实现更高的压缩比
  • 这一见解促使论文从以 LLM 为中心的视角重新审视视觉语言模型(VLM),重点关注视觉编码器如何提高 LLM 处理文本信息的效率 ,而不是人类擅长的基本视觉问答(Visual Question Answering, VQA)(2017; 2014; 2022; 2023; 2023)
  • OCR 任务作为连接视觉和语言的中间模态,为这种视觉-文本压缩范式提供了一个理想的试验台,因为它们在视觉和文本表示之间建立了自然的压缩-解压缩映射,同时提供了定量的评估指标
  • DeepSeek-OCR 是一个旨在为高效的视觉-文本压缩提供初步概念验证的 VLM,论文的工作做出了三个主要贡献:
    • 第一,论文提供了视觉-文本 Token 压缩比的全面定量分析
      • 论文的方法在 Fox (2024) 基准测试上(包含多样化的文档布局),在 9-\(10\times\) 文本压缩下实现了 96%+ 的 OCR 解码精度,在 10-\(12\times\) 压缩下达到约 90%,在 \(20\times\) 压缩下达到约 60%(考虑到输出和真实文本之间的格式差异,实际准确率甚至更高),如图 1(a) 所示
      • 结果表明,紧凑的语言模型可以有效地学习解码压缩的视觉表示,这表明更大的 LLM 通过适当的预训练设计可以容易地获得类似的能力
    • 第二,论文介绍了 DeepEncoder,这是一种新颖的架构,即使在高分辨率输入下也能保持低激活内存和最少的视觉 Token
      • DeepEncoder 通过一个 \(16\times\) 的卷积压缩器串联连接窗口注意力和全局注意力编码器组件
      • 这种设计确保了窗口注意力组件处理大量的视觉 Token ,而压缩器在视觉 Token 进入密集的全局注意力组件之前减少其数量,从而实现有效的内存和 Token 压缩
    • 第三,论文基于 DeepEncoder 和 DeepSeek3B-MoE (2024; 2024) 开发了 DeepSeek-OCR
      • 如图 1(b) 所示,它在 OmniDocBench 上的端到端模型中实现了 SOTA 性能,同时使用了最少的视觉 Token
      • 论文还为模型配备了解析图表、化学公式、简单几何图形和自然图像的能力,以进一步增强其实用性
      • 在生产环境中,DeepSeek-OCR 每天可以使用 20 个节点(每个节点配备 8 张 A100-40G GPU)为 LLM 或 VLM 生成 3300 万页数据
  • 总结:这项工作对使用视觉模态作为 LLM 中文本信息处理的高效压缩媒介进行了初步探索
    • 通过 DeepSeek-OCR,论文证明了视觉-文本压缩可以为不同的历史上下文阶段实现显著的 Token 减少(7-\(20\times\))
      • 为解决大语言模型中的长上下文挑战提供了一个有前景的方向
    • 论文的定量分析为 VLM Token 分配优化提供了经验指导,而提出的 DeepEncoder 架构展示了实际可行性并具备现实部署能力
    • 虽然作为概念验证主要关注 OCR,但这种范式为重新思考如何协同结合视觉和语言模态以增强大规模文本处理和智能体系统中的计算效率开辟了新的可能性

Related Works

Typical Vision Encoders in VLMs

  • 当前开源的 VLM 主要采用三种类型的视觉编码器,如图 2 所示
  • 第一种是以 Vary (2024) 为代表的双塔架构,它利用并行的 SAM (2023) 编码器来增加视觉词汇参数以处理高分辨率图像
    • 这种方法提供了可控的参数和激活内存
    • 但存在显著缺点:需要双图像预处理,这使部署复杂化,并在训练期间使编码器流水线并行具有挑战性
  • 第二种是以 InternVL2.0 (2024) 为例的基于分块的方法,它通过将图像分割成小块进行并行计算来处理图像,从而在高分辨率设置下减少激活内存
    • 这种方法能够处理极高的分辨率,但由于其通常较低的原生编码器分辨率(低于 512x512),导致大图像被过度分割,从而产生大量的视觉 Token ,因此存在显著的局限性
  • 第三种是以 Qwen2-VL (2024) 为代表的自适应分辨率编码,它采用 NaViT (2023) 范式,通过基于图像块的分割直接处理完整图像,而无需分块并行化
    • 这种编码器可以灵活处理不同的分辨率
    • 但由于大量激活内存消耗可能导致 GPU 内存溢出,它在处理大图像时面临巨大挑战,并且序列打包在训练期间需要极长的序列长度
    • 长的视觉 Token 会减慢推理的预填充(prefill)和生成阶段

End-to-end OCR Models

  • OCR,特别是文档解析任务,一直是图像到文本领域非常活跃的话题
  • 随着 VLM 的发展,涌现了大量的端到端 OCR 模型,从根本上改变了传统需要独立检测和识别专家模型的流水线架构,从而简化了 OCR 系统
  • Nougat (2023) 首次在 arXiv 上采用端到端框架进行学术论文 OCR,展示了模型在处理密集感知任务方面的潜力
  • GOT-OCR2.0 (2024) 将 OCR2.0 的范围扩展到包括更多合成图像解析任务,并设计了一个在性能和效率之间权衡的 OCR 模型,进一步凸显了端到端 OCR 研究的潜力
  • 通用视觉模型如 Qwen-VL 系列 (2024)、InternVL 系列 (2024) 以及它们的许多衍生模型不断增强其文档 OCR 能力,以探索密集视觉感知的边界
  • 然而,当前模型尚未解决的一个关键研究问题是:对于一个包含 1000 个单词的文档,解码至少需要多少个视觉 Token ? 这个问题对于研究“一图胜千言(a picture is worth a thousand words.)”的原理具有重要意义

Methodology

Architecture

  • 如图 3 所示,DeepSeek-OCR 采用统一的端到端 VLM 架构,由一个编码器和一个解码器组成
  • 编码器(即 DeepEncoder)负责提取图像特征并对视觉表示进行 Token 化及压缩
    • DeepEncoder 的参数约为 \(380\)M,主要由一个 \(80\)M 的 SAM-base (2023) 和一个 \(300\)M 的 CLIP-large (2021) 串联组成
  • 解码器用于根据图像 Token 和提示生成所需的结果
    • 解码器采用 \(3\)B 的 MoE (2024; 2024) 架构,激活参数约为 \(570\)M
  • 在接下来的段落中,论文将深入探讨模型组件、数据工程和训练技巧

DeepEncoder

  • 为了探索上下文光学压缩的可行性,论文需要一个具有以下特征的视觉编码器:
    • 1)能够处理高分辨率;
    • 2)在高分辨率下具有低激活量;
    • 3)视觉 Token 数量少;
    • 4)支持多分辨率输入;
    • 5)参数量适中
  • 然而,如第 2.1 节所述,当前的开源编码器不能完全满足所有这些条件
    • 因此,论文自己设计了一种新颖的视觉编码器,命名为 DeepEncoder
Architecture of DeepEncoder
  • DeepEncoder 主要由两个组件组成:
    • 一个以窗口注意力为主的视觉感知特征提取组件
    • 一个具有密集全局注意力的视觉知识特征提取组件
  • 为了受益于先前工作的预训练成果,论文分别使用 SAM-base( Patch 大小 16)和 CLIP-large 作为这两个组件的主要架构
    • 对于 CLIP,论文移除了第一个 Patch 嵌入层,因为其输入不再是图像,而是来自前一个流程的输出 Token
    • 在两个组件之间,论文借鉴了 Vary (2024) 的方法,使用一个 2 层卷积模块对视觉 Token 进行 \(16\times\) 下采样
  • 每个卷积层的核大小为 3,步长为 2,填充为 1,通道数从 256 增加到 1024
    • 假设论文输入一张 \(1024\times1024\) 的图像,DeepEncoder 会将其分割成 \(1024/16\times1024/16=4096\) 个 Patch Token
    • 由于编码器的前半部分以窗口注意力为主且仅有 80M 参数,其激活量是可以接受的
  • 在进入全局注意力之前,\(4096\) 个 Token 会经过压缩模块,Token 数量变为 \(4096/16=256\),从而使整体激活内存可控
Multiple resolution support(多分辨率支持)
  • 假设论文有一张包含 1000 个光学字符的图像,论文想测试需要多少个视觉 Token 才能进行解码
    • 这就要求模型支持可变数量的视觉 Token
    • 也就是说,DeepEncoder 需要支持多分辨率
  • 论文通过位置编码的动态插值来满足上述要求,并设计了若干种分辨率模式用于同步模型训练,以实现单个 DeepSeek-OCR 模型支持多分辨率的能力
  • 如图 4 所示,DeepEncoder 主要支持两种主要的输入模式:原生分辨率和动态分辨率(每种模式都包含多个子模式)
  • 原生分辨率支持四个子模式:Tiny、Small、Base 和 Large,对应的分辨率和 Token 数量分别为 \(512\times512\) (64)、\(640\times640\) (100)、\(1024\times1024\) (256) 和 \(1280\times1280\) (400)
    • 由于 Tiny 和 Small 模式的分辨率相对较小,为了避免浪费视觉 Token ,图像通过直接调整原始形状来处理
    • 对于 Base 和 Large 模式,为了保留原始图像的宽高比,图像会被填充到相应的大小
    • 填充后,有效(valid)视觉 Token 的数量少于实际(real)视觉 Token 的数量,计算公式为:
      $$N_{\text{valid} }=\lceil N_{\text{real} }\times[1-((\max(w,h)-\min(w,h))/(\max(w,h)))]\rceil$$
      • 其中 \(w\) 和 \(h\) 代表原始输入图像的宽度和高度
  • 动态分辨率可以由两种原生分辨率组合而成
    • 例如,Gundam 模式由 n 个 \(640\times640\) 的图块(局部视图)和一个 \(1024\times1024\) 的全局视图组成
    • 分块方法遵循 InternVL2.0 (2024)
  • 支持动态分辨率主要是出于应用考虑,特别是针对超高分辨率输入(例如报纸图像)
    • 分块是次级窗口注意力的一种形式,可以进一步有效减少激活内存
  • 值得注意的是,由于论文的原生分辨率相对较大,在动态分辨率下图像不会被分割得过于零碎(图块数量控制在 2 到 9 的范围内)。Gundam 模式下 DeepEncoder 输出的视觉 Token 数量为:\(n\times 100+256\),其中 \(n\) 是图块数量
  • 对于宽和高均小于 640 的图像,\(n\) 设置为 0,即 Gundam 模式将退化为 Base 模式
  • Gundam 模式与四种原生分辨率模式一起训练,以达到一个模型支持多种分辨率的目标
  • 注意,Gundam-master 模式(\(1024\times1024\) 局部视图 + \(1280\times1280\) 全局视图)是通过在预训练的 DeepSeek-OCR 模型上使用 6M 采样数据继续训练得到的
  • 这主要是为了负载均衡,因为 Gundam-master 的分辨率太大,将其一起训练会降低整体训练速度

The MoE Decoder

  • 论文的解码器使用 DeepSeekMoE (2024; 2024),具体来说是 DeepSeek-3B-MoE
  • 在推理过程中,模型激活 64 个路由专家中的 6 个以及 2 个共享专家,激活参数约为 570M
  • 3B 的 DeepSeekMoE 非常适用于以领域为中心(对论文来说是 OCR)的 VLM 研究,因为它获得了 3B 模型的表达能力,同时享有 500M 小模型的推理效率
  • 解码器从 DeepEncoder 的压缩潜在视觉 Token 中重建原始文本表示,如下所示:
    $$f_{\text{dec} }:\mathbb{R}^{n\times d_{\text{latent} } }\rightarrow\mathbb{R}^{N\times d_{\text{text} } };\quad \hat{\mathbf{X} }=f_{\text{dec} }(\mathbf{Z})\quad \text{ Where }n\leq N$$
    • 其中 \(\mathbf{Z}\in\mathbb{R}^{n\times d_{\text{latent} } }\) 是来自 DeepEncoder 的压缩潜在(视觉) Token ,而 \(\hat{\mathbf{X} }\in\mathbb{R}^{N\times d_{\text{text} } }\) 是重建的文本表示
    • 函数 \(f_{\text{dec} }\) 表示一种非线性映射,紧凑的语言模型可以通过 OCR 风格的训练有效地学习这种映射
    • 可以合理地推测,大语言模型通过专门的预训练优化,将更自然地整合此类能力

Data Engine

  • 论文为 DeepSeek-OCR 构建了复杂多样的训练数据,包括 OCR 1.0 数据,主要包括传统 OCR 任务,如场景图像 OCR 和文档 OCR;OCR 2.0 数据,主要包括复杂人造图像的解析任务,如常见图表、化学公式和平面几何解析数据;通用视觉数据,主要用于向 DeepSeek-OCR 注入一定的通用图像理解能力并保留通用视觉接口
OCR 1.0 data
  • 文档数据是 DeepSeek-OCR 的重中之重
  • 论文从互联网上收集了 30M 页多样化的 PDF 数据,覆盖约 100 种语言,其中中文和英文约占 25M,其他语言约占 5M
  • 对于这些数据,论文创建了两种类型的真实标签:粗粒度标注和细粒度标注
    • 粗粒度标注是使用 fitz 直接从全数据集中提取的,旨在教导模型识别光学文本,尤其是小语种文本
    • 细粒度标注包括各 2M 页的中文和英文文档,使用先进的布局模型(如 PP-DocLayout (2025))和 OCR 模型(如 MinuerU (2024) 和 GOT-OCR2.0 (2024))进行标注,以构建检测和识别交错的数据
  • 对于小语种,在检测部分,论文发现布局模型具有一定的泛化能力
  • 在识别部分,论文使用 fitz 创建小 Patch 数据来训练一个 GOT-OCR2.0,然后使用训练好的模型对经过布局处理的小 Patch 进行标注,采用模型飞轮的方式创建了 600K 数据样本
  • 在 DeepSeek-OCR 的训练过程中,粗标签和细标签通过不同的提示词进行区分
  • 细粒度标注的图文对真实标签可见图 5
  • 论文还收集了 3M Word 数据,通过直接提取内容构建没有布局的高质量图文对
    • 这些数据主要给公式和 HTML 格式的表格带来好处
  • 此外,论文选择了一些开源数据 (2025; 2024) 作为补充
  • 对于自然场景 OCR,论文的模型主要支持中文和英文
    • 图像数据来源为 LAION (2021) 和 Wukong (2022),使用 PaddleOCR (2025) 进行标注,中文和英文各有 10M 数据样本
    • 自然场景 OCR 也可以通过提示词控制是否输出检测框(与文档 OCR 类似)
OCR 2.0 data
  • 遵循 GOT-OCR2.0 (2024)
    • 论文将图表、化学公式和平面几何解析数据称为 OCR 2.0 数据
  • 遵循 OneChart (2024)
    • 对于图表数据,论文使用 pyecharts 和 matplotlib 渲染了 10M 图像
    • 主要包括常用的折线图、柱状图、饼图以及复合图表
  • 论文将图表解析定义为图像到 HTML 表格的转换任务,如图 6(a) 所示
  • 对于化学公式,论文利用 PubChem 的 SMILES 格式作为数据源,并使用 RDKit 将它们渲染成图像,构建了 5M 图文对
    • 对于平面几何图像,论文遵循 Slow Perception (2024) 进行生成
    • 具体来说,论文使用感知标尺大小为 4 来建模每个线段
  • 为了增加渲染数据的多样性,论文引入了几何平移不变的数据增强,即相同的几何图像在原图中进行平移,对应于在坐标系中心位置绘制的相同真实标签
    • 基于此,论文总共构建了 1M 平面几何解析数据,如图 6(b) 所示
General vision data
  • DeepEncoder 可以受益于 CLIP 的预训练成果,并且有足够的参数来融合通用视觉知识
    • 因此,论文也为 DeepSeek-OCR 准备了一些相应的数据
  • 遵循 DeepSeek-VL2 (2024),论文为描述、检测和定位等任务生成相关数据
  • 请注意,DeepSeek-OCR 不是一个通用的 VLM 模型,这部分数据仅占总数据的 20%
  • 论文引入此类数据主要是为了保留通用视觉接口,以便未来对论文模型和通用视觉任务感兴趣的研究人员可以方便地推进他们的工作
Text-only data
  • 为了确保模型的语言能力,论文引入了 10% 的内部纯文本预训练数据,所有数据都处理成长度为 8192 个 Token ,这也是 DeepSeek-OCR 的序列长度
  • 在训练 DeepSeek-OCR 时,OCR 数据占 70%,通用视觉数据占 20%,纯文本数据占 10%

Training Pipelines

  • 论文的训练流程非常简单,主要包括两个阶段:
    • a)独立训练 DeepEncoder;
    • b)训练 DeepSeek-OCR
  • Gundam-master 模式是通过在预训练的 DeepSeek-OCR 模型上使用 6M 采样数据继续训练得到的
    • 由于训练协议与其他模式相同,论文在后面省略详细描述
Training DeepEncoder
  • 遵循 Vary (2024),论文利用一个紧凑的语言模型 (2022) 并使用 Next Token Prediction 框架来训练 DeepEncoder
  • 在这个阶段,论文使用前面提到的所有 OCR 1.0 和 2.0 数据,以及从 LAION (2021) 数据集中采样的 100M 通用数据
  • 所有数据训练 2 个周期,批大小为 1280,使用 AdamW (2019) 优化器,采用余弦退火调度器 (2016),学习率为 5e-5,训练序列长度为 4096
Training DeepSeek-OCR
  • 在 DeepEncoder 准备好之后,论文使用第 3.4 节中提到的数据来训练 DeepSeek-OCR
  • 整个训练过程在 HAI-LLM (2023) 平台上进行
  • 整个模型使用流水线并行(PP),分为 4 个部分,DeepEncoder 占两部分,解码器占两部分
    • 对于 DeepEncoder,论文将 SAM 和压缩器视为视觉 Token 器,将它们放在 PP0 并冻结其参数,同时将 CLIP 部分视为输入嵌入层,放在 PP1 并解冻权重进行训练
    • 对于语言模型部分,由于 DeepSeek3B-MoE 有 12 层,论文将 6 层分别放在 PP2 和 PP3 上
    • 论文使用 20 个节点(每个节点有 8 个 A100-40G GPU)进行训练,数据并行(DP)为 40,全局批大小为 640
    • 论文使用 AdamW 优化器,采用基于步长的调度器,初始学习率为 3e-5
    • 对于纯文本数据,训练速度为 90B Token /天,而对于多模态数据,训练速度为 70B Token /天

Evaluation

Vision-text Compression Study

  • 论文选择 Fox (2024) 基准来验证 DeepSeek-OCR 对文本丰富文档的压缩-解压缩能力,以初步探索上下文光学压缩的可行性和边界
  • 论文使用 Fox 的英文文档部分,用 DeepSeek-OCR 的分词器(词表约为 129k)对真实文本进行分词,并选择包含 600-1300 个 Token 的文档进行测试,恰好是 100 页
    • 由于文本 Token 数量不大,论文只需要测试 Tiny 和 Small 模式下的性能,其中 Tiny 模式对应 64 个 Token ,Small 模式对应 100 个 Token
    • 论文使用提示词 “<image>\nFree OCR.“ 来控制模型的输出格式
    • 尽管如此,输出格式仍然无法完全匹配 Fox 基准,因此实际性能会略高于测试结果
  • 如表 2 所示,在 10 倍的压缩比内,模型的解码精度可以达到约 97%,这是一个非常有希望的结果
  • 未来,或许可以通过文本到图像的方法实现近 10 倍的无损上下文压缩
  • 当压缩比超过 10 倍时,性能开始下降,这可能有两个原因:
    • 原因一:长文档的布局变得更加复杂
      • 第一个问题可以通过将文本渲染到单一布局页面来解决
    • 原因二:可能是长文本在 512×512 或 640×640 分辨率下变得模糊
      • 作者认为第二个问题将成为遗忘机制的一个特征
  • 当以近 20 倍的比率压缩 Token 时,论文发现精度仍然可以接近 60%
  • 这些结果表明,光学上下文压缩是一个非常值得研究的方向,并且这种方法不会带来任何开销,因为它可以利用 VLM 基础设施,因为多模态系统本身就需要额外的视觉编码器

OCR Practical Performance

  • DeepSeek-OCR 不仅是一个实验模型;它具有强大的实际能力,可以为 LLM/VLM 预训练构建数据
  • 为了量化 OCR 性能,论文在 OmniDocBench (2025) 上测试了 DeepSeek-OCR,结果如表 3 所示
  • 论文的 DeepSeek-OCR 模型在实际应用中非常强大,并且由于更高的 Token 压缩率,它具有更高的研究上限
    • 仅需 100 个视觉 Token(640×640 分辨率),DeepSeek-OCR 就超越了使用 256 个 Token 的 GOT-OCR2.0 (2024);
    • 使用 400 个 Token(285 个有效 Token ,1280×1280 分辨率),它在该基准测试中达到了与最先进技术相当的性能
    • 使用少于 800 个 Token(Gundam 模式),DeepSeek-OCR 的性能优于需要近 7,000 个视觉 Token 的 MinerU2.0 (2024)
  • 如表 4 所示,某些类别的文档只需要很少的 Token 就能达到令人满意的性能,例如幻灯片只需要 64 个视觉 Token
    • 对于书籍和报告文档,DeepSeek-OCR 仅需 100 个视觉 Token 即可实现良好的性能
      • 结合第 4.1 节的分析,这可能是因为这些文档类别中的大多数文本 Token 都在 1,000 个以内,意味着视觉 Token 压缩比不超过 10 倍
    • 对于报纸,需要 Gundam 甚至 Gundam-master 模式才能达到可接受的编辑距离,因为报纸中的文本 Token 为 4-5,000 个,远远超过其他模式的 10 倍压缩
    • 这些实验结果进一步证明了上下文光学压缩的边界,这可能为 VLM 中视觉 Token 优化以及 LLM 中上下文压缩和遗忘机制的研究提供有效的参考

Qualitative Study

Deep parsing
  • DeepSeek-OCR 同时具备布局和 OCR 2.0 能力,使其能够通过二次模型调用进一步解析文档中的图像,论文称此功能为”深度解析”
  • 如图 7, 8, 9, 10 所示,论文的模型可以对图表、几何图形、化学公式甚至自然图像进行深度解析,只需要一个统一的提示词
Multilingual recognition
  • 互联网上的 PDF 数据不仅包含中文和英文,还包含大量多语言数据,这在训练 LLM 时也至关重要
  • 对于 PDF 文档,DeepSeek-OCR 可以处理近 100 种语言
  • 与中英文文档一样,多语言数据也同时支持布局和非布局 OCR 格式
  • 可视化结果如图 11 所示,论文选择了阿拉伯语和僧伽罗语来展示结果
General vision understanding
  • 论文还为 DeepSeek-OCR 提供了一定程度的通用图像理解能力,相关的可视化结果如图 12 所示

Discussion

  • 论文的工作代表了对视觉-文本压缩边界的初步探索,研究了需要多少视觉 Token 来解码 \(N\) 个文本 Token
  • 初步结果令人鼓舞:
    • DeepSeek-OCR 在大约 10 倍的比率下实现了近乎无损的 OCR 压缩,而 20 倍的压缩仍然保持了 60% 的准确率
    • 这些发现为未来的应用指明了有希望的方向,例如在多轮对话中对超过 \(k\) 轮的对话历史实施光学处理,以实现 10 倍的压缩效率
  • 对于较早的上下文,我们可以逐步缩小渲染图像的大小,以进一步减少 Token 消耗
    • 这个假设的灵感来源于人类记忆随时间自然衰退与视觉感知随空间距离退化之间的自然平行关系(两者都表现出类似的渐进式信息丢失模式)如图 13 所示
    • 通过结合这些机制,上下文光学压缩方法实现了一种类似于生物遗忘曲线的记忆衰退形式,其中近期信息保持高保真度,而遥远的记忆通过增加压缩比自然淡出
  • 虽然论文的初步探索显示了可扩展的超长上下文处理的潜力,其中近期上下文保持高分辨率,而较早的上下文消耗更少的资源,但论文承认这是早期工作,需要进一步研究
  • 该方法提出了一条通向理论上无限上下文架构的路径,该架构平衡了信息保留和计算约束,尽管这种视觉-文本压缩系统的实际意义和局限性需要在未来的研究中更深入地探讨

NLP——LLM对齐微调-Clip-Cov-KL-Cov

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(Clip-Cov & KL-Cov)The Entropy Mechanism of Reinforcement Learning for Reasoning Language Models, 20250528, Shanghai AI Lab & THU
    • GitHub:github.com/PRIME-RL/Entropy-Mechanism-of-RL

Paper Summary

  • 总结:
    • 之前的经验:模型性能的提升通常是以牺牲探索能力为代价的(降低熵),熵坍缩限制了性能的提升
    • 在大量没有熵干预的 RL 训练中:策略熵在训练早期阶段急剧下降,收敛到一个过于自信的策略模型
    • 本文尝试解决 LLM 推理的 RL 中策略熵崩溃的挑战
    • 本文基于对熵的详细分析,引入了两种简单的正则化技术 ,Clip-Cov 和 KL-Cov ,来直接管理高协方差的 Token ,从而抵消熵崩溃
  • 本文提出,实践时,在熵 \(\mathcal{H}\) 和下游性能 \(R\) 之间存在一个关系(经验定理)
    $$ R = - a \exp \mathcal{H} + b $$
    • \(a, b\) 是拟合系数
    • 注:策略性能和策略熵是负相关关系,最高性能是:
      $$ (\mathcal{H} = 0,\quad R = - a + b) $$
    • 论文观点:RL 训练过程中,管理熵是必要的
    • 个人理解:这里的拟合公式在很多场景不一定成立,部分场景中,训练过程中熵会 下降->提升->下降,性能却持续在提升
      • 但这里的设定也有一定的道理,若 RL 训练再提升 pass@1 的效果时,一般就是变得越来越自信的过程,此时熵肯定会逐步下降
  • 作者推导: 策略熵的变化 是由 Action 概率和 Logits 变化之间的协方差驱动的
    • 当使用类似策略梯度(Policy Gradient-like)的算法时,该协方差与其 Advantage 成正比
    • 意味着,具有高 Advantage 的高概率 Action 会减少策略熵 ,而具有高 Advantage 的低概率 Action 则会增加策略熵
      • 理解:鼓励高概率 Action 会减少熵,鼓励低概率 Action 会增加熵(大家概率都相等时熵最大)
    • 实验结果:协方差项和熵差的值完全匹配
    • 注:协方差项在训练过程中大多保持正值,所以策略熵会单调递减
  • 本文通过限制高协方差 Token 的更新来激励控制熵,提出了两种简单而有效的技术,即 Clip-Cov 和 KL-Cov
    • 分别对具有高协方差的 Token 进行裁剪和应用 KL 惩罚
    • 实验结果:Clip-Cov 和 KL-Cov 正则化鼓励探索,从而帮助策略摆脱熵崩溃并获得更好的下游性能

Introduction and Discussion

  • LLM RL 的核心问题:策略熵的减少
  • 如 图 1 所示:
    • 左图:熵崩溃与性能饱和
      • 超过 \(95%\) 的熵降/性能增益发生在 RL 训练的早期阶段
      • 模型随后达到一个平台期,几乎没有改进
    • 右图:验证性能与策略熵之间的可预测关系
      • 在没有干预的情况下,策略和熵的兑换关系是指数的
  • 传统 RL 中:会有大量方法延缓熵降低的过程
  • 对于 LLM RL,策略熵的典型行为在很大程度上仍未得到充分研究
    • 作者从广泛的实验中发现了一个有趣且一致的模式:
      • 策略熵在几个训练步骤内急剧下降到接近 0,表明策略变得极其确定
      • 导致策略无法探索新路径导致性能平台期,验证性能同时也难以提升
    • 作者进一步推导:
      • 在没有熵干预(如熵损失或 KL 正则化)的情况下,下游性能完全可以由策略熵预测,拟合的曲线是一个简单的指数函数 (如图 1 所示)
        $$ R = - a \exp \mathcal{H} + b$$
        • 从这个式子中可以看到,基本上,策略正以可预测的方式用不确定性(熵)来换取奖励
    • 关键的推论:
      • (1) 如同缩放定律(Scaling Laws)(2020; 2022),给定策略模型和训练数据,探索-利用曲线是预先确定的
        • 可以在 RL 的早期阶段预测策略性能,并根据小模型预测大模型的性能(OpenAI, 2024b)(第 2.4 节)
      • (2) 这个方程表明策略性能的上限也是确定的,随着策略熵的耗尽
        $$ \mathcal{H} = 0,\quad \bar{R} = - a + b $$
        • 此外,简单地应用熵正则化方法被证明是无效的(第 4.1 节)
  • 为什么策略熵会单调递减?
    • 第一:对于像 LLM 这样的 Softmax 策略,两个连续步骤之间的熵变化与 Action 的对数概率和相应 Logit 变化的协方差成正比 (2025)
    • 第二:在类似策略梯度 和 类似自然策略梯度(Natural Policy Gradient-like)(2001)的算法下,Logit 差值与 Action Advantage 成正比
    • 理解:具有高 Advantage 和高概率的 Action 会减少策略熵,而具有高 Advantage 的低概率 Action 则会增加熵
    • 训练过程中的观察:
      • 在早期阶段,策略在训练数据上表现出高协方差,暗示策略的置信度是良好校准的(2022),因此可以安全地利用高置信度的轨迹,加强信念并最小化熵(2025; 2025; 2025)
      • 随着训练的进行,协方差逐渐下降但仍保持正值,持续将策略熵拉得更低
  • 结论:高协方差对可扩展的 RL 是有害的
  • 目标:限制高协方差 Token 的步长
  • 方法: Clip-Cov 和 KL-Cov,替代代理损失中的裁剪和 PPO-KL 方法(2017b)
    • Clip-Cov 随机选择一小部分具有正协方差的 Token 并 Detach 其梯度
    • KL-Cov 对具有最大协方差的 Token 应用 KL 惩罚

The Predictable “Collapse” of Policy Entropy,策略熵的“可预测”崩溃

  • takeaway
    • 在没有干预(例如,熵或 KL 正则化)的情况下,策略熵在 RL 期间以可预测的方式换取奖励,详细关系见 图 1 和前面的分析

Preliminaries

  • 本文考虑在可验证任务(如数学和编码)上使用 RL 微调 LLM(能避免奖励破解)
  • 给定输入 Prompt \(\pmb{x}\),一个 LLM \(\pi_{\theta}\) 自回归地生成输出序列 \(\pmb{y}\),该序列由 \(T\) 个 Token \(\{y_{1},\dots ,y_{t},\dots ,y_{T}\}\) 组成
  • 使用 RL 来优化 LLM 策略,以最大化从验证器接收的累积奖励 \(r\):
    $$\max_{\theta}J(\theta):= \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(x)}[r(y)] \tag {1}$$
    • \(\mathcal{D}\) 是训练分布
  • 为了优化目标函数,通常使用策略梯度算法进行梯度估计:
    $$\nabla_{\theta}J(\theta) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(x)}\left[\sum_{t = 0}^{T}\nabla_{\theta}\log \pi_{\theta}(y_{t}|y_{< t})A_{t}\right] \tag {2}$$
    • \(A_{t}\) 是当前 Action 的 Advantage,在不同的 RL 算法中有不同的实现
      • REINFORCE:
        $$A_t = r(\pmb{y})$$
      • 为缩小方差:GRPO 为每个 prompt 采样 \(K\) 个 Response,并按如下方式估计优势:
        $$
        A_t = \frac{r(\pmb{y}) - \text{mean}\left(r\left(\pmb{y}^{1:K}\right)\right)}{\text{std}\left(r\left(\pmb{y}^{1:K}\right)\right)} \tag {3}
        $$
      • 为处理 off-policy 数据并约束策略更新的大小:PPO 提出优化一个替代损失函数:
        $$
        L(\theta) = \mathbb{E}_{t}\left[\min \left(\frac{\pi_{\theta}(y_{t}|\pmb{y}_{< t})}{\pi_{\theta_{\text{old} } }(y_{t}|\pmb{y}_{< t})} A_{t},\text{clip}\left(\frac{\pi_{\theta}(y_{t}|\pmb{y}_{< t})}{\pi_{\theta_{\text{old} } }(y_{t}|\pmb{y}_{< t})},1 - \epsilon ,1 + \epsilon\right)A_{t}\right)\right] \tag {4}
        $$
Policy entropy
  • 策略熵量化了 Agent 所选择动作中固有的可预测性或随机性
  • 给定策略模型 \(\pi_{\theta}\) 和训练数据集 \(\mathcal{D}\),测量策略模型在训练数据上的平均 Token 级熵,其定义如下:
    $$
    \mathcal{H}(\pi_{\theta},\mathcal{D}) = -\mathbb{E}_{\mathcal{D},\pi_{\theta} }\left[\log \pi_{\theta}(y_t|\pmb{y}_{< t})\right] = -\frac{1}{|\mathcal{D}|}\sum_{x\in \mathcal{D} }\frac{1}{|\pmb{y}|}\sum_{t = 1}^{|\pmb{y}|}\mathbb{E}_{y_t\sim \pi_\theta}\left[\log \pi_\theta (y_t|\pmb{y}_{< t},x)\right] \tag {5}
    $$
  • 这种熵量化了策略在当前 prompts 上的不确定性水平,并被最大熵 RL 广泛采用作为正则化项 (2008; 2017, 2018)
  • 在实践中,我们一般从训练数据集中随机采样的每个 prompt 批次计算熵

Settings

  • 涵盖 4 个模型家族和 11 个基础模型(0.5-32B 参数),在 8 个公开基准上评估的可验证任务领域(数学和编码),以及 4 种 RL 算法
Models
  • 采用的模型跨越 4 个模型家族和 11 个广泛使用的开源基础模型
    • Qwen2.5 家族(Qwen2.5-0.5B, 1.5B, 3B, 7B, 32B)(2025)
    • Mistral 家族(Mistral-7B-v0.3 (2023), Mistral-Nemo-Base-2407 (MistralAI-NeMo), Mistral-Small-3.1-24B-Base-2501 (MistralAI-Small-3))
    • LLaMA 家族(LLaMA3.2-3B (Meta-Llama-3.2), LLaMA3.1-8B (Meta, 2024))
    • DeepSeek-Math-7B-Base(2024)
Tasks and datasets
  • 主要关注具有可验证奖励的数学和编码问题
  • 由于模型家族之间初始推理能力的固有差异,使用不同难度的数据来训练模型以稳定 RL 过程(详细信息见附录 A)中找到
  • 在下游性能评估中使用相同的数据以保持一致性
    • 数学任务,包括 MATH500(2021),AIME 2024(2024),AMC(2024),OlympiadBench(2024)和 OMNI-MATH(2024)
    • 编码任务,Eurus-2-RL-Code(2025)和 KodCode(2025)的测试集
RL training
  • 从基础模型开始 RL,遵循“Zero”设置(DeepSeek-2025),使用 veRL 框架(2024)
  • RL 算法,采用了 GRPO(2024),REINFORCE++(2025)和 PRIME(2025)
  • 超参数:
    • 对策略模型使用 \(5 \times 10^{- 7}\) 的学习率
    • 对 PRIME 中的隐式 PRM(2025)使用 \(10^{- 6}\) 的学习率
    • 策略和 PRM 都使用 256 的 Batch Size 和 128 的 Micro-Batch Size
    • Rollout 阶段收集 512 个 Prompt
    • 每个 Prompt 有 8 个采样的 Response
    • 参考 KL 散度系数设置为 0
    • 策略损失(方程 4)中的 \(\epsilon\) 是 0.2
    • 过滤掉所有 Response 都正确或都错误的 Prompt

A First Glance: Entropy Collapse and Performance Saturation

  • 所有实验中观察到一个一致的模式:
    • 策略熵在训练一开始就急剧下降,并单调地降至接近零
    • 策略的验证性能呈现相反的趋势,在训练开始时迅速上升,然后饱和在某个水平
  • 图 2 展示了在 11 个不同模型的 2400 步梯度步骤的 RL 运行中,平均归一化熵消耗/性能增益的百分比
    • 可以看到,\(73%\) 的熵消耗和 \(76%\) 的性能增益仅发生在前 200 个梯度步骤(训练的 1/12),而前 800 个(1/3)步骤占了超过 \(93%\) 的性能增益和 \(94%\) 的熵损失
    • 超过 2/3 的训练步骤产生的回报是微乎其微的

Fitting the Curves between Entropy and Performance,拟合熵与性能之间的曲线

  • 通过广泛的实验发现下游性能(准确率)和熵可以用指数函数拟合:
    $$R = -a\exp (\mathcal{H}) + b \tag {6}$$
    • \(R\) 代表验证性能,\(\mathcal{H}\) 是熵
  • 不同模型家族使用 GRPO 的拟合结果如图 3 和图 4 所示
    • 拟合曲线精确地描述了在所有进行的实验中性能-熵的关系,这些实验涵盖了各种大小、家族和不同任务的模型
    • 仅需 2 个系数即可拟合超过 200 个数据点的曲线,显示出高度的规律性(对 Instruct 模型 和使用不同数据集训练的拟合结果可以见附录 B)
Predicting late stage from early stage
  • 公式 6 可以精确地拟合策略熵和验证性能之间的曲线,这种拟合的一个直接应用是利用高熵数据点的观察结果来预测低熵时的策略性能
  • 为了验证函数形式可以在 RL 训练的早期阶段应用,可以更进一步,在有限的训练步数内拟合函数,并使用拟合出的函数来预测最终性能
  • 以 Qwen2.5 家族为例,仅使用前 36 个训练步骤来拟合带有系数 \(a\) 和 \(b\) 的函数形式
    • 使用这个函数,对后续 200 个训练步骤进行提前预测
  • 如图 5 所示,对于数学和编码任务,在预测期间实现了 \(0.9%\) 和 \(1.2%\) 的平均均方根误差,最终性能的 RMSE 分别为 \(0.5%\) 和 \(1.9%\)
    • 这表明策略的后期性能可以在训练早期进行估计,而无需运行整个 RL 过程

Understanding the Coefficients,系数理解

The coefficients are algorithm-irrelevant,系数与算法无关
  • 研究了不同的 RL 算法是否会影响拟合函数
  • 图 6 绘制了使用 GRPO,RLOO 和 PRIME 的拟合曲线
    • 尽管这些算法应用了不同的 Advantage 估计方法,但它们并不影响拟合的熵-性能函数
    • 表明系数 \(a, b\) 反映了策略模型和训练数据的一些内在属性
Predicting coefficients when scaling parameters,在扩展参数时预测系数
  • 通过对方程求导,得到
    $$ \frac{dR}{d\mathcal{H}} = - a\exp (\mathcal{H}) $$
    • 这意味着 \(a\) 是模型将熵转换为下游性能的速率
  • \(- a + b\) 是模型在熵完全耗尽时能达到的最大验证分数
    • \(a, b\) 应该与模型大小相关,其中更大的模型可以更有效地将熵转化为奖励,并达到更高的性能
  • 在 Qwen2.5 模型家族上(它们具有相似的架构并经历了相似的训练过程)
    • 图 7 绘制了模型参数数量(不含嵌入)与数学和编码任务上的 \(a, b\) 的关系图
    • 可以观察到 \(a\) 和 \(b\) 都随着策略大小的变化而以对数线性率平滑变化
  • 作者观点(除了数学和代码外的其他场景存疑):
    • 基于较小模型的训练动态来推断较大模型的系数,将可预测性扩展到模型大小的维度
    • 一旦作者训练同一家族内的较小模型并获得其系数,就能够预测较大 LM 通过 RL 训练的最终性能,而无需实际训练它们
  • 图 13 还说明了系数与训练数据相关

Discussion

The predictability,可预测性
  • 目前为止已经建立了
    • (1)策略性能与熵之间
    • (2)公式中系数与模型大小之间的可预测性
  • 作者认为:这类似与传统 LLM 预训练中的 Scaling Law
The ceiling
  • 有一个激烈的讨论质疑 RL 是否仅仅引出了预训练中已学到的潜在行为,因此无法突破基础模型的天花板(2025)
    • 本文结果有条件地支持这一说法,即如果策略熵减少,天花板不仅存在,而且可以预测
  • 作者认为:
    • 设定天花板的不是 RL 的内在限制,而是 LLM 的熵机制导致了这一结果
    • LLM 提供了强大的策略先验,但其输出分布也被收窄了,这可能会阻碍 RL 期间的探索潜力

Dynamics Analysis of Policy Entropy

  • TAKEAWAY
    • (1) 对于包括 LLM 在内的 softmax 策略,策略熵的变化由 log 概率与 Action logits 变化之间的协方差决定
    • (2) 对于策略梯度和自然策略梯度,logits 的变化与 Action 优势成正比,这意味着高协方差会导致策略熵迅速下降,正如在用于 LLM 推理的 RL 中观察到的那样

Entropy Dynamics of Softmax Policy,Softmax 策略的熵 Dynamics

  • 对于步骤 \(k\),计算一次参数更新前后的熵差,即 \(\mathcal{H}(\pi_{\theta}^{k + 1})\) 和 \(\mathcal{H}(\pi_{\theta}^{k})\) 的差
    • 首先考虑 LLM 的一个内在属性,即它们是 softmax 策略,这意味着策略由下式参数化:
      $$\pi_{\theta}(a|s) = \frac{\exp(z_{s,a})}{\sum_{a^{\prime}\in \mathcal{A} }\exp(z_{s,a^{\prime} })} \tag {7}$$
      • \(s\sim d_{\pi_{\theta} }\) 和 \(a\sim \pi_{\theta}^{k}(|s)\) 分别表示状态和 Action
      • \(z_{s,a}\) 是在给定状态 \(s\) 下 Action \(a\) 的输出 logit
    • 对于任何 softmax 策略,有以下引理:
  • Lemma1(Entropy difference of softmax policy) (证明见附录 E.2)
    • 假设策略 \(\pi_{\theta}\) 是一个表格型 softmax 策略,其中每个状态-动作对 \((s,a)\) 与一个单独的 logit 相关联
      $$ z_{s,a} = \theta_{s,a} $$
      • 理解:这里的 \(z_{s,a}\) 是 softmax 前的 logits 值
    • 则在给定状态 \(s\) 下,两步之间策略熵的差在一阶近似下满足
      $$
      \begin{align}
      \mathcal{H}(\pi_{\theta}^{k + 1}) - \mathcal{H}(\pi_{\theta}^{k}) &\approx \mathbb{E}_{s\sim d_{\pi_{\theta} } }\left[\mathcal{H}(\pi_{\theta}^{k + 1}|s) - \mathcal{H}(\pi_{\theta}^{k}|s)\right] \\
      &\approx \mathbb{E}_{s\sim d_{\pi_{\theta} } }\left[-Cov_{a\sim \pi_{\theta}^{k}(|s)}\left(\log \pi_{\theta}^{k}(a|s),z_{s,a}^{k + 1} - z_{s,a}^{k}\right)\right]
      \end{align}
      $$
      • \(z_{s,a}^{k+1} - z_{s,a}^{k}\) 是步骤 \(k\) 和步骤 \(k + 1\) 之间输出 logits 的变化
    • 该引理表明:策略熵的变化近似等于 Action 的原始 log 概率与 logits 变化的负协方差
    • 也就是说:当一个 Action \(a\) 在更新前从策略获得高概率,并且其相应的 logit 在更新后也在增加时,它将降低策略熵
      • 理解:高概率的 Action,更新后变得更大了,协方差是正的,负的协方差是负的,也就是熵在减少

Entropy Dynamics under Policy Gradient / Natural Policy Gradient Algorithms,策略梯度 / 自然策略梯度算法下的熵 Dynamics

  • 从引理 1 可知,输出 logits 的 step-wise 差异 \(z_{s,a}^{k + 1} - z_{s,a}^{k}\) 会导致熵的变化,这与所使用的具体训练算法有关
  • 本节进一步推导策略梯度和自然策略梯度算法下的 logits 变化
    • 假设通过策略梯度更新 Actor 策略,那么
      $$ z_{s,a}^{k + 1} - z_{s,a}^{k} = -\eta \cdot \nabla_{z}J(\theta)$$
      • \(J(\theta)\) 表示目标函数
      • \(\eta\) 表示学习率
    • \(\nabla_{z}J(\theta)\) 用公式 2 计算:
      $$\nabla_{\theta}J(\theta) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(x)}\left[\sum_{t = 0}^{T}\nabla_{\theta}\log \pi_{\theta}(y_{t}|y_{< t})A_{t}\right] \tag {2}$$
  • 有以下命题:
  • Proposition 1 (Difference of policy logits in vanilla policy gradient) (证明见附录 E.3)
    • 令 Actor 策略 \(\pi_{\theta}\) 是一个表格型 softmax 策略,并使用公式 2 通过梯度回传以学习率 \(\eta\) 进行更新,则两步之间 \(z_{s,a}\) 的差满足
      $$z_{s,a}^{k + 1} - z_{s,a}^{k} = \eta \pi_{\theta}(a\mid s)A(s,a)$$
    • 将命题 1 应用于引理 1,可以进一步用以下定理 1 描述熵的变化:
  • Theorem 1 (Entropy change under policy gradient)
    • 令 Actor 策略 \(\pi_{\theta}\) 是一个表格型 softmax 策略,并且 \(\pi_{\theta}\) 通过 vanilla 策略梯度更新,则在给定状态 \(s\) 下,两步之间策略熵的差满足
      $$\mathcal{H}(\pi_{\theta}^{k + 1}|s) - \mathcal{H}(\pi_{\theta}^{k}|s)\approx -\eta \cdot Cov_{a\sim \pi_{\theta}^{k}(\cdot |s)}\left(\log \pi_{\theta}^{k}(a|s),\pi_{\theta}^{k}(a|s)\cdot A(s,a)\right)$$
    • 定理 1 揭示了策略熵在策略梯度方法下如何变化
      • 直观地说:如果一个 Action \(a\) 同时获得高/低概率和高/低优势,则会降低熵,反之亦然
    • 在早期阶段,策略在训练数据上表现出高协方差,这意味着策略的置信度是良好校准的 (well-calibrated) (2022),因此可以安全地利用高置信度的轨迹,强化信念并最小化熵 (2025; 2025; 2025)
  • Liu (2025) 对自然策略梯度进行了推导,在下面给出结论
  • Theorem 2 (Entropy change under natural policy gradient) (证明见附录 E.4)
    • 令 Actor 策略 \(\pi_{\theta}\) 是一个表格型 softmax 策略,并且 \(\pi_{\theta}\) 通过自然策略梯度 (2001) 更新,则在给定状态 \(s\) 下,两步之间策略熵的差满足
      $$\mathcal{H}(\pi_{\theta}^{k + 1}|s) - \mathcal{H}(\pi_{\theta}^{k}|s)\approx -\eta \cdot Cov_{a\sim \pi_{\theta}^{k}(\cdot |s)}\left(\log \pi_{\theta}^{k}(a|s),A(s,a)\right)$$
  • Conclusion
    • 从定理 1 和定理 2 中可获得直观的 Insight:
      • 如果当前策略下的 Action 概率 \(P(a)\) 与相应优势值 \(A(a)\) 之间存在强正相关,则会降低熵
        • 当前就是这个情况偏多,所以平均而言,这些更新会导致策略熵降低
      • 如果(仅仅是假设) 当前策略下的 Action 概率 \(P(a)\) 与相应优势值 \(A(a)\) 负相关,则会增加熵

Empirical Verification

  • 前面的理论分析提供了通过策略梯度算法优化 softmax 策略时影响策略熵的因素的 Insight
  • 本节通过实验来验证理论结论,特别是定理 1
Setting
  • 在 Qwen2.5-7B 上应用带有策略梯度的 GRPO,即在没有 PPO 代理损失(理解:Clip 损失)的情况下进行 on-policy 学习
  • 在此背景下,采用 bandit 设置(多臂老虎机形式),其中 Prompt \(x\) 是状态,整个 Response \(y\) 是 Action,那么协方差项变为:
    $$Cov_{a\sim \pi_{\theta}(\cdot |s)}\left(\log \pi_{\theta}(a\mid s),\pi_{\theta}(a\mid s)\cdot A(s,a)\right) = Cov_{y\sim \pi_{\theta}(\cdot |x)}\left(\log \pi_{\theta}(y\mid x),\pi_{\theta}(y\mid x)\cdot A(y,x)\right) \tag {8}$$
  • 在训练期间,计算每个 Prompt 的分组协方差,并在一批 Prompts 上取平均
  • 进一步用 Response 的长度对 log 概率进行归一化,得到
    $$\log \pi_{\theta}(\pmb {y}\mid \pmb {x}) = \frac{1}{|\pmb{y}|}\sum_{t = 1}^{|\pmb{y}|}\log \pi_{\theta}(y_t\mid \pmb{y}_{< t},\pmb {x}) \tag {9}$$
    • 理解:如果不进行归一化,会导致序列越长的 Response,\(\log \pi_{\theta}(\pmb {y}\mid \pmb {x})\) 越小
Experiment Results
  • 本节记录了基于上述推导的两个关键指标 \(Cov(\cdot)\) 和 \(\mathcal{H}(\pi_{\theta})\) 在整个训练期间的情况,并试图分析它们的关系和动态
  • 1)\(Cov(\cdot)\) 和 \(-d(\mathcal{H})\) 动态之间的相似性
    • 根据定理 1,有理论结果 \(-d(\mathcal{H}) \propto Cov(\cdot)\)
    • 如图 8 左侧所示
      • \(-d(\mathcal{H})\) 和 \(Cov(\cdot)\) 的经验曲线表现出高度相似的动态,为定理提供了强有力的实证支持
      • 在训练的早期阶段,熵 \(\mathcal{H}\) 迅速下降,伴随着相对较大且为正的 \(Cov(\cdot)\)
      • 随着 RL 训练的进行,熵衰减减慢,\(Cov(\cdot)\) 稳定在较低水平,反映了策略的逐渐收敛
      • 其他发现: \(Cov(\cdot)\) 在整个训练过程中保持正值,从而导致熵持续下降
  • 2)不同难度样本间 \(Cov(\cdot)\) 动态的变化
    • 利用基于分组的采样策略,根据训练样本的准确率对其难度进行分类
    • 图 8 右侧展示了三个难度组的协方差曲线,其中较低的准确率表示较高的难度
    • 观察结果: \(Cov(\cdot)\) 对于较难的样本往往幅度较小,这与直觉相符:
      • 当模型难以学习时,高概率的 Action 并不总是与较高的预期回报可靠地关联
      • 对于较简单的样本,模型更自信且校准得更好,\(Cov(\cdot)\) 往往更高,表明 Action 概率与优势估计之间的一致性更强
  • 图 8:
    • 左图:在 on-policy GRPO 训练期间策略熵( step-wise 熵差)和协方差的动态变化
      • 与理论结果预期相似的趋势:两者变化几乎同步
    • 右图:不同的 Prompt 组表现出不同的协方差行为
      • 准确率较高的简单 Prompt 具有较高的协方差
      • 准确率较低的较难 Prompt 具有较低的协方差

Entropy Control by Covariance Regularization,通过协方差正则化控制熵

  • TAKEAWAY
    • 可以通过限制高协方差 Token 的更新来控制策略熵,例如,裁剪 (Clip-Cov) 或应用 KL 惩罚 (KL-Cov)
    • 这些简单的技术可以防止策略熵崩溃,从而促进探索

Effect of Entropy Regularization

  • RL 文献中控制策略熵的一种常见方法是应用熵损失 (entropy loss) (2017b)
    • 本节进行实验看看这对 LLM 是否有效
  • 图 9 展示了添加熵损失的结果,如图所示:
    • 熵损失对系数高度敏感
      • 小的系数对熵影响不大 (0.0001, 0.001)
      • 大的系数会导致熵爆炸 (0.01),注:这里熵爆炸的原因是模型只往熵小的方向优化了
    • 将系数设置为 0.005 成功地稳定了策略熵,但它的表现并没有优于其他基线
  • 图 10 中展示了通过调整策略模型和参考模型之间的 KL 惩罚来控制熵的结果
    • 参考 KL 实现了稳定的熵值,但它未能改善策略,反而导致性能下降
  • 从传统 RL 中直接采用熵正则化技术难以解决 LLM 的熵瓶颈
    • 这些正则化项要么对超参数敏感 (2025),要么会降低策略性能
    • 所以,最近的大多数工作也不包含它们 (2025; 2025; 2025; 2025)

Suppressing Tokens with High Covariances,抑制高协方差的 Token

  • 已知策略熵动态与 Action 概率和优势之间的协方差密切相关
  • 如表 1 所示,一小部分 Token 表现出极高的协方差,远远超过平均值
    • 也就是说这些离群的 Token 在引发熵崩溃中起主导作用
    • 为了减轻它们的不利影响,可以它们对策略损失的贡献施加约束
  • 在 RL 文献中,PPO 的两个变体使用裁剪或 KL 惩罚来约束策略更新 (2017b),防止过于激进的变化
    • 受这些方法的启发,本文提出了两种简单而有效的协方差感知方法:Clip-Cov 和 KL-Cov 来实现这一目标
  • 自然策略梯度很少用于 LLM 的后训练,因为它需要耗时的二阶优化
    • 但它引入的以 KL 距离为约束的目标函数与 TRPO (2015) 和 PPO 有着相似的理念
    • 本节稍后将定理 2 应用于像 PPO 这样的算法
  • 假设有 \(N\) 个 Rollout Token,\(\pi_{\theta}(y_{i})\) 表示策略模型在给定其相应前缀的情况下对 Token \(y_{i}\) 的输出概率
    • 根据定理 2,首先定义 Token 级别的 log 概率与优势之间的中心化叉积为:
      $$Cov(y_{i}) = (\log \pi_{\theta}(y_{i}) - \frac{1}{N}\sum_{j = 1}^{N}\log \pi_{\theta}(y_{j}))\cdot (A(y_{i}) - \frac{1}{N}\sum_{j = 1}^{N}A(y_{j})) \tag {10}$$
      • \(Cov\) 是 \(N\) 个 Rollout 中每个 Token 的协方差
      • 理解:根据协方差的定义公式得到上述公式:
        • 总体协方差
          $$
          \text{Cov}(X,Y) = \boldsymbol{E}\big[(X-\boldsymbol{E}X)(Y-\boldsymbol{E}Y)\big] = \boldsymbol{E}(XY)-\boldsymbol{E}(X)\boldsymbol{E}(Y)
          $$
        • 离散样本协方差
          $$
          \text{Cov}(X,Y) = \frac{1}{n-1}\sum_{i=1}^n (x_i-\bar{x})(y_i-\bar{y})
          $$
    • 其期望就是定理 2 中的协方差
Clip-Cov
  • 在 Clip-Cov 策略中,按如下方式从策略梯度更新中裁剪出一小部分高协方差的 Token
  • 通过公式 10 计算后,根据协方差值随机选择 \(r\cdot N\) 个高协方差的 Token:
    $$I_{\text{clip} } = I\sim \text{Uniform}(i\mid Cov(y_{i})\in [\omega_{\text{low} },\omega_{\text{high} }]),[r\cdot N]) \tag {11}$$
    • \(I\) 是索引的缩写
    • \(r\) 表示裁剪比例
    • \(\omega_{\text{low} },\omega_{\text{high} }\) 是两个预定义的协方差边界,分别设置
      • 两者都设置得远高于平均协方差 (\(>500\times\))
      • 问题:只需要下界 \(\omega_{\text{low} }\) 就够了吧,为什么需要上界 \(\omega_{\text{high} }\)
  • 所选索引的 Token 将 Detach 策略梯度(Mask 梯度),即:
    $$
    L_{\text{clip-Cov} }(\theta) =
    \begin{cases}
    \mathbb{E}_t\left[\frac{\pi_{\theta}(y_t|\mathbf{y}_{< t})}{\pi_{\theta_{\text{old} } }(y_t|\mathbf{y}_{< t})} A_t\right], & t\notin I_{\text{clip} }\\
    0, & t\in I_{\text{clip} }
    \end{cases}
    \tag {12}
    $$
    • \(t\) 是一个 Rollout Response 中的第 \(t\) 个 Token,并且每个 \(t\) 唯一对应于 \(N\) 中的一个索引 \(i\)
KL-Cov
  • KL-Cov 策略更简单
    • 首先计算公式 10 中的协方差
    • 然后排序并选择协方差排在前 \(k\) 比例的 Token:
      $$I_{\text{KL} } = \{i\mid \text{Rank}(Cov(y_i))\leq k\cdot N\} \tag {13}$$
      • 这里的 \(k\) 表示将受到 KL 惩罚的 Token 比例,且 \(k\ll 1\)
    • 最后对选定的 Token 施加 KL 惩罚(当前策略与 Rollout 策略之间的 KL 散度),策略损失计算如下:
      $$
      L_{\text{KL-Cov} }(\theta) =
      \begin{cases}
      \mathbb{E}_t\left[\frac{\pi_{\theta}(y_t|\mathbf{y}_{< t})}{\pi_{\theta_{\text{old} } }(y_t|\mathbf{y}_{< t})} A_t\right], & t\notin I_{\text{KL} }\\
      \mathbb{E}_t\left[\frac{\pi_{\theta}(y_t|\mathbf{y}_{< t})}{\pi_{\theta_{\text{old} } }(y_t|\mathbf{y}_{< t})} A_t - \beta \mathbb{D}_{\text{KL} }(\pi_{\theta_{\text{old} } }(y_t|\mathbf{y}_{< t})||\pi_{\theta}(y_t|\mathbf{y}_{< t}))\right], & t\in I_{\text{KL} }
      \end{cases}
      \tag {14}$$
      • 其中 \(\beta\) 是控制 KL 惩罚权重的系数
  • 在代码清单 1 中展示了伪代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    def compute_policy_loss(old_log_prob , log_prob , advantages , select_ratio, method, **args):
    ratio = exp(log_prob - old_log_prob) pg_losses1 = -ratio * advantages
    # calculate token wise centered cross - product
    covs = (log_prob - log_prob.mean()) * (advantages - advantages.mean ())
    select_num = int(select_ratio * len(pg_losses1))
    if method == "clip_cov":
    pg_losses2 = -clip(ratio, args["clip_range_lb"], args["clip_range_ub"]) * advantages
    # randomly select index to be detached
    clip_idx = random_select(covs[covs > args["cov_lb"] & covs < args["cov_ub"]], num=select_num)
    pg_losses1[clip_idx].detach_() + pg_losses2[clip_idx].detach_()
    pg_loss = maximum(pg_losses1 , pg_losses2).mean()
    if method == "kl_cov":
    kl_coef = args["kl_coef"]
    kl_penalty = (log_prob - old_log_prob).abs()
    # pg_losses = pg_losses1 + kl_coef * kl_penalty
    # find out index with highest conviriance
    select_idx = topk(covs, k=select_num, largest=True)
    # apply KL penalty of these samples
    pg_losses1[select_idx] += kl_coef * kl_penalty[select_idx]
    pg_loss = pg_losses1.mean()
    return pg_loss

Experiments

Settings
  • 在数学任务上训练 Qwen2.5 模型,使用 DAPOMATH 数据集 (2025) 进行训练
  • 在每个 Rollout 步骤中
    • 为一批 256 个 Prompt 中的每一个采样 8 个 Response
    • 温度为 1
    • 对收集到的 Response 执行 8 次策略更新(8 个 Off-policy 步骤)
  • 过滤掉全对或全错的 Prompt
    • 测试数据集包括 MATH500, AIME 2024, AIME 2025 (2024), AMC, OMNI-MATH, OlympiadBench 和 Minerva (2022)
  • 在评估期间,将 AIME 和 AMC 的 Rollout 温度设置为 0.6,而对所有其他测试集使用贪心解码
  • 对于基线,比较原始 GRPO 和带有 Clip-higher 的 GRPO(将 PPO 损失中的上限阈值 \(\epsilon\) 调整为 0.28)
  • 本文超参
    • 在 Clip-Cov 中:
      • 裁剪比例 \(r\) 为 \(2 \times 10^{- 4}\)
      • \(\omega_{\text{low} } = 1\)
      • \(\omega_{\text{high} } = 5\)
    • 对于 KL-Cov
      • \(k\) 对于 Qwen2.5-7B 和 32B 分别设置为 \(2 \times 10^{- 3}\) 和 \(2 \times 10^{- 4}\)
      • KL 系数 \(\beta\) 设置为 1
    • 最大生成长度为 8192
Results and analysis
  • 表 2 中展示实验结果,可以看到两种方法在所有基准测试中都取得了不俗的提升
    • 与 GRPO 相比,本文方法在 7B 模型上平均高出 \(2.0%\),在 32B 模型上平均高出 \(6.4%\)
  • 如图 11 所示,本文方法能够在整个训练过程中维持相当高的熵水平
    • 当基线的熵达到平稳期且无法再被消耗时,KL-Cov 方法仍然保持着高出 \(10\times\) 以上的熵水平
    • 策略模型的 Response 长度稳步增加,其在测试集上的表现持续超越基线
    • 这表明:模型能够在训练期间更“自由地”探索,通过 RL 学习到更好的策略
  • 对比 clip-higher
    • clip-higher 技术也可以在训练早期增加熵并带来性能提升,但它逐渐变得不稳定,性能出现饱和并下降
    • 本文方法在整个训练过程中获得了更稳定的熵曲线,最终取得了比基线更显著的改进
  • 注:本文方法在更大的 Qwen2.5-32B 上产生了更显著的收益
    • 在最具挑战性的基准 AIME24 和 AIME25 上,本文方法相比 GRPO 分别实现了 \(15.0%\) 和 \(14.6%\) 的提升
    • 作者推断这是因为 32B 模型相比 7B 模型具有更大的预训练潜力
      • 一旦由熵崩溃引起的“探索诅咒(exploration curse)”被解除,32B 模型就能够探索更多样化和更高质量的策略

Get Policy Entropy Controlled,控制策略熵

  • 本节评估本文方法控制策略熵的能力
  • 图 12 所示
    • 对于 Clip-Cov,策略熵的水平可以通过调整裁剪样本的比例来调节,裁剪的样本越多,熵越高
    • 对于 KL-Cov,可以通过控制 KL 系数 \(\beta\) 来调节熵,即 KL 惩罚的权重,系数越大,熵越高
    • KL-Cov 达到了比 Clip-Cov 更稳定的熵曲线,这可能更有利于稳定训练过程
      • 不同场景下熵的最优值仍然是一个悬而未决的问题,但本文方法表明,可以简单地调整超参数来控制策略熵,从而能够引导熵并使模型更有效地探索

Discussion

Connection with clip-higher
  • 主要基线方法 clip-higher (2025) 也可以激励更高的策略熵,这种技术与本文方法具有相似的功能
    • 通过提高重要性采样比率的上升阈值
      • 1)clip-higher 包含了更多低概率的 Token 用于策略更新
      • 2)上升阈值仅影响具有正优势的 Token
    • 上述两点意味着 clip-higher 实际上是在梯度计算中添加了更多低协方差 (低概率,高优势 ,平均协方差约为 \(0.03\))的 Token
  • 本文方法更进一步,直接使用协方差作为阈值,从而更精确地控制熵
The philosophy of entropy control,熵控制的理念
  • 策略熵对超参数设置很敏感
    • 本文方法只干预了极小部分的 Token(\(10^{- 4}\) 到 \(10^{- 3}\)),却完全改变了熵曲线
    • 这意味着少数“关键 (pivotal)” Token 对于 LLM 的熵至关重要
  • 注:目前没有观察到干预的熵与模型性能之间的关系
    • 是否存在一个最优的熵值来平衡探索和训练稳定性仍然是一个待解决问题

补充:Related Work

Policy entropy in reinforcement learning

  • 熵源于信息论,为管理利用与探索的权衡提供了一种有原则的机制
  • 熵正则化 RL ,也称为最大熵 RL (maximum entropy RL) (2008; 2009),在奖励中采用正则化项来鼓励高熵 Action
  • 这个正则化项被广泛地继承在 RL 算法中 (2015, 2016; 2017a; 2017, 2018),并被视为一种必需品
  • 在用于 LLM 的 RL 中,关于是否应该保留熵正则化存在不同意见 (2022; 2024; 2025; 2025)
    • 本文实验表明,控制熵是必要的,但可以设计比熵损失更好的目标

Predictability of reinforcement learning for reasoning language models,用于推理语言模型的 RL 的可预测性

  • 这项工作的第一部分揭示了用于 LLM 推理的 RL 的可预测性
  • LLM 的发展很大程度上受到神经缩放定律的指导,该定律将模型性能与计算预算、模型大小和训练数据量联系起来 (2017; 2020; 2022)
  • 通过对较小模型进行缩放实验,可以准确预测较大模型的损失和任务性能
  • 在 RL 中,Hilton 等人 (2023); Rybkin 等人 (2025) 研究了非 LLM 模型上策略性能与计算量的缩放行为,但用于 LLM 的 RL 的可预测性还有待研究
  • Gao 等人 (2022) 提出根据 LLM 上 RL 中的 KL 散度来预测奖励分数,用于模拟代理奖励模型的过优化效应
    • 这项工作与作者的结论一致,因为:
      • 1)可验证的奖励消除了代理奖励模型与真实情况之间的差距
      • 2)KL 散度与策略熵之间的相似性

Reinforcement learning for LLMs

  • RL 已成为 LLM 后训练的主要方法 (2022; 2024; 2023; 2025; 2023)
  • 最近的工作通过使用具有可验证奖励的 RL 在增强 LLM 的推理能力方面取得了进一步的突破 (OpenAI, 2024a; 2024; DeepSeek-2025; 2025),引起了研究界的极大关注 (2025; 2025; 2025; 2025)
    • 目前仍然缺乏对用于 LLM 的 RL 底层机制的系统研究,这是本文的主要目标

附录 A:Training Details for Different Models

  • 由于不同模型家族之间初始推理能力的固有差异,本文使用不同难度的数据来训练模型,以稳定 RL 过程
    • 对于数学任务
      • 训练:
        • 使用 Eurus-2-RL-Math (2025) 训练 Qwen 家族和 Mistral-24B 模型
        • 其他模型家族则使用 GSM8K (2021) 进行训练
      • 评估:
        • 使用 MATH500 (2021)、AIME 2024 (2024)、AMC (2024)、OlympiadBench (2024) 和 OMNI-MATH (2024) 进行评估
    • 对于代码任务
      • 使用 AceCode (2025)、Eurus-2-RL-Code (2025) 和 Kodcode\(^{3}\) 训练 Qwen 家族和 Mistral-24B 模型

附录 B:More Fitting Results

  • 并未看到新增的结果

附录 C:Fitting Results of Training with Different Dataset,使用不同数据集训练的拟合结果

  • 图 13:在不同数据上训练 Qwen2.5-7B

附录 D:Fitting Results of Instruct Models, Instruct 模型 的拟合结果

  • 本节在 Instruct 模型 上进行了拟合实验,拟合函数在本文实验中仍然有效,在此展示拟合结果
  • 图 14:在数学任务上训练 Qwen2.5 Instruct 模型

附录 E:Proof

E.1 Useful Lemmas

  • 引理 2 (Softmax 函数的导数)
    $$
    \frac{\partial \log \pi_{\theta}(a | s)}{\partial \theta_{s,a’} } = \mathbf{1}\{a = a’\} - \pi_{\theta}(a’ | s)
    $$
  • 引理 3 (给定状态 \(s\) 的优势函数期望)
    $$
    \begin{aligned}
    \mathbb{E}_{a \sim \pi_{\theta}(\cdot|s)} [A^{\pi_{\theta} }(s, a)] &= \mathbb{E}_{a \sim \pi_{\theta}(\cdot|s)} [Q^{\pi_{\theta} }(s, a) - V^{\pi_{\theta} }(s)] \\
    &= \mathbb{E}_{a \sim \pi_{\theta}(\cdot|s)} [Q(s, a)] - \mathbb{E}_{a \sim \pi_{\theta}(\cdot|s)} [V(s)] \\
    &= V(s) - V(s) \\
    &= 0
    \end{aligned}
    $$
  • 补充:引理 2 的证明
    • 将策略 \(\pi_{\theta}(a|s)\) 取对数,将除法转换为减法:
      $$
      \log \pi_{\theta}(a | s) = \log \left( \frac{\exp(z_{s,a})}{\sum_{j} \exp(z_{s,j})} \right) = z_{s,a} - \log \left( \sum_{j} \exp(z_{s,j}) \right)
      $$
      • 注:这里 \(z_{s,a} = \theta_{s,a}\),且分母中的求和 \(\sum_{j} \exp(z_{s,j})\) 是不依赖于特定动作 \(a\) 的,它是对所有动作 \(j\) 的logits求和(通常称为配分函数,log-partition function)
    • 对参数 \(\theta_{s,a’}\) 求导(需要考虑两种情况:当 \(a’\) 等于 \(a\) 时,以及当 \(a’\) 不等于 \(a\) 时)
      • 情况 1:\(a’ = a\)
        • 此时,导数作用于分子中的特定项 \(z_{s,a}\)
          $$
          \frac{\partial \log \pi_{\theta}(a | s)}{\partial \theta_{s,a} } = \frac{\partial z_{s,a} }{\partial \theta_{s,a} } - \frac{\partial}{\partial \theta_{s,a} } \log \left( \sum_{j} \exp(z_{s,j}) \right)
          $$
        • 由于 \(z_{s,a} = \theta_{s,a}\),第一项的导数为 \(1\)。对于第二项,根据复合函数求导法则(链式法则):
          $$
          \begin{align}
          \frac{\partial}{\partial \theta_{s,a} } \log \left( \sum_{j} \exp(z_{s,j}) \right) &= \frac{1}{\sum_{j} \exp(z_{s,j})} \cdot \frac{\partial}{\partial \theta_{s,a} } \left( \sum_{j} \exp(z_{s,j}) \right) \\
          &= \frac{1}{\sum_{j} \exp(z_{s,j})} \cdot \exp(z_{s,a}) \\
          &= \frac{\exp(z_{s,a})}{\sum_{j} \exp(z_{s,j})} \\
          &= \pi_{\theta}(a | s)
          \end{align}
          $$
        • 因此,当 \(a’ = a\) 时:
          $$
          \frac{\partial \log \pi_{\theta}(a | s)}{\partial \theta_{s,a} } = \color{red}{1 - \pi_{\theta}(a | s)}
          $$
      • 情况 2:\(a’ \neq a\)
        • 此时,导数作用于分母中的某个特定项 \(z_{s,a’}\),而分子第一项 \(z_{s,a}\) 对 \(\theta_{s,a’}\) 的导数为 \(0\)
          $$
          \frac{\partial \log \pi_{\theta}(a | s)}{\partial \theta_{s,a’} } = 0 - \frac{\partial}{\partial \theta_{s,a’} } \log \left( \sum_{j} \exp(z_{s,j}) \right)
          $$
        • 同样地,计算第二项:
          $$
          \begin{align}
          \frac{\partial}{\partial \theta_{s,a’} } \log \left( \sum_{j} \exp(z_{s,j}) \right) &= \frac{1}{\sum_{j} \exp(z_{s,j})} \cdot \frac{\partial}{\partial \theta_{s,a’} } \left( \sum_{j} \exp(z_{s,j}) \right) \\
          &= \frac{1}{\sum_{j} \exp(z_{s,j})} \cdot \exp(z_{s,a’}) \\
          & = \frac{\exp(z_{s,a’})}{\sum_{j} \exp(z_{s,j})} \\
          &= \pi_{\theta}(a’ | s)
          \end{align}
          $$
        • 因此,当 \(a’ \neq a\) 时:
          $$
          \frac{\partial \log \pi_{\theta}(a | s)}{\partial \theta_{s,a’} } = 0 - \pi_{\theta}(a’ | s) = \color{red}{-\pi_{\theta}(a’ | s)}
          $$
      • 合并表达式 :
        • 上述两种情况可以合并为一个紧凑的形式,使用指示函数 \(\mathbf{1}\{a = a’\}\)(当 \(a = a’\) 时值为1,否则为0):
          $$
          \frac{\partial \log \pi_{\theta}(a | s)}{\partial \theta_{s,a’} } = \mathbf{1}\{a = a’\} - \pi_{\theta}(a’ | s)
          $$

E.2 Proof for Lemma 1

  • 引理 1 :设 Actor 策略 \(\pi_{\theta}\) 是一个表格型 (tabular) softmax 策略,则在两个连续步骤之间,给定状态 \(s\) 的信息熵之差满足
    $$
    \mathcal{H}(\pi_{\theta}^{k+1}|s) - \mathcal{H}(\pi_{\theta}^{k}|s) \approx -\text{Cov}_{a \sim \pi_{\theta}^{k}(\cdot|s)} \left( \log \pi_{\theta}^{k}(a|s), z_{s,a}^{k+1} - z_{s,a}^{k} \right)
    $$
  • 证明 adapted from (Liu, 2025)
    • 在表格型 softmax 策略中,每个状态-动作对 \((s, a)\) 都与一个独立的 logit 参数 \(z_{s,a} = \theta_{s,a}\) 相关联
    • 假设通过 \(z^{k+1} = z^{k} + \eta \cdot \nabla J(\pi_{\theta})\) 来更新 logits \(z\)
    • 由于 \(\eta\) 相对较小,利用泰勒展开的一阶近似,有
      $$
      \mathcal{H}(\pi_{\theta}^{k+1} | s) \approx \mathcal{H}(\pi_{\theta}^{k} | s) + \langle \nabla \mathcal{H}(\pi_{\theta}^{k} | s), (z^{k+1} - z^{k}) \rangle
      $$
  • 然后需要推导出 \(\nabla \mathcal{H}(\pi_{\theta}^{k} | s)\) 是什么
    • 根据 \(\mathcal{H}\) 的定义,有
      $$
      \begin{aligned}
      \nabla_{\theta} \mathcal{H}(\pi_{\theta} | s) &= \nabla_{\theta} \mathcal{H}(\pi_{\theta}(\cdot | s)) \\
      &= \nabla_{\theta} \left( -\mathbb{E}_{a \sim \pi_{\theta}(\cdot|s)} [\log \pi_{\theta}(a | s)] \right) \\
      &= -\mathbb{E}_{a \sim \pi_{\theta}(\cdot|s)} [\nabla_{\theta} \log \pi_{\theta}(a | s) + \log \pi_{\theta}(a | s) \nabla_{\theta} \log \pi_{\theta}(a | s)] \\
      &= -\mathbb{E}_{a \sim \pi(\cdot|s)} [\log \pi_{\theta}(a | s) \nabla_{\theta} \log \pi_{\theta}(a | s)]
      \end{aligned}
      $$
  • 于是得到 内积 \(\langle \nabla_{\theta} \mathcal{H}(\theta^{k} | s), (z^{k+1} - z^{k}) \rangle\) 为:
    $$
    \begin{aligned}
    \langle \nabla_{\theta} \mathcal{H}(\theta^{k} | s), (z^{k+1} - z^{k}) \rangle &= -\langle \mathbb{E}_{a \sim \pi(\cdot|s)} [\log \pi_{\theta}(a | s) \nabla_{\theta} \log \pi_{\theta}(a | s)], (\theta^{k+1} - \theta^{k}) \rangle \\
    &= -\mathbb{E}_{a \sim \pi(\cdot|s)} \left[ \log \pi_{\theta}(a | s) \langle \nabla_{\theta} \log \pi_{\theta}(a | s), \theta^{k+1} - \theta^{k} \rangle \right] \\
    &= -\mathbb{E}_{a \sim \pi(\cdot|s)} \left[ \log \pi_{\theta}(a | s) \left( \sum_{a’ \in \mathcal{A} } \frac{\partial \log \pi_{\theta}(a | s)}{\partial \theta_{s,a’} } \cdot (\theta_{s,a’}^{k+1} - \theta_{s,a’}^{k}) \right) \right] \\
    &= -\mathbb{E}_{a \sim \pi(\cdot|s)} \left[ \log \pi_{\theta}(a | s) \left( \sum_{a’ \in \mathcal{A} } (\mathbf{1}\{a = a’\} - \pi(a’ | s)) \cdot (\theta_{s,a’}^{k+1} - \theta_{s,a’}^{k}) \right) \right] \\
    &= -\mathbb{E}_{a \sim \pi(\cdot|s)} \left[ \log \pi_{\theta}(a | s) \left( (\theta_{s,a}^{k+1} - \theta_{s,a}^{k}) - \sum_{a’ \in \mathcal{A} } \pi(a’ | s)(\theta_{s,a’}^{k+1} - \theta_{s,a’}^{k}) \right) \right] \\
    &= -\mathbb{E}_{a \sim \pi(\cdot|s)} \left[ \log \pi_{\theta}(a | s)(\theta_{s,a}^{k+1} - \theta_{s,a}^{k}) \right] + \mathbb{E}_{a \sim \pi(\cdot|s)} \left[ \log \pi_{\theta}(a | s) \cdot \mathbb{E}_{a’ \sim \pi(\cdot|s)} \left[ \theta_{s,a’}^{k+1} - \theta_{s,a’}^{k} \right] \right] \\
    &= -\mathbb{E}_{a \sim \pi(\cdot|s)} \left[ \log \pi_{\theta}(a | s)(\theta_{s,a}^{k+1} - \theta_{s,a}^{k}) \right] + \mathbb{E}_{a \sim \pi(\cdot|s)} [\log \pi_{\theta}(a | s)] \cdot \mathbb{E}_{a’ \sim \pi(\cdot|s)} \left[ \theta_{s,a’}^{k+1} - \theta_{s,a’}^{k} \right] \\
    &= -\text{Cov}_{a \sim \pi(\cdot|s)} \left( \log \pi(a | s), \theta^{k+1} - \theta^{k} \right) \\
    &= -\text{Cov}_{a \sim \pi(\cdot|s)} \left( \log \pi(a | s), z^{k+1} - z^{k} \right)
    \end{aligned}
    $$
    • 注:上面的推到用到了 Cov 的公式:
      $$
      \begin{align}
      \mathrm{Cov}(X,Y)
      &= \boldsymbol{E}\big[(X-\boldsymbol{E}X)(Y-\boldsymbol{E}Y)\big] \\
      &= \boldsymbol{E}(XY)-\boldsymbol{E}(X)\boldsymbol{E}(Y)
      \end{align}
      $$

E.3 Proof for Proposition 1

  • 命题 1 :设 Actor 策略 \(\pi_{\theta}\) 是表格型 softmax 策略,并使用公式 2 进行更新,则 \(z_{s,a}\) 在两个连续步骤之间的差满足
    $$
    z_{s,a}^{k+1} - z_{s,a}^{k} = \eta \cdot \pi_{\theta}(a | s) \cdot A(s, a)
    $$
  • 证明 :
    • 在表格型 softmax 策略中,每个状态-动作对 \((s, a)\) 都与一个独立的 logit 参数 \(z_{s,a} = \theta_{s,a}\) 相关联
    • 通过梯度回溯,\(z_{s,a}\) 通过 \(z_{s,a}^{k+1} = z_{s,a}^{k} + \eta \cdot \nabla_{\theta_{s,a} } J(\theta)\) 进行更新,因此有
      $$
      \begin{aligned}
      z_{s,a}^{k+1} - z_{s,a}^{k} &= \eta \cdot \nabla_{\theta_{s,a} } J(\theta) \\
      &= \eta \cdot \mathbb{E}_{a’ \sim \pi_{\theta}(\cdot|s)} \left[ \nabla_{\theta_{s,a} } \log \pi_{\theta}(a’ | s) \cdot A(s, a’) \right] \\
      &= \eta \cdot \mathbb{E}_{a’ \sim \pi_{\theta}(\cdot|s)} \left[ \underbrace{\frac{\partial \log \pi_{\theta}(a’ | s)}{\partial \theta_{s,a} } }_{\text{Lemma 2} } \cdot A(s, a’) \right] \\
      &= \eta \cdot \sum_{a’ \in \mathcal{A} } [\pi_{\theta}(a’ | s) \cdot (\mathbf{1}\{a = a’\} - \pi_{\theta}(a | s)) \cdot A(s, a’)] \\
      &= \eta \cdot \pi_{\theta}(a | s) \cdot \left[ (1 - \pi_{\theta}(a | s)) \cdot A(s, a) - \sum_{a’ \in \mathcal{A}, a’ \neq a} \pi_{\theta}(a’ | s) \cdot A(s, a’) \right] \\
      &= \eta \cdot \pi_{\theta}(a | s) \cdot \left[ A(s, a) - \underbrace{\sum_{a’ \in \mathcal{A} } \pi_{\theta}(a’ | s) \cdot A(s, a’)}_{\text{Lemma 3} } \right] \\
      &= \eta \cdot \pi_{\theta}(a | s) \cdot [A(s, a) - 0] \\
      &= \eta \cdot \pi_{\theta}(a | s) \cdot A(s, a)
      \end{aligned}
      $$

E.4 Proof for Theorem 2

  • 定理 2 :设 Actor 策略 \(\pi_{\theta}\) 是表格型 softmax 策略,并且 \(\pi_{\theta}\) 通过自然策略梯度进行更新,则在两个连续步骤之间,给定状态 \(s\) 的信息熵之差满足
    $$
    \mathcal{H}(\pi_{\theta}^{k+1}|s) - \mathcal{H}(\pi_{\theta}^{k}|s) \approx -\eta \cdot \text{Cov}_{a \sim \pi_{\theta}^{k}(\cdot|s)} \left( \log \pi_{\theta}^{k}(a|s), A(s, a) \right)
    $$
  • 证明 :
    • 根据引理 1,首先推导自然策略梯度中 logits \(z\) 的差
    • 从 (2021) 中了解到,当通过梯度回溯使用自然策略梯度更新策略时,\(z_{s,a}^{k+1} - z_{s,a}^{k}\) 满足,
      $$
      z_{s,a}^{k+1} - z_{s,a}^{k} = \eta \cdot A(s, a)
      $$
    • 将其应用于引理 1,有
      $$
      \mathcal{H}(\pi_{\theta}^{k+1}|s) - \mathcal{H}(\pi_{\theta}^{k}|s) \approx -\eta \cdot \text{Cov}_{a \sim \pi_{\theta}^{k}(\cdot|s)} \left( \log \pi_{\theta}^{k}(a|s), A(s, a) \right)
      $$

NLP——LLM对齐微调-Rethinking-KL-Regularization

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始博客:Rethinking KL Regularization in RLHF: From Value Estimation to Gradient Optimization, 202503, SYSU
    • 原始论文1:Rethinking KL Regularization in RLHF: From Value Estimation to Gradient Optimization, ICLR 2026 under review
    • 原始论文2(arXiv):Rethinking KL Regularization in RLHF: From Value Estimation to Gradient Optimization, 20251006, SYSU
    • 最早时作者在知乎上讨论:k2 loss就是比k3 loss好!以及GRPO_off-policy

Paper Summary

  • 整体评价:
    • 本文详细分析了 RLHF 中的 KL 正则化(KL regularization)
    • 本文最早在知乎上讨论,后续逐步被作者整理为 博客和论文,目前在投 ICLR 2026(Under Review)
    • 本文的工作早在博客时期就已经被 REINFORCE++ 论文引用,并作为依据切换 GRPO 中的 k3 Loss 为 k2 Loss
    • 作者在论文中添加了实验,实验结果验证了这些理论上的区别
    • 总结:作者的工作为实现 KL 正则化提供了一个清晰且理论坚实的基础,是非常值得读的一篇文章
  • 本博客前的主流观点(以 GRPO 为代表):
    • 主流观点主要将 KL正则化视为一种 Value 估计(value estimation)问题,因此优先选择那些能最小化 KL 项数值方差的估计器
    • 当这些 KL 项在优化过程中被用作正则化损失(regularization loss) 时,这种基于价值的视角从根本上说是错误的(注:因为此时应该关注梯度的无偏性而不是数值本身的无偏性)
  • 作者的工作:
    • 分析 \(k_{n}\) in reward 和 \(k_{n}\) as loss 两种实现方式的联系和区别
      • 先以 \(k_{1}\) as loss 的情况作为反例,论证 Value 估计视角的错误
      • 然后证明传统的 \(k_{1}\) in reward 和 \(k_{2}\) as loss 公式在梯度上是等价的,并且代表了反向 KL 正则化(reverse KL regularization, RKL)的方法
      • 最后分析 \(k_{3}\) as loss 这样的流行替代方案,揭示了它们作为有偏近似(biased approximations)的本质,并指出了它们在 off-policy implementation 中一个常见但关键的缺陷
  • 作者的主要贡献有三个方面:
    • A Gradient-Centric(以梯度为中心) Framework for KL Regularization
      • 重新审视 RLHF 中的 KL 正则化,将焦点从 Value 估计转移到梯度优化
      • 使用 \(k_{1}\) as loss 作为一个强有力的反例,展示了即使是一个无偏的 Value 估计器也可能产生完全无效的优化信号,从而论证了这种视角转变的必要性
    • 识别 Principled KL 实现方法:Identification of Principled KL Implementations
      • 证明了传统的 \(k_{1}\) in reward 公式正确地实现了 KL 梯度
      • 进一步确立了一个先前未被认识到的关键等价性:\(k_{1}\) in reward 在梯度上与 \(k_{2}\) as loss 等价
      • 这一发现巩固了两者作为 KL 正则化在理论上的合理选择
    • 替代实现和修正方案:Analysis of Alternative Implementations and a Practical Correction
      • 分析流行的替代方法,表明:
        • \(k_{3}\) as loss (在 GRPO 中使用)是 Principled 梯度的一个有偏一阶近似(biased first-order approximation),导致正则化较弱或潜在的不稳定性
      • 指出了一个在 off-policy algorithms 中的常见陷阱:
        • 陷阱描述: \(k_{n}\) as loss 方法通常在实现时没有进行正确的重要性采样(importance sampling)
        • 本文作者为这种偏差提供了一个 Principled 修正方案
  • 注:原始论文使用红色的 \(\pi_{\color{red}{\theta}}\) 表示可训练的策略(携带梯度),并使用普通黑色字体 \(\pi_{\theta}\) 表示其数值相同、但 Detached 快照(不携带梯度)
    • 注:原始文章中全文均使用 红色和黑色(普通字体)来区分是否携带梯度
    • 这里后续考虑使用特殊的说明(红色和黑色来替代其实并不合适,使用特殊符号修饰一下最好,比如 \(\hat{\theta}\),但为了方便,后续本文也先继续沿用)
    • 注:原始文章中部分地方用的不对(应该红色的地方没有红色等问题),本文会针对性进行修复

Introduction and Discussion

  • RLHF 通过 KL 散度惩罚项来约束其与初始参考模型(reference model)的偏差
  • KL 项是 RLHF 的核心组成部分,但其在 RLHF 中的实现方式仍然基于一种过时且从根本上来说不恰当的视角:视为一个 Value 估计问题
  • 目前的主流观点(2020)通过 Numerical Value 估计的视角来对待 KL 散度
    • 具体做法:
      • 选择像 \(k_{1}, k_{2}, k_{3}\) 这样的蒙特卡洛估计器
      • 目标是使其作为 KL 值估计器的偏差和方差最小化
    • 这种观点的问题:
      • 这种观点将 \(k_{1}\) 定性为无偏但高方差,\(k_{2}\) 为有偏但低方差,并将 \(k_{3}\) 推崇为“最优”选择,声称其在分布相近时具有低方差和无偏性
      • 但当这些估计器被用作 RLHF 目标中的正则化项(regularization term)时,这种以价值为中心的观点从根本上来说是错误的
    • 正确理解:
      • 正则化损失的目标不是提供一个精确的 Numerical Value 估计,而是产生一个正确的优化信号
        • 这个信号是一个能有效将策略约束回参考模型的梯度
      • 作者通过一个基于梯度的分析来挑战这一传统智慧,证明一个无偏的 Value 估计器也可能导致一个完全无效的优化信号,反之亦然
  • 简单总结:作者通过对 KL 损失进行系统的、基于梯度的分析来解决这些问题
    • 建立一个统一的框架,将两种风格联系起来:
      • 风格1:“以数学项 \(k_{n}\) 作为分离系数 \(k_{n}\) in reward ”
      • 风格2:“作为直接损失函数(’ \(k_{n}\) as loss** ”
      • 然后通过检查其等效梯度系数来分析任何实现
    • 1)以 \(k_{1}\) as loss 的情况作为反例,来论证 Value 估计视角的错误
    • 2)证明传统的 \(k_{1}\) in reward 和 \(k_{2}\) as loss 公式在梯度上是等价的,并且代表了反向 KL 正则化的 Principled 方法
    • 3)分析了像 \(k_{3}\) as loss 这样的流行替代方案,揭示了它们作为有偏近似(biased approximations)的本质,并指出了它们在 off-policy implementation 中一个常见但关键的缺陷

Related Work

KL Value Estimation

  • KL 散度的期望通常是难以处理的,因此通常通过蒙特卡洛采样来估计
  • 先前的分析主要将这些估计器作为值估计器进行评估(2020),将 \(k_{1}\) 描述为无偏但高方差,\(k_{2}\) 为有偏但低方差,而 \(k_{3}\) 则为“最优的”、低方差且无偏的选择
  • 本文的工作:
    • 作者首先挑战了 \(k_{3}\) 作为值估计器所声称的优越性,表明其宣称的特性在实际环境中往往不成立
    • 更重要的是,当这些估计器被用于 RLHF 的正则化时,这种强调是错误的
    • 作者表明,以梯度为中心的视角至关重要:从值估计中得出的结论并不一定能转化为有效的优化

RLHF Methods

  • OpenRLHF(2024)是第一个使用 vLLM(2023)来加速 RLHF 训练中 Rollout 阶段的框架,并整合了多种使 RLHF 训练更稳定的技术
  • 此后的一些训练框架,包括 Verl(2024)、slime(2025)和 ROLL(2025)
    • 这些框架主要支持 PPO(2022)及其变体,专注于提高训练稳定性,特别是解决训练 Critic 模型时遇到的挑战
  • VAPO(2025)提出预训练 Critic 模型以缓解这些问题,而 GRPO 和 Reinforce++ 则主张完全移除它,从而实现更大的 Actor 模型扩展
    • 大多数 RLHF 方法都包含了 KL 损失,尽管最近一些基于规则的奖励算法,如 DAPO,建议移除 KL 损失以提升性能
  • Prof(2025a)通过周期性地重置参考模型解决了性能问题,并帮助证明了 KL 损失在防止过拟合和确保长期训练稳定性方面仍然起着至关重要的作用
    • 特别地,Prof 中使用的 KL 损失正是作者在本文中提出并倡导的 \(k_{2}\) as loss

KL Loss in RLHF

  • 在奖励中引入 KL 惩罚的做法主要基于 OpenAI InstructGPT 论文(2022),该论文有效地将对数比率项作为策略得分函数(score function)的系数,尽管没有给出正式的证明
  • 早期的工作(2019)注意到了将 KL 项加到奖励中与加到损失中等价的潜力,但这并未得到正式证明
  • 最近,在 DeepSeek-R1(2025)等有影响力的模型中使用的 GRPO 方法(2024),因采用直接作为 KL 损失的项 \(k_{3}\) 而受到关注
  • 这一选择的理由是引用了(2020)及其声称的 \(k_{3}\) 是一个“无偏估计器”的说法,这例证了将有偏的值估计原则转移到损失设计中的错误做法,这也是本文作者正在解决的核心问题

Preliminary

Value Estimation of KL Divergence

  • 从分布 \(q(x)\) 到参考分布 \(p(x)\) 的 KL 散度定义为:
    $$D_{\text{KL} }(q\parallel p) = \mathbb{E}_{x\sim q}\left[\log \frac{q(x)}{p(x)}\right] \tag {1}$$
  • 由于这个期望通常是难以处理的,因此通过蒙特卡洛样本来估计
  • 给定重要性比率
    $$ \delta (x) = p(x) / q(x)$$
    • 注意:这个比例跟 KL 期望的目标的分子分母是相反的
  • 期望内项的常见估计器包括:
    $$
    \begin{align}
    k_{1}(x) &= -\log \delta (x) \\
    k_{2}(x) &= \frac{1}{2}\left(\log \delta (x)\right)^{2} \\
    k_{3}(x) &= \delta (x) - 1 - \log \delta (x)
    \end{align}
    $$
  • 除了第 2 节中提到的性质外,估计器 \(k_{3}\) 尤其值得注意,它旨在降低高方差
    • 尽管当分布 \(p\) 和 \(q\) 接近时 \(k_{3}\) 可能很有效,但声称 \(k_{3}\) 是一个“严格更好的估计器”(2020)在一般情况下并不成立
    • 当分布的支撑集或尾部差异显著时,\(k_{3}\) 可能会出现严重偏差和无限方差的潜在问题
      • 因此,\(k_{3}\) 的应用需要仔细验证某些假设
  • 关于这些统计不稳定性的详细分析,以及反例支持,请参见附录 I

RLHF

  • RLHF 的目标:
    • 微调一个策略(Actor 模型) \(\pi_{\color{red}{\theta}}\),使其对 Prompt \(x\) 生成的 Response \(y\) 能够最大化源自人类偏好的奖励 \(r(x,y)\)
    • 纯粹的最大化奖励可能会导致 Reward Hacking 以及偏离可信的 SFT 策略的分布漂移
  • 为了抵消 Reward Hacking 或 分布漂移 这一点,RLHF 增加了一个 KL 惩罚损失,将策略正则化(regularizes)到一个固定的参考模型 \(\pi_{\text{ref} }\)
    $$\begin{align} \mathcal{J}_{\text{RLHF} }(\color{red}{\theta}) &= \underbrace{\mathbb{E}_{x\sim D,y\sim \pi_{\color{red}{\theta}}(\cdot|x)}\left[r(x,y)\right]}_{\text{Reward Maximization Term} } - \beta \underbrace{D_{\text{KL} }\left(\pi_{\color{red}{\theta}}(\cdot|x)\parallel\pi_{\text{ref} }(\cdot|x)\right)}_{\text{KL Regularization Term} } \\
    \quad &= \mathcal{J}_{\text{Reward} }(\color{red}{\theta}) - \beta \mathcal{J}_{\text{KL} }(\color{red}{\theta}) \end{align} \tag {2}$$
    • \(\mathcal{D}\) 是 Prompt 分布
    • \(y\) 是从分离的快照(detached snapshot)策略 \(\pi_{\theta}\)(在采样时数值上等于 \(\pi_{\color{red}{\theta}}\))上 On-policy 采样的
    • \(\beta\) 权衡了奖励最大化和与 \(\pi_{\text{ref} }\) 的偏离

A Unified Framework for KL Regularization in RLHF

  • 大多数 RLHF 算法优化的是与公式 (2) 相同的高层目标,但它们的具体实现却大相径庭
  • 为了系统地分析这些差异,作者建立了一个统一的框架,将该目标分解为其核心组成部分,并对不同的 KL 实现风格进行分类
  • 作者给出的 约定(Convention)
    • 在本文作者的分析中,用 \(\pi_{\color{red}{\theta}}\) 表示携带梯度的可训练策略,并遵循标准的 Bandit 设置
      • 样本 \(y\) 是从一个分离的且数值上相同的快照策略 \(\pi_{\theta}(\cdot |x)\) 中抽取的,在当前迭代中进行评估;
      • 梯度仅通过 \(\pi_{\color{red}{\theta}}\) 传播
    • 所有乘以得分函数 \(\nabla_{\color{red}{\theta}} \log \pi_{\color{red}{\theta}}(y|x)\) 的标量系数都被视为是分离的(detached)
  • 补充:关于 Bandit Setting 的解释:

    To simplify analysis of core gradient properties, we model the entire response \(y\) as a single action. Our derivations therefore operate on the joint probability \(\pi(y|x)\) of the sequence, rather than the token-level probabilities used in standard sequential PPO.

    • 为了简化,将整个回复建模为一个 Action,所以推导均在联合概率分布 \(\pi(y|x)\) 上,而不是 Token-level 的概率分布上

Core Components of The RLHF Objective

  • 实际的 RLHF 目标由通过蒙特卡洛采样估计的两个部分组成
Reward Maximization
  • 主要目标是最大化期望奖励
  • 这个目标的梯度通常使用得分函数估计器(score function estimator)(1992)来估计,其详细推导见附录 B:
    $$\nabla_{\color{red}{\theta}}\mathcal{J}_{\text{reward} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}[r(x,y)\cdot \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)] \tag {3}$$
  • 实际的实现会用 Shaped 优势信号(shaped advantage signal)替换原始奖励 \(r(x,y)\)
  • 具体的 Shaped 技术详见附录 A
KL Regularization
  • RLHF 通过 RKL 将 Actor 模型正则化到参考模型:
    $$ \begin{align}
    \mathcal{J}_{\text{KL} }(\color{red}{\theta}) &= \mathbb{E}_{x\sim \mathcal{D} }\left[D_{\text{KL} }(\pi_{\color{red}{\theta}}(\cdot |x)| \pi_{\text{ref} }(\cdot |x))\right] \\
    &= \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\color{red}{\theta}}(\cdot |x)}\left[\log \pi_{\color{red}{\theta}}(y|x) - \log \pi_{\text{ref} }(y|x)\right]
    \end{align} \tag {4}
    $$
    • 上述期望是在当前策略下计算的,因此 On-policy 蒙特卡洛估计(on-policy Monte Carlo estimation)是一个自然的选择
    • 在实现中,通过代理项 \(k_{n}\) 来优化这个目标,这些代理项的形式借鉴自值估计器
  • 期望是使用从分离的快照策略 \(\pi_{\theta}\)(在采样时数值上等于 \(\pi_{\color{red}{\theta}}\))中抽取的样本来评估的。有两种主要的公式:
    • 1)\(k_{n}\) as a Detached Coefficient ( \(k_{n}\) in reward) :将 \(k_{n}\) 视为得分函数的一个分离的系数权重
      $$\mathcal{J}_{k_{n}\text{ in reward} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\color{red}{\theta}}(\cdot |x)}\left[\underbrace{k_{n}\left(\pi_{\theta}(y|x),\pi_{\text{ref} }(y|x)\right)}_{\text{detached coefficient} }\cdot \log \pi_{\color{red}{\theta}}(y|x)\right] \tag {5}$$
      • 一个典型的选择是
        $$ k_{1}(y|x) = \log \pi_{\color{red}{\theta}}(y|x) - \log \pi_{\text{ref} }(y|x) $$
    • 2)\(k_{n}\) as a Direct Loss ( \(k_{n}\) as loss) :将 \(k_{n}\) 视为一个独立的损失,梯度直接通过它传播
      $$ \mathcal{J}_{k_{n}\text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[k_{n}\big(\pi_{\color{red}{\theta}}(y|x),\pi_{\text{ref} }(y|x)\big)\right] \tag {6}$$
      • 常见的选择包括 下面两个
        $$
        \begin{align}
        k_{2}(y|x) &= \frac{1}{2}\big(\log \frac{\pi_{\color{red}{\theta}}(y|x)}{\pi_{\text{ref} }(y|x)}\big)^{2} \\
        k_{3}(y|x) &= \frac{\pi_{\text{ref} }(y|x)}{\pi_{\color{red}{\theta}}(y|x)} -1 - \log \frac{\pi_{\text{ref} }(y|x)}{\pi_{\color{red}{\theta}}(y|x)}
        \end{align}
        $$
      • \(k_n\) as loss 的梯度是直接通过 \(k_{n}\) 计算的,没有显式的得分函数项,然而正如作者将在第 5 节中证明的,在 On-policy 条件下,它与 in reward 的梯度是匹配的
      • 并且在 On-policy 采样下, \(k_{1}\) in reward 和 \(k_{2}\) as loss 是 RKL 目标的梯度等价实现(参见附录 C 的完整证明)

KL Integration Forms And Algorithm Mapping

  • KL 公式的选择决定了它如何与奖励目标整合
组合形式 vs. 解耦形式(Combined vs. Decoupled Forms)
  • 由于 \(k_{n}\) in reward 使用与奖励目标相同的得分函数,其系数可以合并到奖励系数中以产生组合形式(Combined Form),这也是 in reward 名称的由来:
    $$\mathcal{L}_{\text{combined} }(\color{red}{\theta}) = -\mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\left(r(x,y) - \beta k_{n}\left(\pi_{\theta}(y|x),\pi_{\text{ref} }(y|x)\right)\right)\cdot \log \pi_{\color{red}{\theta}}(y|x)\right] \tag {7}$$
  • 相比之下, \(k_{n}\) as loss 则需要一种具有独立损失形式的解耦形式(Decoupled form):
    $$\mathcal{L}_{\text{decoupled} }(\color{red}{\theta}) = -\mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[r(x,y)\cdot \log \pi_{\color{red}{\theta}}(y|x)\right] + \beta \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[k_{n}\left(\pi_{\color{red}{\theta}}(y|x),\pi_{\text{ref} }(y|x)\right)\right] \tag {8}$$
  • 解耦形式也可以与 \(k_{n}\) in reward 一起使用,通过分离两个得分函数项
    • 在 Off-policy 更新中,组合形式中的合并系数 \(r - \beta k_{n}\) 必须使用重要性采样(importance sampling, IS)进行修正
    • 当与 PPO 结合时,这种修正通过裁剪的代理目标(clipped surrogate objective) \(\pi_{\color{red}{\theta}} / \pi_{\theta_{k} }\) 自动继承
    • as loss 的实现也明确要求应用 IS 和 PPO 裁剪(Cliping),但这些在实践中常常被忽略(参见附录 G)
定位 PPO 和 GRPO(Positioning PPO and GRPO)
  • 该框架可以定位主要算法,总结于表 1
    • PPO 是在组合形式中使用 \(k_{1}\) in reward 的典型例子
      • \(k_{1}\) in reward 与 PPO 配对时,继承 IS/Cliping
    • GRPO 则是在解耦形式中使用“” \(k_{3}\) as loss 的典型例子
      • 需要显式的 IS/Cliping,实践中常被省略

Gradient-based Analysis of KL Implementations

  • 在 RLHF 中,应根据梯度属性而非值的准确估计来选择 KL 正则化器
  • 本节工作:
    • Step1: 使用 \(k_{1}\) as loss 作为反例,说明采用 without auditing the induced gradients 的估计器会导致无效的更新

      adopting estimators without auditing the induced gradients can lead to vacuous updates

    • Step2: 推导出 RKL 的主要代理损失,并证明
      • 1)\(k_{3}\) as loss 是其一阶近似
      • 2)在 on-policy 设置下,\(k_{n}\) as loss 和 \(k_{n^{\prime} }\) in reward 通常是梯度等价的,并且可以相互转换
  • 图 1: 展示了 KL 正则化梯度系数的比较
    • 每条曲线显示了乘以 Score Function \(\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\) 的标量系数 \(c(x,y)\)
      • 以 \(\log \pi_{\theta}(y|x)\) 为 X 轴绘制
      • 其中 \(\pi_{\text{ref} }(y|x) = 0.25\) (垂直虚线)
    • Principled 实现 (\(k_{1}\) in reward 或 \(k_{2}\) as loss) 产生
      $$ c = \log (\pi_{\color{red}{\theta}} / \pi_{\text{ref} }) $$
      • 这是在 log-probability 中的 Linear restoring force
    • \(k_{3}\) as loss 使用
      $$ c = 1 - \pi_{\text{ref} } / \pi_{\color{red}{\theta}}$$
      • 这是 \(-\log \delta\) 在 \(\delta = \pi_{\text{ref} } / \pi_{\color{red}{\theta}} = 1\) 处的一阶泰勒代理:
        • 当 \(\log \pi_{\color{red}{\theta}}\) 很大 \((\pi_{\color{red}{\theta}}\gg \pi_{\text{ref} })\) 时它是松弛的
        • 当 \(\log \pi_{\color{red}{\theta}}\) 很小 \((\pi_{\color{red}{\theta}}\ll \pi_{\text{ref} })\) 时它可能会爆炸
    • 朴素的 \(k_{1}\) as loss 给出 \(c\equiv 1\),在期望中产生一个零均值、无正则化作用的梯度

反例 (The Counterexample: Why \(k_{1}\) as loss Fails)

  • 本工作的一个核心教训是,值估计的优良属性不会自动转化为有效的优化损失
  • 使用 \(k_{1}\) as loss 的情况提供了一个清晰的反例:
    • 尽管 \(k_{1}\) 是 KL 值的无偏估计量,但作为强制执行 KL 约束的损失,它是无效的
  • 考虑使用从 detached snapshot \(y\sim \pi_{\theta}(\cdot |x)\) 进行的 on-policy 采样的直接损失公式:
    $$\mathcal{J}_{k_1\text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim D,y\sim \pi_{\theta}(\cdot |x)}\big[\log \pi_{\color{red}{\theta}}(y|x) - \log \pi_{\text{ref} }(y|x)\big] \tag {9}$$
  • 由于 \(\pi_{\text{ref} }\) 不依赖于 \(\color{red}{\theta}\),其项在微分后消失,剩下:
    $$\nabla_{\color{red}{\theta}}\mathcal{J}_{k_1\text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim D,y\sim \pi_{\theta}(\cdot |x)}\big[\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\big] \tag {10}$$
  • 结果揭示了一个根本性缺陷:梯度完全独立于参考策略 \(\pi_{\text{ref} }\)
    • 因此,它不携带任何 KL 正则化信号
  • 根据引理 C.2 中的零均值 Score 恒等式,该梯度的期望恰好为零
    • 注:正是 REINFORCE (1992) 等 Policy Gradient 中减去 Baseline 的底层机制
    • 因此,在蒙特卡洛实践中,该项仅注入零均值噪声,这会增大梯度方差并可能破坏学习的稳定性
  • 这个反例是决定性的:一个“无偏的值估计器”可能产生无用的优化信号
    • 它直接挑战了这样一种错误假设 :良好的值估计属性足以设计有效的 KL 损失
      • 而这种假设已隐含地激发了一些最近的实现,例如 GRPO

The Principled KL Loss in RLHF: \(k_{1}\) in Reward \(\Leftrightarrow\) \(k_{2}\) as loss

  • 本节推导了方程 (4) 中 Reverse KL 目标的精确 on-policy 梯度,并将其用作设计代理 KL 损失的参考梯度,将乘积规则和对数导数技巧应用于 RKL(见附录 C)可得:
    $$\nabla_{\color{red}{\theta}}\mathcal{J}_{\text{RKL} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D} }\left[\sum_{y}\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)\left(\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)} +1\right)\right] \tag {11}$$
  • 根据引理 C.2 中的零均值 Score 恒等式,项 \(+1\) 在期望中消失,从而得到 Policy Gradient 的实际形式:
    $$\nabla_{\color{red}{\theta}}\mathcal{J}_{\text{RKL} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[ \underbrace{\left(\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)}\right)}_{\text{k1 (detached) coefficient}}\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right] \tag {12}$$
    • 任何 Principled KL 正则化损失都应在期望中重现这个目标梯度
    • 定理 5.1 表明,两个结构上不同的代理损失可以精确地做到这一点
定理 5.1 (Principled RKL 代理损失的 On-policy 梯度等价性)
  • 令 \(\pi_{\theta}\) 为可训练策略 \(\pi_{\color{red}{\theta}}\) 的一个 detached snapshot,其参数在梯度评估时一致
  • 对于从 \(\pi_{\theta}(\cdot |x)\) 以 on-policy 方式采样的样本 \(y\),以下目标具有与方程 (12) 中目标相同的期望梯度:

$$\mathcal{J}_{k_{1}\text{ in }reward}(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\Bigg[\underbrace{\Big(\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)}\Big)}_{\text{k1 (detached) coefficient}}\log \pi_{\color{red}{\theta}}(y|x)\Big] \tag{13}$$

$$ \mathcal{J}_{k_{2}\text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\Big[\frac{1}{2}\Big(\log \frac{\pi_{\color{red}{\theta}}(y|x)}{\pi_{\text{ref} }(y|x)}\Big)^{2}\Big] \tag {14}$$

  • 证明梗概 (完整证明见附录 C)
    • 对于方程 (13),它可以恢复方程 (12),因为项 \(k_{1}\) 是一个乘以 \(\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}\) 的 detached 标量
    • 对于方程 (14),微分得到
      $$\nabla_{\color{red}{\theta}}\frac{1}{2}\left(\log \frac{\pi_{\color{red}{\theta}} }{\pi_{\text{ref} } }\right)^{2} = \left(\log \frac{\pi_{\theta} }{\pi_{\text{ref} } }\right)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}$$
    • 所以这里的 \(k_{2^{\prime} }\) 就是 \(k_{1}\),并且方程 (71) 中的通用 \(k_{n^{\prime} }\) 解公式也会产生与方程 (12) 相同的系数
      • 理解:这里的 \(k_{2^{\prime} }\) 是表示 \(k_{2}\) 的导数(梯度)
  • 因此,这里得到一个重要结论:
    • 传统的 \(k_{1}\) in reward(如 PPO/REINFORCE 中所用)和新提出的 \(k_{2}\) as loss 是在 on-policy 采样下 RKL 正则化的 Principled 、梯度等价且可互换的实现
    • 对于 off-policy 更新,需要显式的 Importance Sampling 和 PPO clip,如附录 G 中所讨论

\(k_{2}\) as loss 的一阶近似(First-Order Approximation): \(k_{3}\) as loss \(\Leftrightarrow\) \(k_{3^{\prime} }\) in reward

  • \(k_{3}\) as loss 的表达式如下:
    $$\mathcal{J}_{k_{3}\text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\frac{\pi_{\text{ref} }(y|x)}{\pi_{\color{red}{\theta}}(y|x)} -\log \frac{\pi_{\text{ref} }(y|x)}{\pi_{\color{red}{\theta}}(y|x)} -1\right] \tag {15}$$
    • 其中期望是对来自 detached snapshot \(\pi_{\theta}\) 的 on-policy 样本求得的
    • 对 \(k_{3}\) as loss 取梯度得到等效系数 \(k_{3^{\prime} }\),并可以得到损失形式的 \(k_{n^{\prime} }\) in reward :
      $$\nabla_{\color{red}{\theta}}\mathcal{J}_{k_{3}\text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\Bigg[\underbrace{\left(1 - \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)}\right)}_{\substack{k_{3^{\prime} }\text{ (detached) coefficient} } }\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\Bigg] = \nabla_{\color{red}{\theta}}\mathcal{J}_{k_{3^{\prime} }\text{ in reward} }(\color{red}{\theta}) \tag {16}$$
    • 令
      $$ \delta = \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)}$$
    • 第 5.2 节中的 Principled \(k_{1}\) in reward 和 “\(k_{3}\) in reward” 共享相同的 Score Function,但它们的标量系数不同:
      • Principled \(k_{1}\) in reward or \(k_{2}\) as loss :
        $$ \underbrace{-\log\delta}_{\text{(detached) coefficient} }.\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)$$
      • Approximation \(k_{3}\) as loss or \(k_{3^\prime}\) in reward :
        $$ \underbrace{-\left(\delta -1\right)}_{\text{(detached) coefficient} }.\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x) \tag {17}$$
泰勒陷阱 (Taylor trap)
  • 在 \(\delta = 1\) 附近,恒等式 \(\log \delta = (\delta - 1) + \mathcal{O}((\delta - 1)^{2})\) 意味着 \(\color{blue}{- \log \delta} \approx \color{red}{1 - \delta}\)
    • 因此,\(\color{red}{1 - \delta}\) 仅是主要系数 \(\color{blue}{- \log \delta}\) 的一阶代理
    • 超过一阶的失配导致了三个具体问题(形式化陈述见附录 E)
  • 为了可视化,系数曲线绘制在图 1 中,代码在附录 H 中
  • 代理系数 \(\color{red}{1 - \delta}\) 替代 Principled 系数 \(\color{blue}{- \log \delta}\) 时可能遇到的三个具体问题:
    • 1)Bias
      • 对于所有 \(\delta \neq 1, \ \color{red}{1 - \delta} \neq \color{blue}{- \log \delta}\) ,有:
        • 相对于真实的 RKL 梯度,更新方向是有偏的
    • 2)病态不对称性 (Pathological asymmetry) :这两个系数在 \(\delta = 1\) 附近一致,但在尾部表现非常不同:
      • 过覆盖 (Over-coverage) \((\delta \rightarrow 0)\) :
        • \(\delta \rightarrow 0\) 时
          • \(\color{blue}{- \log \delta} \rightarrow +\infty\) (强大的、持续的恢复力,可对模型添加更多惩罚)
          • \(\color{red}{1 - \delta} \rightarrow 1\) (饱和),产生弱得多的正则化器
        • 这在 RLHF 训练后期,当 \(\pi_{\color{red}{\theta}} > \pi_{\text{ref} }\) 时常发生,使得 \(k_{3^{\prime} }\) 的约束更弱
      • 欠覆盖 (Under-coverage) \((\delta \rightarrow \infty)\) :
        • \(\delta \rightarrow \infty\) 时,\(\color{blue}{- \log \delta}\) 仅对数级衰减,但 \(\color{red}{1 - \delta} \rightarrow -\infty\) 快得多,引发爆炸性更新
    • 3)统计不稳定性 (Statistical instability)
      • 在 \(y\sim \pi_{\theta}(\cdot |x)\) 下:
        $$
        \mathbb{E}[\delta ] = 1 \\
        \text{Var}[\color{red}{1 - \delta} ] = \mathbb{E}[(\delta -1)^{2}] = \chi^{2}(\pi_{\text{ref} }||\pi_{\theta})$$
        • 即卡方散度,这是出了名的不稳定
      • 随机梯度继承了这种高方差

Pratical Recommendations(作者给出的经验建议)

  • 基于本文以梯度为中心的分析,作者为在 RLHF 中实现 KL 正则化损失提供以下实用建议,最后两点将在附录 G 和附录 F 中讨论:
建议1:Do not use \(k_{1}\) as a loss
  • Do not use \(k_{1}\) as a loss
  • 其期望梯度为零,且独立于参考模型,不提供正则化信号,仅提供噪声
建议2:优先选择 \(k_{1}\) in reward 或 \(k_{2}\) as loss 以保证理论上的合理性
  • Prefer \(k_{1}\) in reward’ or \(k_{2}\) as loss’ for theoretical soundness
  • 在 on-policy 设置中,这两种表述是梯度等价的,并能正确实现 RKL 目标。它们是 KL 正则化的主要默认选择(详细证明见附录 C)
建议3:理解 \(k_{3}\) as loss 是 \(k_{2}\) as loss 的有偏一阶近似
  • 原始标题:Understand the properties of \(k_{3}\) as loss
  • 这种表述应被视为 \(k_{2}\) as loss 的有偏一阶近似(形式化分析见附录附录 E)
  • 尽管其在策略高概率区域较弱的正则化强度在某些场景下可能带来实际好处,但实践者应意识到它在理论上偏离了真实的 KL 梯度,并且在策略概率较低时可能导致病态更新的可能性
建议4:纠正 Off-policy 偏差
  • Correct for off- policy bias
  • 在像 PPO 这样的 off-policy 设置中使用任何 \(k_{n}\) as loss 表述时,对 KL 项本身应用 Importance Sampling 校正至关重要
    • 忽略这一点会引入系统性偏差
  • \(k_{n}\) in reward 的组合方法自然避免了这个问题
  • 详细的讨论和作者提出的修正方案见附录 G
建议5:考虑有界替代方案以增强稳定性
  • Consider bounded alternatives for enhanced stability
  • 如果要求最大稳定性,特别是在策略更新幅度较大的情况下,产生有界梯度系数的替代方案可能是有益的
  • 例如,基于 MSE 的惩罚,如 MiniMax-01 损失,会产生一个边界在 \([- 1,1]\) 内的系数
  • 这里推导和性质详见附录 F

Experiments

  • 作者在一个数学推理任务上进行了受控的 GRPO 实验,以检验第 5 节中的梯度分析
  • 作者的实验设计隔离了不同 KL 表述的影响,使作者能够:
    • (i) 验证 \(k_{1}\) as loss 不提供适当的正则化项
    • (ii) 比较 Principled \(k_{2}\) as loss 与其一阶代理 \(k_{3}\) as loss
    • 作者将大规模实验放在附录 K,下游 Benchmark 性能放在附录 L

Setup and Baselines

Dataset Construction
  • 作者使用 OpenR1-Math-220k 的一个精选子集,主要由 NuminaMath 1.5 Prompts 组成
  • 推理轨迹由强模型 Deepseek-R1 生成,并通过 MathVerify 进行格式和正确性过滤
    • 问题:RL 训练为什么需要其他模型的推理轨迹?
  • 删除长度大于 2048 个 token 的序列,得到了 7.3K 个具有高质量 off-policy 推理轨迹的 Prompts
RL Configuration
  • 为了隔离每个 KL 项的梯度属性,作者采用了完全的 on-policy 训练配置:
    • Rollout 批大小为 32
    • 每个 Prompt 生成 8 个 Response
    • 更新批大小为 256
    • 采样温度为 1.0
  • 使用正则表达式计算格式奖励
  • 使用 Math-Verify 计算准确率奖励
  • Actor 模型为 Qwen2.5-Math-1.5B (2024)
  • 关闭了熵损失(系数为 0)
  • 为所有带有 KL 正则化的损失设置 \(\beta = 0.5\)

Key Results

\(k_{1}\) as loss:没有限制效果,仅添加了一些噪音
  • 图 2 中显示的实证结果有力地支持了作者对 \(k_{1}\) as loss 的理论分析
    • 正如第 5 节中推导的那样,这个损失项的梯度对于正则化来说存在根本性缺陷:
      • 首先,它完全独立于参考策略 \(\pi_{\text{ref} }\) ;
      • 其次,它在 on-policy 样本上的期望恰好为零
    • 在实践中,此项等同于向梯度中添加一个缩放的 Score Function
      $$ \beta \cdot \nabla_{\color{red}{\theta}} \log \pi_{\color{red}{\theta}} $$
    • 虽然这不改变预期的更新方向,但它注入了零均值噪声,从而增加了梯度方差
      • 这与 REINFORCE 中使用 Baseline 的方差减少技术的作用相反
    • 图 2 中可以观察到:\(k_{1}\) as loss 与无 KL 正则化的比较,两条训练曲线几乎相同,证实了理论预测:
      • \(k_{1}\) as loss 作为一个 KL 正则化器是无效的
  • 图 2 中得到的结论:
    • 对 \(k_{1}\) as loss 的理论预期是:其性能最多与没有 KL 惩罚时相当,并且由于增加的方差阻碍优化,其性能可能会更差
    • 注:作者的实验结果中,\(k_{1}\) as loss 的训练轨迹与没有 KL 的基线几乎无法区分,完全落在这个预测的结果范围内
      • 这一观察提供了令人信服的证据,表明应避免使用 \(k_{1}\) as loss ,因为它对正则化无益,同时可能对训练的稳定性构成风险
\(k_{2}\) as loss VS \(k_{3}\) as loss: \(k_{2}\) as loss 表现更好
  • 在图 3 中,作者比较了 Principled \(k_{2}\) as loss 与其近似 \(k_{3}\) as loss
    • 两种方法都成功地正则化了策略;
    • 与图 2 的交叉对比显示,它们的奖励曲线相对于无 KL 的基线被抑制,证实了 KL 惩罚积极地约束了优化过程,使其更接近参考模型
    • 两种变体都正则化了策略,而 Principled \(k_{2}\) as loss 表现出一些优势
      • \(k_{2}\) as loss 提供了更高的训练稳定性和更强的正则化,体现在更低的奖励方差和 Response 长度方差,这表明优化 Landscape 更平滑
        • 理解:\(k_{2}\) as loss 训练曲线的 Training Reward(左上)确实波动会稍微更小一些,但是其实也没有小很多
      • \(k_{2}\) as loss 还与参考策略保持更紧密的耦合,具有更小的 Actor-Reference 概率差距(参见“Logprob Diff with Smooth”)和略高的熵,这表明 \(k_{2}\) as loss 在保持稳定的同时保留了更多的探索能力
      • 这些实证观察与其作为 RKL 目标正确代理损失的角色相符
    • 相比之下, \(k_{3}\) as loss 是一个一阶代理,施加的约束较弱,导致更大的概率差距和更低的熵
      • 尽管当需要在后期进行较弱的约束时, \(k_{3}\) as loss 可能是一个可行的选择,但作者的结果表明,\(k_{2}\) as loss 为稳定、有效的正则化提供了一条更健壮、更 Principled 途径
  • 从图 3 中可以观察到:
    • Principled \(k_{2}\) as loss 与其一阶代理 \(k_{3}\) as loss 两种变体都有效地约束了策略,但 \(k_{2}\) as loss 表现出更优的正则化特性,与参考策略保持更紧密的耦合,并产生更稳定的优化路径,更低的奖励方差证明了这一点

附录 A:Detailed Implementation of RLHF Methods

  • 在典型的 RLHF 训练步骤中,作者从数据集 \(\mathcal{D}\) 中抽取 \(N\) 个 Prompt
    $$\{x^{(i)}\}_{i = 1}^{N}$$
  • 对于每个 Prompt \(x^{(i)}\),作者采样 \(G\) 个回复(来自 Detached 当前策略)
    $$ y^{(i,1)},\ldots ,y^{(i,G)}\sim \pi_{\theta}(\cdot |x^{(i)})$$
  • 与同一个 Prompt 关联的 \(G\) 个回复形成一个组,而完整的 minibatch 包含 \(N\times G\) 个 Prompt-Response 对
  • 训练时使用红色的 \(\pi_{\color{red}{\theta}}\) 表示可训练的策略(携带梯度),并使用普通黑色字体 \(\pi_{\theta}\) 表示其数值相同、但 Detached 快照(不携带梯度)
    • 注:原始文章中全文均使用 红色和黑色(普通字体)来区分是否携带梯度
    • 这里后续考虑使用特殊的说明(红色和黑色来替代其实并不合适,使用特殊符号修饰一下最好,比如 \(\hat{\theta}\),但为了方便,后续本文也先继续沿用)

Baseline Subtraction and Normalization

  • 由 REINFORCE (1992) 提出,减去一个与动作无关的基线不会改变期望的策略梯度(无偏;见公式 (34)),并且通常会降低方差,加速收敛
  • 考虑以下应用于标量信号 \(r\) 的基线算子:
    $$
    \begin{align}
    f_{\text{group-bl} }(r) = r - \text{mean}_{\text{group} }(r) \tag{18}\\
    f_{\text{batch-bl} }(r) = r - \text{mean}_{\text{batch} }(r) \tag {19}
    \end{align}
    $$
    • 理解:这里的 \(\text{-bl}\) 应该是 Baseline 的简称,表示减去一个 基线(Baseline)的方案
  • 在实践中,也可能会使用归一化,归一化不是无偏的,但可以通过控制奖励信号的尺度来提高数值稳定性:
    $$
    \begin{align}
    f_{\text{BN} }(r) = \frac{r - \text{mean}_{\text{batch} }(r)}{\text{std}_{\text{batch} }(r)} \tag {20}\\
    f_{\text{GN} }(r) = \frac{r - \text{mean}_{\text{group} }(r)}{\text{std}_{\text{group} }(r)} \tag {21}
    \end{align}
    $$

How Common Algorithms Shape the Reward Signal

  • 令 \(r_{\text{raw} }(x,y)\) 表示在应用任何 shaping 之前的、来自奖励模型的原始得分
  • 以下变体在如何后处理 \(r_{\text{raw} }\) 上有所不同:
    $$
    \begin{align}
    \text{REINFORCE: } & r(x,y) = f_{\text{BN} }(r_{\text{raw} }(x,y)) \tag {23} \\
    \text{PPO/REINFORCE++ : } & r(x,y) = f_{\text{BN} }(r_{\text{raw} }(x,y))\tag {24} \\
    \text{GRPO: } & r(x,y) = f_{\text{GN} }(r_{\text{raw} }(x,y))\tag {25} \\
    \text{Dr-GRPO: } & r(x,y) = f_{\text{group-bl} }(r_{\text{raw} }(x,y)) \tag {26} \\
    \text{REINFORCE++ baseline: } & r(x,y) = f_{\text{BN} }\Big(f_{\text{group-bl} }(r_{\text{raw} }(x,y))\Big) \tag {27}
    \end{align}
    $$

KL 正则化损失的整合 (Integration of the KL Regularization Loss)

  • 上述变换仅塑造了奖励信号,KL 正则化项通常以两种方式之一被整合:
    • (i) 组合形式 (Combined Form) (\(k_{n}\) in reward):由 REINFORCE/PPO 方法使用
      • 首先形成一个组合的奖励信号:
        $$A_{\text{combined} }(x,y) = r_{\text{raw} }(x,y) - \beta k_{1}\Big(\pi_{\theta}(y|x),\pi_{\text{ref} }(y|x)\Big),$$
      • 然后对这个组合信号 \(A_{\text{combined} }\) 应用基线/归一化,之后再乘以得分函数
    • (ii) 解耦形式 (Decoupled Form) (\(k_{n}\) as loss):由 GRPO 方法使用
      • KL 惩罚项(形式如下)作为一个单独的、未归一化的损失项进行优化,与由成形奖励 \(r(x,y)\) 驱动的策略梯度损失相加
        $$k_{n}(\pi_{\color{red}{\theta}}(\cdot |x),\pi_{\text{ref} }(\cdot |x))$$

Complete On-Policy Objectives(完整 On-Policy 目标)for REINFORCE/PPO and GRPO

  • 理解:本节给出的是不考虑归一化等操作下 REINFORCE/PPO and GRPO 等方法的 On-policy 原始最优目标(即最大化原始奖励目标)
  • REINFORCE/PPO(蒙特卡洛 minibatch):
    $$
    \begin{align}
    \mathcal{L}_{\text{REINFORCE/PPO,MC} }(\color{red}{\theta}) = -\frac{1}{NG}\sum_{i = 1}^{N}\sum_{j = 1}^{G}\Big\{A(x^{(i)},y^{(i,j)})\log \pi_{\color{red}{\theta}}(y^{(i,j)}\mid x^{(i)})\Big\} \tag{28}\\
    \text{where } A(x,y) = f_{\text{BN} }\Big(r_{\text{raw} }(x,y) - \beta k_{1}\Big(\pi_{\theta}(y\mid x),\pi_{\text{ref} }(y\mid x)\Big)\Big\} \tag {29}
    \end{align}
    $$
    • 这里,\(k_{1}\) 项使用 Detached 概率进行评估,这与策略梯度框架中它作为得分函数的系数是一致的
  • GRPO(蒙特卡洛 minibatch):
    $$
    \begin{align}
    \mathcal{L}_{\text{GRPO,MC} }(\color{red}{\theta}) = -\frac{1}{NG}\sum_{i = 1}^{N}\sum_{j = 1}^{G}\left\{r(x^{(i)},y^{(i,j)})\log \pi_{\color{red}{\theta}}(y^{(i,j)}\mid x^{(i)})\right\} +\frac{\beta}{NG}\sum_{i = 1}^{N}\sum_{j = 1}^{G}k_{3}\Big(\pi_{\color{red}{\theta}}(y^{(i,j)}\mid x^{(i)}),\pi_{\text{ref} }(y^{(i,j)}\mid x^{(i)})\Big)
    \end{align} \tag {30}
    $$
    • 在这种解耦形式中,Shaped 奖励 \(r(x,y)\) 驱动策略梯度项,而 KL 惩罚是一个单独的损失,梯度通过 \(k_{3}(\cdot)\) 内部的 \(\pi_{\color{red}{\theta}}\) 直接传播
  • Remark
    • 原始 RL 算法 是本节给出的是不考虑归一化等操作下的 On-policy 原始最优目标(即最大化原始奖励目标)
    • Reward Shaping 优化方法1:基线减法是一种无偏的方差缩减技术
    • Reward Shaping 优化方法2:归一化是一种有偏但通常对实际稳定性至关重要的启发式方法
      • 问题:为什么说 归一化 是有偏的呢?
      • 回答:因为 归一化 相当于让模型更倾向于某些 Group 或者 Batch 了,改变了本该有的权重
        • 理解:但归一化从另一个视角来看,是让每个 Group 的 advantage 方差一样,本质是让不同 Group 变得公平了,可以抹平一些因为 Prompt 不同带来的差异性问题(比如一些 Prompt 的输出 Rewards 差异就是本身偏小一个量级的,归一化(除以 std)本身可以修正回来)
      • 补充一个个人理解:
        • 如果考虑到我们的目标是最大化所有 Prompt 的累计 Reward(等价于期望 Reward),则这种做法会导致原始目标有偏
        • 如果考虑到我们的目标是给定一个 Prompt 下,让这个 Prompt 回复的 Reward 最大化 ,则做不做 归一化 都不算有有偏
    • 两者都是重要的工程细节,但一般在简化的理论分析中被省略了

附录 B:策略梯度推导:奖励最大化 (Policy Gradient Derivation for Reward Maximization)

  • 本节提供了奖励最大化目标的策略梯度的详细推导
  • 作者阐明了真实目标、其梯度和替代损失函数之间的区别,并遵循严格的符号约定,其中 \(\color{red}{\theta}\) 表示需要进行微分的变量,而 \(\theta\) 表示 Detached 参数,例如在采样分布中的参数

The Objective Function(目标函数推导)

  • RL 的目标是找到策略 \(\pi_{\color{red}{\theta}}\) 的参数 \(\color{red}{\theta}\),以最大化期望奖励:
    $$
    \mathcal{J}_{\text{reward} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\color{red}{\theta}}(\cdot |x)}[r(x,y)] = \mathbb{E}_{x\sim \mathcal{D} }\sum_{y}[r(x,y)\cdot \pi_{\color{red}{\theta}}(y|x)] \tag {31}
    $$
    • 假设标准的正则条件,允许交换微分和期望算子的顺序

Policy Gradient Derivation(策略梯度推导)

  • 使用对数导数技巧计算目标函数 \(\mathcal{J}_{\text{reward} }(\color{red}{\theta})\) 的梯度
  • 注意区分 \(\color{red}{\theta}\) 和 \(\theta\):
    $$
    \begin{align}
    \nabla_{\color{red}{\theta}}\mathcal{J}_{\text{reward} }(\color{red}{\theta}) &= \nabla_{\color{red}{\theta}}\mathbb{E}_{x\sim \mathcal{D} }\sum_{y}[r(x,y)\cdot \pi_{\color{red}{\theta}}(y|x)] \\
    \qquad &= \mathbb{E}_{x\sim \mathcal{D} }\sum_{y}[r(x,y)\cdot \nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)] \\
    \qquad &= \mathbb{E}_{x\sim \mathcal{D} }\sum_{y}\left[r(x,y)\cdot \pi_{\theta}(y|x)\cdot \frac{\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)}{\pi_{\color{red}{\theta}}(y|x)}\right] \\
    \qquad &= \mathbb{E}_{x\sim \mathcal{D} }\sum_{y}\pi_{\theta}(y|x)[r(x,y)\cdot \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)] \\
    \qquad &= \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}[r(x,y)\cdot \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)]
    \end{align} \tag {32}
    $$
    • 注:其实这就是策略梯度法的核心推导公式
    • 在第三行和第四行中,\(\pi_{\theta}\) 代表当前策略的概率值,在应用对数链式法则时被视为常数因子,而 \(\pi_{\color{red}{\theta}}\) 是被微分的函数
    • 最后一行将梯度表示为来自 \(\pi_{\theta}\) 的样本的期望,其中采样过程本身被视为没有梯度路径

附录 C:Formal Proof of the Principle KL Regularization

  • 本节提供了一个正式的、逐步的推导,表明:
    • 在假设 (A1)-(A4) 下,真实的 KL 散度目标和两个常见的替代目标 \(k_{1}\) in reward 和 \(k_{2}\) as loss 具有相同的期望梯度
  • 作者使用策略的两个数值相同的副本:
    • 一个携带梯度的 \(\pi_{\color{red}{\theta}}(\cdot |x)\),及其 Detached 对应物 \(\pi_{\theta}(\cdot |x)\)
      • 标记为 \(\color{red}{\theta}\) 的参数携带梯度;
      • 黑色的 \(\theta\) 表示 Detached 参数
    • 采样度量、分母以及乘以梯度项的标量系数总是通过使用 \(\pi_{\theta}\) 而被视为 Detached

C.1 Assumptions and Notation

  • 令 \(\mathcal{D}\) 为关于 \(x\) 的数据分布,\(\pi_{\text{ref} }(\cdot |x)\) 为固定的参考策略,\(\pi_{\color{red}{\theta}}(\cdot |x)\) 为可微的策略,所有对数均为自然对数
    • (A1) 对于每个 \(x\),函数 \(y\mapsto \pi_{\color{red}{\theta}}(y|x)\) 是一个有效的概率质量/密度函数:在其支撑集上 \(\pi_{\color{red}{\theta}}(y|x) > 0\),在 \(\color{red}{\theta}\) 上可微,并且归一化和为 1,即
      $$ \sum_{y}\pi_{\color{red}{\theta}}(y|x) = 1 \text{ or } \int \pi_{\color{red}{\theta}}(y|x)dy = 1 $$
    • (A2) 期望/求和与微分可交换是有效的
    • (A3) 数据分布 \(\mathcal{D}\) 和参考策略 \(\pi_{\text{ref} }\) 不依赖于 \(\color{red}{\theta}\)
    • (A4) KL 散度是良定义的:对于所有 \(x\) 和所有在 \(\pi_{\theta}(\cdot |x)\) 支撑集中的 \(y\),作者有 \(\pi_{\text{ref} }(y|x) > 0\)
Notation
  • \(\pi_{\theta}\) 表示 \(\pi_{\color{red}{\theta}}\) 的 Detached 副本,在当前迭代步数值相等
  • 关于 \(y\) 的期望是在 \(y\sim \pi_{\theta}(\cdot |x)\) 下取的(除非另有说明)

C.2 Fundamental Identities

Lemma C.1 Log-derivative identity with detached denominator (对数导数恒等式)
  • 对于任意固定的 \(x\) 和任意满足 \(\pi_{\color{red}{\theta}}(y|x) > 0\) 的 \(y\)
    $$
    \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x) = \frac{\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)}{\pi_{\theta}(y|x)} \tag {33}
    $$
证明
  • 根据链式法则,有:
    $$\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}} = (\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}) / \pi_{\color{red}{\theta}}$$
  • 将分母替换为其数值相等、 Detached 副本 \(\pi_{\theta}\),在保持数值值的同时,明确了无梯度路径
Lemma C.2 Zero-mean score
  • 对于任意固定的 \(x\)
    $$
    \mathbb{E}_{y\sim \pi_{\color{red}{\theta}}(\cdot |x)}[\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)] = 0 \tag {34}
    $$
    • 理解:这是得分函数的性质
证明
  • 使用引理 C.1,
    $$
    \sum_{y}\pi_{\color{red}{\theta}}(y|x)\frac{\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)}{\pi_{\color{red}{\theta}}(y|x)} = \sum_{y}\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x) = \nabla_{\color{red}{\theta}}\sum_{y}\pi_{\color{red}{\theta}}(y|x) = \nabla_{\color{red}{\theta}}(1) = 0 \tag {35}
    $$
Corollary C.0.1(Score-function reweighting)
  • 推论 C.0.1 (得分函数重加权) :对于任意关于 \(\color{red}{\theta}\) Detached 函数 \(z(y,x)\)
    $$
    \begin{align}
    \sum_{y}\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)z(y,x) &= \sum_{y} \pi_{\theta}(y |x) \cdot z(y,x) \cdot \frac{1}{\pi_{\theta}(y |x)} \nabla_{\color{red}{\theta}} \pi_{\color{red}{\theta}}(y|x) \\
    &= \mathbb{E}_{y\sim \pi_{\theta}(\cdot |x)}[z(y,x)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)]
    \end{align}
    \tag {36}
    $$
    • 注:强调一下,这里要求 \(z(y,x)\) 与 \(\color{red}{\theta}\) 无关
Corollary C.0.2 (Baseline invariance)
  • 推论 C.0.2 (基线不变性,Baseline invariance) :对于任意关于 \(\color{red}{\theta}\) Detached 函数 \(b(x)\)
    $$
    \mathbb{E}_{y\sim \pi_{\color{red}{\theta}}(\cdot |x)}[b(x)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)] = b(x)\cdot \mathbb{E}_{y\sim \pi_{\color{red}{\theta}}(\cdot |x)}[\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)] = 0 \tag {37}
    $$
    • 理解:这个是策略梯度法推导基线过程中的常用基础概念
  • 因此,将一个 Detached 、与动作无关的基线 \(b(x)\) 添加到任何系数中,不会改变期望梯度

C.3 Derivation of the True KL Gradient(真实 KL 梯度的推导)

  • KL 散度目标为:
    $$
    \mathcal{J}_{\text{KL} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D} }\left[\sum_{y}\pi_{\color{red}{\theta}}(y|x)\log \frac{\pi_{\color{red}{\theta}}(y|x)}{\pi_{\text{ref} }(y|x)}\right] \tag {38}
    $$
  • Step 1 (Differentiate under the expectation,在期望内微分)
    • 根据 (A2),梯度算子可以被移入期望和求和内部
  • Step 2 (Apply product rule, 应用乘积法则)
    • 对于每个 \(y\),分子部分的梯度为(应用乘积法则):
      $$
      \begin{align}
      \nabla_{\color{red}{\theta}}\big[\pi_{\color{red}{\theta}}(y|x)\log \pi_{\color{red}{\theta}}(y|x)\big] &= (\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}})\log \pi_{\theta} + \pi_{\theta}\cdot \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}} \\ \qquad
      &= (\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}})\log \pi_{\theta} + \pi_{\theta}\cdot \frac{1}{\pi_{\theta}}\cdot \nabla_{\color{red}{\theta}} \pi_{\color{red}{\theta}} \\
      &= (\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}})(\log \pi_{\theta} + 1).
      \end{align}\tag {39}
      $$
    • 根据 (A3),参考项的梯度为
      $$\nabla_{\color{red}{\theta}}[- \pi_{\color{red}{\theta}}(y|x)\log \pi_{\text{ref} }(y|x)] = - (\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x))\log \pi_{\text{ref} }(y|x)$$
  • Step 3 (Collect terms, 合并项)
    • 合并项后可得到一个带有 Detached 系数的表达式(减法变分母):
      $$
      \nabla_{\color{red}{\theta}}\mathcal{J}_{\text{KL} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D} }\left[\sum_{y}\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)\left(\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)} +1\right)\right] \tag {40}
      $$
  • Step 4 (Apply score-function reweighting,应用得分函数重加权)
    • 使用推论 C.0.1,其中 Detached 系数为 与 \(\color{red}{\theta}\) 梯度无关的 \(z(y,x)\)
      $$ z(y,x):= \log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)} +1$$
      • 于是有:
        $$
        \nabla_{\color{red}{\theta}}\mathcal{J}_{\text{KL} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\left(\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)} +1\right)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right] \tag {41}
        $$
  • Step 5 (Simplify using the zero-mean score property,使用得分零均值性质简化)
    • 根据引理 C.2,\(+1\) 项的期望为零,得到最终 Standard 梯度:
      $$
      \begin{align}
      \color{red}{\text{Final Standard Gradient :}}& \\
      \nabla_{\color{red}{\theta}}\mathcal{J}_{\text{KL} }(\color{red}{\theta}) &= \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)}\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right]
      \end{align} \tag {42}
      $$

C.4 The Gold Standard:\(k_{1}\) in reward \(\Leftrightarrow k_{2}\) as loss

Surrogate 1:\(k_{1}\) in reward
  • 具体如下:
    $$
    \mathcal{J}_{k_1\text{ in rewards} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\left(\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)}\right)\log \pi_{\color{red}{\theta}}(y|x)\right] \tag {43}
    $$
    • 由于系数 Detached ,其梯度与公式 (42) 相同(最终 Standard 梯度)
Surrogate 2:\(k_{2}\) as loss
  • 具体公式如下:
    $$
    \mathcal{J}_{k_2\text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\frac{1}{2}\left(\log \pi_{\color{red}{\theta}}(y|x) - \log \pi_{\text{ref} }(y|x)\right)^2\right] \tag {44}
    $$
  • 根据链式法则,并为了清晰起见,展示得到的标量乘子为其 Detached 副本:
    $$
    \begin{align}
    \nabla_{\color{red}{\theta}}\mathcal{J}_{k_2\text{ as loss} }(\color{red}{\theta}) &= \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[(\log \pi_{\theta}(y|x) - \log \pi_{\text{ref} }(y|x))\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right] \\
    &= \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[(\log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)})\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right]
    \end{align}
    \tag {45}
    $$
    • 注意系数 Detached ,所以这也与公式 (42) 相同(最终 Standard 梯度)

C.5 Conclusion and Implementation Guidance

  • 在假设 (A1)-(A4) 下,真实的 KL 目标和两个替代目标共享相同的期望梯度,由公式 (42) 给出,需要注意的是这种等价性基于以下关键约定
    • Sampling Measure :样本从一个 Detached 策略 \(y\sim \pi_{\theta}(\cdot |x)\) 中抽取(通常是 vLLM)
    • Detached 系数 :乘以得分函数的尺度系数被视为 Detached
      • 应用推论 C.0.2,可以添加任何 Detached 基线 \(b(x)\) 以降低方差
    • 梯度路径 (Gradient Path) :梯度仅通过明确由 \(\color{red}{\theta}\) 参数化的项传播
Implementation Notes
  • 对于单个 on-policy 样本 \(y\sim \pi_{\theta}(\cdot |x)\):
  • \(k_{1}\) in reward:
    • 为了最小化 \(\mathcal{J}_{\text{KL} }\),定义权重(Detached)
      $$ \text{weight} := \log \pi_{\theta}(y|x) - \log \pi_{\text{ref} }(y|x) $$
    • 对下面的损失上执行梯度下降步骤即是对 \(\mathcal{J}_{\text{KL} }\) 进行下降:
      $$ \text{Loss} := \text{weight} \cdot \log \pi_{\color{red}{\theta}}(y|x) $$
    • 对下面的损失上执行梯度下降步骤即是对 \(\mathcal{J}_{\text{KL} }\) 进行提升(提升 KL 散度有啥意义?这里应该是作为 \(\text{loss} = L_{\text{reward}} - \beta L_{\text{KL}}\) 的用法吧):
      $$ \text{Loss} :=- \text{weight} \cdot \log \pi_{\color{red}{\theta}}(y|x) $$
  • \(k_{2}\) as loss:
    • 为了最小化 \(\mathcal{J}_{\text{KL} }\),可以:
    • 定义对数比率:
      $$ \text{log-ratio} := \log \pi_{\color{red}{\theta}}(y|x) - \log \pi_{\text{ref} }(y|x) $$
    • 然后损失为:
      $$\text{Loss} := \frac{1}{2}\left(\text{log-ratio}\right)^{2} $$
  • Remarks
    • (i) 对于连续空间,用积分替换求和,只要密度在其支撑集上为正,证明不变
    • (ii) 等价性需要 on-policy 采样
      • 如果样本是从一个旧的策略 \(\pi_{\text{old} }\) 中抽取的,精确的修正需要在期望内部使用重要性权重
        $$\rho (x,y) = \frac{\pi_{\color{red}{\theta}}(y|x)}{\pi_{\text{old} }(y|x)}$$

附录 D:Surrogate Objective: Full-Vocabulary vs. Monte Carlo

  • 本节形式化了理论策略梯度目标与其实际 minibatch 实现之间的联系
  • 本文作者详细说明了两个关键的估计器:
    • 1)全词表损失 (full-vocabulary loss) :精确的,但计算上不可行
    • 2)蒙特卡洛损失 (Monte Carlo, MC) :无偏的、实用的近似估计

Conventions and gradient paths(一些约定和梯度路径)

  • 1)可训练的策略 \(\pi_{\color{red}{\theta}}\) 携带梯度
    • 其在当前迭代步数值相同、 Detached 快照记为 \(\pi_{\theta}\)
  • 2)所有乘以得分函数的标量都 Detached :
    • 奖励 \(r(x,y)\),任何 KL 导出的项 \(k_{n}(\cdot)\),以及它们的组合 \(r(x,y) - \beta k_{n}(\cdot)\)
    • 注:附录 D 的前几个小节主要在讨论 \(k_{n}\) in reward 的情况,最后会再给出一个 \(k_{n}\) as loss 的分析
  • 3)梯度仅通过 \(\log \pi_{\color{red}{\theta}}(y|x)\) 流动
    • 系数 \(c(x,y)\) 内的所有内容都 Detached
  • 4)这里继续采用正文中使用的命名:
    • 奖励(Detached)系数,\(k_{n}\)(Detached)系数,以及组合形式系数
  • 本文作者使用一个通用的、 Detached 标量系数 \(c(x,y)\) 来表达目标,它可以有多种形式:
    $$
    c(x, y) \in \left\{
    \begin{array}{lr}
    r(x, y) & \text{reward (detached) coefficient} \\
    k_n(\pi_\theta(y|x), \pi_{\text{ref}}(y|x)) & k_n \text{ (detached) coefficient} \\
    r(x, y) - \beta k_n(\pi_\theta(y|x), \pi_{\text{ref}}(y|x)) & \text{combined form coefficient}
    \end{array}
    \right\} \tag{46}
    $$
    • 即:\(c(x,y) \text{ 可以是 } r(x,y) \text{ 或 } k_n(\cdot) \text{ 或 } r(x,y) - \beta k_n(\cdot)\)
    • 问题:\(c(x, y) = k_n(\pi_\theta(y|x), \pi_{\text{ref}}(y|x))\) 是不是应该加负号?
  • 一个典型的 KL 选择是
    $$
    k_{1}(y|x) = \log \pi_{\color{red}{\theta}}(y|x) - \log \pi_{\text{ref} }(y|x) \tag {47}
    $$

Policy gradient in expectation form (with baseline)(带基线的策略梯度期望形式)

  • 对于总体目标
    $$\mathcal{J}_{\text{true} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\color{red}{\theta}}(\cdot |x)}[c(x,y)]$$
  • 首先我们有下面这个带 Detached 分母的对数导数恒等式
    $$
    \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x) = \frac{\nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y|x)}{\pi_{\theta}(y|x)} \tag {48}
    $$
  • 在结合一个 Detached 、与动作无关的基线 \(b(x)\),于是得到无偏的策略梯度为
    $$
    \nabla_{\color{red}{\theta}}\mathcal{J}_{\text{true} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[(c(x,y) - b(x))\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right] \tag {49}
    $$
    • 注:这一步依赖于在 \(y\sim \pi_{\theta}(\cdot |x)\) 下证明的得分零均值性质(公式 (34)),确保 \(b(x)\) 不会改变期望梯度

Population surrogate loss(总体替代损失)

  • 一个其负梯度恢复公式 (49) 的替代损失是
    $$
    \mathcal{L}_{\text{sur} }(\color{red}{\theta}) = -\mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[(c(x,y) - b(x))\log \pi_{\color{red}{\theta}}(y|x)\right] \tag {50}
    $$
    • 问题:为什么要加上负号?
    • 回答:因为这里不是用于恢复 (49) 的,而是恢复 (49) 的负梯度

Two interchangeable mini-batch implementations(可互换的实现)

  • 作者提供公式 (50) 的两个等价的 minibatch 估计器
    • 第一个 :通过对所有动作求和,使用 Detached 采样权重,计算离散动作空间 \(\mathcal{V}\) 上的精确内层期望
      $$
      \mathcal{L}_{\text{sur,Full} }(\color{red}{\theta}) = -\frac{1}{N}\sum_{i = 1}^{N}\sum_{y^{(i)}\in \mathcal{V} }\pi_{\theta}\big(y^{(i)}\mid x^{(i)}\big)\left(c(x^{(i)},y^{(i)}) - b(x^{(i)})\right)\log \pi_{\color{red}{\theta}}\big(y^{(i)}\mid x^{(i)}\big) \tag {51}
      $$
      • 这里需要注意:
        • “Detached 权重”表示梯度不通过 \(\pi_{\theta}\) 流动
        • 得分路径仅通过 \(\log \pi_{\color{red}{\theta}}\)
      • 这里本质是原始 RL 中对所有可能的动作进行积分来准确衡量期望的方式
    • 第二个 :用独立同分布的 on-policy 样本替换这个内层求和,得到在给定 minibatch Prompt 条件下的无偏估计
      $$
      \mathcal{L}_{\text{sur,MC} }(\color{red}{\theta}) = -\frac{1}{N}\sum_{i = 1}^{N}\frac{1}{G}\sum_{j = 1}^{G}\left(c(x^{(i)},y^{(i,j)}) - b(x^{(i)})\right)\log \pi_{\color{red}{\theta}}\big(y^{(i,j)}\mid x^{(i)}\big)\\
      \text{where } \quad y^{(i,j)}\sim \pi_{\theta}(\cdot |x^{(i)}) \tag {52}
      $$
      • 在公式 (52) 中,\(\{y^{(i,j)}\}_{j = 1}^{G}\) 是从 Detached 快照 \(\pi_{\theta}(\cdot |x^{(i)})\) 中独立同分布采样得到的
      • 增加 \(G\) 可以在保持无偏性的同时降低方差

Unbiasedness and practical considerations

  • 对于任意固定的 \(x^{(i)}\) 和函数 \(f\),均有
    $$
    \mathbb{E}_{\{y^{(i,j)}\}_{j = 1}^{G}\text{i.i.d.}\sim \pi_{\theta}(\cdot |x^{(i)})}\left[\frac{1}{G}\sum_{j = 1}^{G}f\big(y^{(i,j)}\big)\right] = \sum_{y^{(i)}\in \mathcal{V} }\pi_{\theta}\big(y^{(i)}\mid x^{(i)}\big)f\big(y^{(i)}\big) \tag {53}
    $$
  • 因此其期望等于原始按照词表加和的情况:
    $$ \mathbb{E}\big[\mathcal{L}_{\text{sur,MC} }\mid \{x^{(i)}\} \big] = \mathcal{L}_{\text{sur,Full} }$$
  • 在实践中,MC 估计是标准做法
    • 因为:对于 LLM 来说,由于 GPU 内存限制,计算整个词表表上的 \(r(x,y)\) 或 \(k_{n}(\cdot)\) 是不可行的

\(k_{n}\) in reward 外的另一种解耦形式:\(k_{n}\) as loss

  • 注:附录 D 的前几个小节主要在讨论 \(k_{n}\) in reward 的情况
  • 除了通过系数 \(c(x,y)\) 整合 KL 外,还可以添加一个单独的、仅惩罚项的损失,该损失直接通过对数比率进行微分
  • 令 \(\psi_{n}:\mathbb{R}\to \mathbb{R}\) 是可微的
    • 例如,\(\psi_{1}(t) = t\),\(\psi_{2}(t) = \frac{1}{2} t^{2}\)
    • 注:不能是 \(\psi_{3}(t)\)
  • 定义
    $$
    \mathcal{L}_{k_{n}\text{ as loss,MC} }(\color{red}{\theta}) = -\frac{1}{NG}\sum_{i = 1}^{N}\sum_{j = 1}^{G}\psi_{n}\big(\log \pi_{\color{red}{\theta}}\big(y^{(i,j)}\big|x^{(i)}\big) - \log \pi_{\text{ref} }\big(y^{(i,j)}\big|x^{(i)}\big)\big) \tag {54}
    $$
  • 其梯度呈现得分函数形式
    $$
    \nabla_{\color{red}{\theta}}\mathcal{L}_{k_{n}\text{ as loss,MC} }(\color{red}{\theta}) = -\frac{1}{NG}\sum_{i = 1}^{N}\sum_{j = 1}^{G}\psi_{n}^{\prime}(\cdot)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}\big(y^{(i,j)}\big|x^{(i)}\big) \tag {55}
    $$
    • 其中 \((\cdot)\) 表示公式 (54) 中的对数比率 (log-ratio)
    • 注:\(\pi_\text{ref}\) 并没有完全消失,还在 \(\psi_{n}^{\prime}(\cdot)\) 中
    • 这里上撇号(prime)表示对标量参数的微分:
      $$
      \psi_{n}^{\prime}(t)\triangleq \frac{\text{d} }{\text{d}t}\psi_{n}(t) \tag {56}
      $$
      • 在 on-policy 采样下,在当前迭代步评估标量系数 \(\psi_{n}^{\prime}(\cdot)\)(即将其视为 Detached ),会得到正文中建立的梯度等价性(见第 5.2 节中的定理和附录 C)
      • 一个常见的选择 \(\psi_{2}(t) = \frac{1}{2} t^{2}\) 恢复了平方对数比率惩罚
  • 此时,总目标即为
    $$ \mathcal{L}_{\text{reward,MC} } - \beta \cdot \mathcal{L}_{k_{n}\text{ as loss,MC} }$$
    • 其中 \(\pi_{\text{ref} }\) 是固定的且 Detached
    • 注:即使求梯度后(公式 (55)),\(\pi_\text{ref}\) 也不会完全消失,还在 \(\psi_{n}^{\prime}(\cdot)\) 中,这跟 KL 与 \(\pi_\text{ref}\) 有关的判断能对齐

附录 E:对 \(\mathbf{k}_{3}\) as loss 梯度替代目标的 Formal 分析

  • 本节提供了支撑第 5.3 节的正式分析,证明 \(k_{3}\) as loss 公式作为主要逆向 KL 梯度的 一阶、有偏的替代目标
  • 首先在 on-policy 采样下推导其梯度等价的 in-reward 系数,然后剖析其三个核心缺陷:
    • 局部偏差、全局不对称性和统计不稳定性
  • 在整个过程中,作者固定一个 Prompt \(x\),并考虑从可训练策略 \(\pi_{\color{red}{\theta}}\) 的 Detached 快照中 on-policy 采样的样本 \(y \sim \pi_{\theta}(\cdot |x)\),这里将概率比定义为:
    $$
    \delta (y):= \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)} \tag {57}
    $$
  • 作者的分析比较了由 \(k_{3}\) as loss 诱导的系数与主要 RKL 梯度系数 \(c^{*}(y) = - \log \delta (y)\)
  • 注:所有乘以得分函数 \(\nabla_{\color{red}{\theta}} \log \pi_{\color{red}{\theta}}(y|x)\) 的标量系数均被视为 Detached

\(k_{3}\) as loss 的梯度等价系数

  • \(k_{3}\) as loss 目标由下式给出:
    $$
    \mathcal{J}_{k_3 \text{ as loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\frac{\pi_{\text{ref} }(y|x)}{\pi_{\color{red}{\theta}}(y|x)} -1 - \log \frac{\pi_{\text{ref} }(y|x)}{\pi_{\color{red}{\theta}}(y|x)}\right] \tag {58}
    $$
  • 微分并在 Detached 快照处评估得到的标量乘子,得到:
    $$
    \nabla_{\color{red}{\theta}}\mathcal{J}_{k_3\text{ as }\text{loss} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\left(1 - \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)}\right)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right] \tag {59}
    $$
    • 从公式 (58) 到 (59) 的推导详情见附录
  • 这证实了 \(k_{3}\) as loss(在 on-policy 采样下)梯度等价于一个 in-reward 更新,其 Detached 系数为:
    $$
    c_{3^{\prime} }(y):= 1 - \delta (y) \tag {60}
    $$
  • 也就是说 \(k_{3}\) as loss 的等价 in reward 形式,即 \(k_{3}^{\prime}\) in reward 目标形式为:
    $$
    \mathcal{J}_{k_3^{\prime}\text{ in }\text{reward} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\left(1 - \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)}\right)\log \pi_{\color{red}{\theta}}(y|x)\right] \tag {61}
    $$
  • 接下来,本节主要分析这个代理 \(c_{3^{\prime} }\) 与主要目标 \(c^{*} = - \log \delta\) 相比的缺陷

Lemma E.1 (First-order agreement and second-order bias,一阶一致性和二阶偏差)

  • 代理 \(1 - \delta\) 是主要系数 \(- \log \delta\) 在 \(\delta = 1\) 附近的一阶泰勒近似
  • 近似误差(偏差)是二阶的:
    $$
    \text{Bias}(\delta) = (- \log \delta) - (1 - \delta) = \frac{1}{2} (\delta -1)^{2} - \frac{1}{3} (\delta -1)^{3} + O((\delta -1)^{4}) \tag {62}
    $$
  • Proof sketch
    • 通过在 \(r = 1\) 处展开 \(- \log \delta\) 的泰勒级数并减去项 \((1 - \delta)\) 得到此结果

Lemma E.2 (One-sided domination and asymmetric tails, 单边支配和不对称尾部)

  • 对于所有 \(\delta > 0\),代理是一个严格的下界,\(1 - \delta \leq - \log \delta\),且仅在 \(\delta = 1\) 时取等
    • 注:这里的不等式源于基本性质 \(\log \delta \leq \delta - 1\)
  • 它们的尾部行为是病态的不对称的:
    • 过覆盖 (Over-coverage) \((\delta \rightarrow 0^{+})\):
      • 代理提供一个弱的、饱和的恢复力
        $$\lim_{\delta \rightarrow 0^{+} }(1 - \delta) = 1$$
      • 主要系数提供一个无界的惩罚
        $$\lim_{\delta \rightarrow 0^{+} }(- \log \delta) = +\infty$$
    • 欠覆盖 (Under-coverage) \((\delta \rightarrow \infty)\):
      • 代理诱导一个激进的、线性爆炸的惩罚
        $$ \lim_{\delta \rightarrow \infty}(1 - \delta) = -\infty $$
      • 主要系数的惩罚仅呈对数增长
        $$ \lim_{\delta \rightarrow \infty}(- \log \delta) = -\infty $$

Theorem E.1 (Variance equals chi-squared divergence,方差等于卡方散度)

  • 假设 \(\sup (\pi_{ref}(\cdot |x)) \subseteq \sup (\pi_{\color{red}{\theta}}(\cdot |x))\),代理系数 \(c_{3^{\prime} }\) 在 on-policy 采样分布下的均值为零,其方差恰好是卡方散度:
    $$
    \mathbb{E}_{y\sim \pi_{\color{red}{\theta}} }[1 - \delta (y)] = 0 \\ \text{Var}_{y\sim \pi_{\color{red}{\theta}} }[1 - \delta (y)] = \chi^{2}(\pi_{ref}(\cdot |x)\parallel \pi_{\color{red}{\theta}}(\cdot |x)) \tag {63}
    $$
    • 如果支撑集条件被违反,则方差是无穷大
    • 注:卡方散度比 KL 散度更不稳定(在 \(Q(x)\) 极小时,卡方散度很容易出现爆炸)
      • 卡方散度是被 \(\frac{1}{Q}\) 修饰的,当 \(Q(x)\) 减小时,是线性增长
      • KL 散度是被 \(\log \frac{1}{Q}\) 修饰的,当 \(Q(x)\) 减小时,对数增长就慢很多
  • Proof sketch
    $$\begin{array}{r}{\mathbb{E}[\delta ] = \sum_{y}\pi_{\color{red}{\theta}}(y|x)\frac{\pi_{\text{ref} }(y|x)}{\pi_{\color{red}{\theta}}(y|x)} = 1} \end{array}$$
    • 因此 \(\mathbb{E}[1 - r] = 0\)
    • 然后方差恒等式直接由 \(\chi^{2}(p\parallel q)\) 的定义得出
推论 E.1.1 (Implication for stochastic gradient variance) 对随机梯度方差的影响
  • 由 \(k_{3}\) as loss 诱导的随机梯度项的方差直接受卡方散度控制(如上文所述,这是一个以不稳定著称的度量):
    $$
    \mathbb{E}\left[\left| (1 - \delta (y))\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right|^{2}\right] = \mathbb{E}\left[(1 - \delta (y))^{2}\left| \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x)\right|^{2}\right] \tag {64}
    $$

Conclusion

  • \(k_{3}\) as loss 公式并未实现真实的 RKL 梯度
  • \(k_{3}\) as loss 提供了一个一阶代理 \((c_{3^{\prime} } = 1 - \delta)\)
  • \(k_{3}\) as loss 代理仅在策略非常接近参考策略时 \((\delta \approx 1)\) 才是准确的
  • \(k_{3}\) as loss 病态的尾部行为和高方差(与卡方散度相关)引入了 \(k_{1}\) in reward 或 \(k_{2}\) as loss 公式中不存在的优化挑战
  • 要根据梯度属性(而不仅仅是其作为值估计器的特性)来选择正则化损失的关键重要性

附录 F:(MiniMax-01 surrogate loss)Derivation of an Alternative Regularizer: The MiniMax-01 Loss from MSE Distance(推导得到替代正则化项)

  • 作为 KL 正则化的替代方案,本附录推导了 MiniMax-01 损失 (2025)
    • 注:这个损失的目标就已经变化了,不是原始的 KL 散度的,目标是 MSE 了
  • 接下来将证明它源于均方误差 (Mean Squared Error, MSE) 目标,并且符合本文以梯度为中心的框架
  • 我们遵循已建立的 on-policy 约定:
    • \(\pi_{\color{red}{\theta}}\) 是可训练的策略,\(\pi_{\theta}\) 是其 Detached 快照(在当前迭代步数值相等)
    • 所有乘以得分函数的标量系数在反向传播期间都被视为 Detached

Objective of MiniMax-01 surrogate loss

  • 我们最小化策略与参考模型之间的全词表 MSE:
    $$
    \mathcal{J}_{\text{MSE} }(\color{red}{\theta}) = \mathbb{E}_{x\sim \mathcal{D} }\left[\frac{1}{2}\sum_{y}\left(\pi_{\color{red}{\theta}}(y\mid x) - \pi_{\text{ref} }(y\mid x)\right)^{2}\right] \tag {65}
    $$
    • 注意:这已经不是 KL 散度了

On-policy gradient of MiniMax-01 surrogate loss

  • 对公式 (65) 关于 \(\color{red}{\theta}\) 求导,在 Detached 快照 \(\pi_{\theta}\) 处评估标量乘子(作者的标准 on-policy 约定),并转换为得分函数形式,得到:
    $$
    \begin{align}
    \nabla_{\color{red}{\theta}}\mathcal{J}_{\text{MSE} }(\color{red}{\theta}) &= \mathbb{E}_{x\sim \mathcal{D} }\sum_{y}\left[\frac{1}{2}\nabla_{\color{red}{\theta}}(\pi_{\color{red}{\theta}}(y|x) - \pi_{\text{ref} }(y|x))^{2}\right]\\
    &= \mathbb{E}_{x\sim \mathcal{D} }\sum_{y}\underbrace{\left(\pi_{\theta}(y\mid x) - \pi_{\text{ref} }(y\mid x)\right)}_{\text{detached coefficient} } \nabla_{\color{red}{\theta}}\pi_{\color{red}{\theta}}(y\mid x)\\
    &= \mathbb{E}_{x\sim \mathcal{D} }\sum_{y}\pi_{\theta}(y\mid x)\underbrace{\left(\pi_{\theta}(y\mid x) - \pi_{\text{ref} }(y\mid x)\right)}_{\text{detached coefficient} } \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y\mid x)\\
    &= \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot \mid x)}\left[\left(\pi_{\theta}(y\mid x) - \pi_{\text{ref} }(y\mid x)\right)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y\mid x)\right]
    \end{align} \tag {66}
    $$
    • 最后一行揭示了 MSE 正则化诱导出一个得分函数更新,其标量系数是概率差 \(\pi_{\theta} - \pi_{\text{ref} }\)
    • 注意:这里跟之前的推导有本质差异,本身没有对数,也不是之前的 \(\log\frac{\pi_{\text{ref}}}{\pi_{\theta}}\) 形式

MiniMax-01 surrogate loss (Monte Carlo)

  • 使用一个 on-policy 采样器,为每个 Prompt 抽取 \(G\) 个回复 \(y^{(i,j)}\sim \pi_{\theta}(\cdot \mid x^{(i)})\),其负梯度能恢复公式 (66) 的无偏 minibatch 替代目标为
    $$
    \mathcal{L}_{\text{MSE},\text{MC}(\text{MinMax-01})}(\color{red}{\theta}) = -\frac{1}{NG}\sum_{i = 1}^{N}\sum_{j = 1}^{G}\left(\pi_{\theta}(y^{(i,j)}\mid x^{(i)}) - \pi_{\text{ref} }(y^{(i,j)}\mid x^{(i)})\right)\log \pi_{\color{red}{\theta}}(y^{(i,j)}\mid x^{(i)}) \tag {67}
    $$
  • 这与作者 Principled KL 实现共享相同的 in-reward 得分函数结构:
    • 系数 Detached ,并且梯度仅通过 \(\log \pi_{\color{red}{\theta}}\) 流动

Key properties and implications of MiniMax-01 surrogate loss

  • 1)有界梯度系数 (Bounded gradient coefficient)
    • 由于 \(0\leq \pi_{\color{red}{\theta}}(y\mid x),\pi_{\text{ref} }(y\mid x)\leq 1\),系数满足 \(-1\leq \pi_{\color{red}{\theta}}(y\mid x) - \pi_{\text{ref} }(y\mid x)\leq 1\)
    • 这种有界性增强了针对大规模或病态更新的稳定性,与 KL 使用的无界对数比率形成对比(见图 1)
    • 这支持了作者在第 5 节中的建议,即在稳定性至关重要时考虑有界替代方案
  • 2)概率空间中的对称性 (Symmetry in probability space)
    • 与逆向 KL 的对数惩罚相比,MSE 惩罚关于概率差是对称的,在策略发散时提供更保守的修正
  • 3)Off-policy 兼容性 (Off- policy compatibility)
    • 由于其 in-reward 形式带有 Detached 系数,该头部完全兼容重要性采样和裁剪,遵循与附录 G 中相同的修正规则
  • Remark
    • 与作者的 KL 分析一致,公式 (66) 是通过在 Detached 快照 \(\pi_{\theta}\)(on-policy)处评估标量乘子得到的
    • 这使所有正则化项都保持在统一的 \(k_{n}\) 乘以得分函数的视角下,并能够对其诱导的更新动态进行直接的、同类比较

附录 G:Off-Policy Correction for KL Regularization,KL 正则化的 Off-policy 修正

  • 许多 RLHF 实现都存在一个微妙但关键的 Off-policy 偏差,特别是当 KL 项以 “as loss” 的方式实现时
    • 这种公式只有在 On-policy 采样下才具有正确的梯度
  • 对于 Off-policy 更新,它们需要显式的重要性采样和 PPO 式裁剪
    • 省略这些步骤会系统地使更新产生偏差,并破坏训练稳定性
    • 本节提供了符合本文以梯度为中心框架的 Principled 修正

G.1 From On-Policy to Off-Policy Gradients, 从 On-policy 梯度到 Off-policy 梯度

  • 我们在策略梯度视角下进行操作,其中更新由一个 detached 系数 \(c(x,y)\) 驱动,该系数乘以得分函数, On-policy 梯度估计器为:
    $$
    \nabla_{\color{red}{\theta}}\mathcal{J}_{c}(\color{red}{\theta}) = \mathbb{E}_{x\sim D,y\sim \pi_{\color{red}{\theta}}(.|x)}\left[c(x,y)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y\mid x)\right] \tag {68}
    $$
    • 其中 \(\pi_{\color{red}{\theta}}\) 是在梯度评估时数值上等于 \(\pi_{\color{red}{\theta}}\) 的 detached 快照
    • 对于从行为策略 \(y\sim \pi_{\theta_{k} }(\cdot \mid x)\) 抽取的样本,一个无偏的 Off-policy 估计器需要 IS,假设行为策略对采样数据具有支持 \((\pi_{\theta_{k} }(y\mid x) > 0)\):
      $$
      \nabla_{\color{red}{\theta}}\mathcal{J}_{c}(\color{red}{\theta}) = \mathbb{E}_{x\sim D,y\sim \pi_{\theta_{k} }(\cdot |x)}\left[\frac{\pi_{\color{red}{\theta}}(y\mid x)}{\pi_{\theta_{k} }(y\mid x)} c(x,y)\nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y\mid x)\right] \tag {69}
      $$
  • PPO 的目标函数中,使用如下携带梯度的比率来修正
    $$ \rho_{k}(\color{red}{\theta}) = \frac{\pi_{\color{red}{\theta}}(y|x)}{\pi_{\theta_{k} }(y|x)}$$
    • 其中梯度仅流过分子
    • 替换这个 detached IS 权重,并采用裁剪的替代目标以降低方差
    • 对于任何 detached 系数 \(c(x,y)\) ,要最大化的裁剪目标为:
      $$
      \mathcal{J}_{c,\text{clipped} }(\color{red}{\theta}) = \mathbb{E}_{x\sim D,y\sim \pi_{\theta_{k} }(\cdot |x)}\left[\min \left(\rho_{k}(\color{red}{\theta})c(x,y), \text{clip}\left(\rho_{k}(\color{red}{\theta}),1 - \epsilon ,1 + \epsilon\right)c(x,y)\right)\right] \tag {70}
      $$

G.2 Correcting \(k_{n}\) as Loss by Converting to an In Reward Head(通过转换为“in reward” Head 来修正“\(k_{n}\) as loss”)

  • \(k_{n}\) as loss 仅在 On-policy 时具有正确的梯度
    • 要使 \(k_{n}\) as loss 适用于 Off-policy 使用,必须首先将其转换为其梯度等效的 in reward 形式
    • 这是通过定义一个 detached 系数 \(k_{n^{\prime} }(x,y)\) 来实现的,该系数重现了原始 loss 的 On-policy 梯度
  • 对于一个可微的惩罚项 \(k_{n}(\pi_{\color{red}{\theta}}(y|x),\pi_{\text{ref} }(y|x))\) ,该 \(k_{n}\) in reward 的系数是其关于策略对数概率的导数,在当前 detached 快照处求值:
    $$
    k_{n^{\prime} }(\pi_{\color{red}{\theta}}(y|x),\pi_{\text{ref} }(y|x)):= \frac{\partial}{\partial\log\pi_{\color{red}{\theta}} } k_{n}(\pi_{\color{red}{\theta}}(y|x),\pi_{\text{ref} }(y|x))\bigg|_{\log \pi = \log \pi_{\theta}(y|x)} \tag {71}
    $$
  • 作者的 约定
    • 1)呈现的目标是用于最大化
    • 2)实现若最小化一个 loss,应对这些表达式取负
      • 例如,最小化 \(-\mathcal{J}_{\text{combined} }\) 或 \(-(\mathcal{J}_{\text{reward} } - \beta \mathcal{J}_{\text{KL} })\)

附录 H:Visualization of KL Regularization Gradient Coefficients,KL 正则化梯度系数的可视化

  • 为了可视化第 5 节讨论的理论论点,本节提供了用于生成图 1 的 Python 代码
  • 该图比较了不同的标量系数的行为,这些系数乘以策略的得分函数作为给定 token 的 Actor 对数概率的函数
    $$ \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}(y|x) $$
  • 这些系数分别来自各自的 KL 正则化 Loss:\(k_{1}\) in erward、 \(k_{2}\) as loss 、\(k_{3}\) as loss以及 MiniMax-01 loss
  • 该可视化清晰地对比了源自 \(k_{1}\) in erward / \(k_{2}\) as loss 的 Principled 系数的稳定、线性行为与一阶近似 \(k_{3}\) as loss 的非对称行为
  • 正如正文中所论述的,\(k_{3}\) 代理在过度采样 token 时趋于饱和,而在欠采样 token 时趋于爆炸的倾向
  • 以下代码使用 ‘matplotlib’ 和 ‘torch’ 生成该图
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    import torch
    import matplotlib.pyplot as plt

    # --- Plotting Style ---
    plt.style.use('seaborn-v0_8-whitegrid')
    plt.rcParams.update({
    "text.usetex": False, # Disable LaTeX rendering
    "font.family": "serif", # Use a generic serif font
    "font.serif": ["Times New Roman"], # Specify Times New Roman as the serif font
    "font.size": 14,
    "axes.labelsize": 16,
    "legend.fontsize": 12,
    "xtick.labelsize": 12,
    "ytick.labelsize": 12,
    })

    # --- Data Generation ---
    log_pi_actor = torch.linspace(-5, 0, steps=400)
    pi_actor = torch.exp(log_pi_actor)

    pi_ref_val = 0.25
    log_pi_ref = torch.log(torch.tensor(pi_ref_val))

    # --- Coefficients Calculation ---
    coeff_k1_loss = torch.ones_like(log_pi_actor)
    coeff_k1_reward = log_pi_actor - log_pi_ref
    coeff_k3_loss = 1 - pi_ref_val / pi_actor
    coeff_minimax = pi_actor - pi_ref_val

    # --- Plotting ---
    plt.figure(figsize=(10, 6.5))

    plt.plot(log_pi_actor, coeff_k1_reward,
    label=r'$\\log\\pi_{\\theta} - \\log\\pi_{\\text{ref}}$ ($k_1$ in reward / $k_2$ as loss) - Principled',
    color='#808000', linewidth=3, zorder=10)

    plt.plot(log_pi_actor, coeff_k3_loss,
    label=r'$1 - \\pi_{\\text{ref}}/\\pi_{\\theta}$ ($k_{3^{\\prime}}$ in reward / $k_3$ as loss) - Biased Approximation',
    color='Firebrick', linestyle='--', linewidth=2)

    plt.plot(log_pi_actor, coeff_minimax,
    label=r'$\\pi_{\\theta} - \\pi_{\\text{ref}}$ (MiniMax-01)',
    color='RoyalBlue', linestyle='-.', linewidth=2)

    plt.plot(log_pi_actor, coeff_k1_loss,
    label=r'$1$ ($k_1$ as loss) - Zero Expected Gradient',
    color='Gray', linestyle=':', linewidth=2)

    plt.axvline(x=log_pi_ref.item(), color='black', linestyle='--', linewidth=1,
    label=r'$\\log\\pi_{\\theta} = \\log\\pi_{\\text{ref}}$')

    plt.xlabel(r'Actor Log-Probability: $\\log \\pi_{\\theta}(y|x)$')
    plt.ylabel(r'Coefficient of Score Function')
    plt.title(r'Comparison of KL Regularization Coefficients ($\\pi_{\\text{ref}}=0.25$)', fontsize=18)
    plt.legend(loc='upper left')

    plt.ylim(-4, 4)
    plt.xlim(-5, 0)

    plt.tight_layout()
    plt.savefig('comparison_kl_regularization_coefficients.png', dpi=300, bbox_inches='tight')
    plt.show()

附录 I:On the Statistical Instability of the \(k_{3}\) Value Estimator, 论 \(k_{3}\) 值估计器的统计不稳定性

I.1 The Strict Precondition for Unbiasedness,无偏性的严格前提条件

  • 回顾一下无偏的定义:如果一个估计器的期望等于真实值,则该估计器是无偏的
  • 对于 \(k_{3}\) ,其期望为:
    $$
    \mathbb{E}_{q}[k_{3}] = \mathbb{E}_{q}[\delta (x) - 1 - \log \delta (x)] = (\mathbb{E}_{q}[\delta (x)] - 1) + D_{KL}(q \parallel p)
    $$
  • 要使 \(k_{3}\) 无偏,必须满足条件 \(\mathbb{E}_{q}[\delta (x)] = 1\)
    • 注:这里有 \(\delta (x) = \frac{p(x)}{q(x)}\)
    • 如果 \(p\) 关于 \(q\) 是绝对连续的 \((p\ll q)\) ,即 \(p\) 的支持集必须包含在 \(q\) 的支持集内 ,则满足此条件
      • \(p\) 的支持集必须包含在 \(q\) 的支持集内 的本质是:\(p\) 有值(概率大于 0)的地方,\(q\) 也要有值(概率大于 0),否则积分积不到这部分,导致期望 \(\mathbb{E}_{q}[\delta (x)]\) 不为 1
    • 有限的 KL 散度 \((D_{KL}(q \parallel p)< \infty)\) 条件不足以保证无偏性
      • 例如,设 \(q\) 是 \([0,1]\) 上的均匀分布,\(p\) 是 \([0,2]\) 上的均匀分布
        • KL 散度 \(D_{KL}(q \parallel p) = \int_{0}^{1} 1 \cdot \log (\frac{1}{0.5}) dx = \log 2\) ,是有限的
        • 然而,\(\mathbb{E}_{q}[r(x)] = \int_{0}^{1} 1 \cdot \frac{p(x)}{q(x)} dx = \int_{0}^{1} \frac{0.5}{1} dx = 0.5\)
        • 因此估计器期望为 \(\mathbb{E}_{q}[k_{3}] = (0.5 - 1) + \log 2 = \log 2 - 0.5\) ,是有偏的
补充:\(\mathbb{E}_{q}[\delta (x)] = 1\) 的严格证明
  • 证明目标:当 \(p\) 的支持集包含在 \(q\) 的支持集内(即 \(p \ll q\))时,证明:
    $$
    \mathbb{E}_{q}[\delta(x)] = 1
    $$
  • 以下是证明过程:
  • 定义重要性权重为:
    $$
    \delta(x) = \frac{p(x)}{q(x)}.
    $$
  • 其在分布 \( q(x) \) 下的期望为:
    $$
    \mathbb{E}_{q}[\delta(x)] = \int q(x) \cdot \frac{p(x)}{q(x)} , dx = \int p(x) , dx
    $$
  • 假设 \( p \) 的支持集包含在 \( q \) 的支持集内
    • 即对于所有 \( x \) 满足 \( p(x) > 0 \),都有 \( q(x) > 0 \),从而 \(\frac{p(x)}{q(x)}\) 几乎处处有定义且有限
  • 由于 \( p \) 是一个概率密度函数,满足归一化条件:
    $$
    \int p(x) , dx = 1
    $$
  • 因此有:
    $$
    \mathbb{E}_{q}[\delta(x)] = 1
    $$
    • 证毕
  • 注:在 LLM 的场景,一般都是满足 \(p\) 的支持集必须包含在 \(q\) 的支持集内 的

I.2 Infinite Variance and the Chi-Squared Divergence,无限方差和卡方散度

  • \(k_{3}\) 的方差主要由重要性比率的二阶矩 \(\mathbb{E}_{q}[\delta (x)^{2}]\) 决定
    • 这一项直接与卡方散度相关
  • 当 \(p\ll q\) 时,恒等式成立:
    $$ \chi^{2}(p \parallel q) = \mathbb{E}_{q}[(\delta (x) - 1)^{2}] = \mathbb{E}_{q}[\delta (x)^{2}] - 1$$
    • 如果 \(p\) 关于 \(q\) 不是绝对连续的 \((p\ll q)\) ,则 \(\chi^{2}(p \parallel q)\) 被定义为无穷大
  • 因此
    • 如果 \(\mathbb{E}_{q}[\delta (x)^{2}]\) 是无穷大,那么 \(k_{3}\) 的方差将是无穷大
    • 如果 \(p\ll q\) 或者 \(p\ll q\) 但 \(q\) 的尾部明显轻于 \(p\) 的尾部,就会发生这种情况
  • \(\mathbb{E}_{q}[\delta (x)^{2}]\) 的发散是导致不稳定的主要原因
  • \(\text{Var}(k_{3})\) 的有限性在技术上也需要 \(\mathbb{E}_{q}[(\log \delta (x))^{2}]\) 的有限性

I.3 The Gaussian Case and an Empirical Demonstration,高斯分布情况与实证演示

  • 对于两个高斯分布 \(p \sim \mathcal{N}(\mu_p, \sigma_p^2)\) 和 \(q \sim \mathcal{N}(\mu_q, \sigma_q^2)\):

    • 当且仅当 \(\sigma_q^2 > \sigma_p^2 / 2\) 时,\(k_3\) 的方差是有限的
  • 这个条件说明,采样分布 \(q\) 必须相对于参考分布 \(p\) 足够“宽”

  • 对于具有协方差矩阵 \(\Sigma_p\) 和 \(\Sigma_q\) 的多变量高斯分布,此条件可以推广

    • 计算 \(\mathbb{E}_q[r(x)^2]\) 需要积分两个高斯概率密度之比
    • 为了使该积分收敛 (进而方差有限),要求矩阵 \(2\Sigma_q - \Sigma_p\) 是正定的
  • 如下面的实证所示,用一个窄的高斯分布 \(q(x)\) \((\sigma_q = 0.2)\) 来估计相对于标准高斯分布 \(p(x)\) \((\sigma_p = 1)\) 的 KL 散度,就违反了该条件,因为 \(0.2^2 \not> 1^2 / 2\)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    import torch
    import torch.distributions as dist

    # p: reference distribution, q: sampling distribution
    p = dist.Normal(loc=0, scale=1)
    q = dist.Normal(loc=0.1, scale=0.2) # A narrow distribution where Var[k3] is infinite

    # Sample from the narrow distribution q
    x = q.sample(sample_shape=(10_000,))

    # Ground truth KL divergence D_KL(q || p)
    true_kl = dist.kl_divergence(q, p)

    # Compute the log-ratio log(p(x)/q(x))
    log_r = p.log_prob(x) - q.log_prob(x)
    r = torch.exp(log_r)

    # Define estimators
    k1 = -log_r
    k2 = log_r.pow(2) / 2
    k3 = r - 1 - log_r

    # --- Code to generate output ---
    print(f"True KL Divergence: {true_kl:.4f}\\n")
    print("Estimator | Sample Mean | Sample Std. Dev.")
    print("------------------|---------------|------------------")
    estimators = {"k1": k1, "k2": k2, "k3": k3}

    for name, k in estimators.items():
    mean = k.mean()
    std = k.std()
    print(f"{name:<17} | {mean:>13.4f} | {std:>16.4f}")

    # --- Actual Output 1 ---
    # True KL Divergence: 1.1344
    #
    # Estimator | Sample Mean | Sample Std. Dev.
    # ------------------|---------------|------------------
    # k1 | 1.1272 | 0.6912
    # k2 | 0.8742 | 0.6006
    # k3 | 0.8136 | 8.8244
    # --- Actual Output 2 ---
    # True KL Divergence: 1.1344
    #
    # Estimator | Sample Mean | Sample Std. Dev.
    # ------------------|---------------|------------------
    # k1 | 1.1336 | 0.6611
    # k2 | 0.8611 | 0.5210
    # k3 | 0.6817 | 4.1082
    # --- Actual Output 3 ---
    # True KL Divergence: 1.1344
    #
    # Estimator | Sample Mean | Sample Std. Dev.
    # ------------------|---------------|------------------
    # k1 | 1.1348 | 0.6709
    # k2 | 0.8689 | 0.4968
    # k3 | 0.6595 | 1.4925
    # --- Actual Output 4 ---
    # True KL Divergence: 1.1344
    #
    # Estimator | Sample Mean | Sample Std. Dev.
    # ------------------|---------------|------------------
    # k1 | 1.1256 | 0.6962
    # k2 | 0.8758 | 0.6263
    # k3 | 0.9772 | 26.7379
  • Listing 2: 当采样分布 \(\mathbf{q}(\mathbf{x})\) 过窄时,说明 \(k_{3}\) 值估计量高方差的代码

  • 结果生动地说明了这个问题

    • \(k_3\) 的样本标准差比 \(k_1\) 的大数倍
    • 并且几次重复实验表明,\(k_3\) 的数值不稳定性明显比 \(k_1\) 和 \(k_2\) 更严重
    • \(k_3\) 的样本均值与真实 KL 值之间的巨大差距并非估计量偏差,而是巨大的抽样误差,这是具有极大或无穷大方差的估计量的特征
      ·* 这表明需要数量不切实际的大样本量才能使估计可靠地收敛,使得 \(k_3\) 在此类场景中成为一个不可靠的选择

附录 J:Group Normalization Stability Issues(Group Norm 的稳定性讨论)

  • GRPO 执行每个 Prompt 的组归一化:
    • 对于一个具有 \(G\) 个 Response 和奖励 \(\mathbf{r} = \{r_{1},\ldots ,r_{G}\}\) 的 Prompt,其优势 (advantage) 为:
      $$A_{i} = \frac{r_{i} - \text{mean}_{\text{group} }(\mathbf{r})}{\text{std}_{\text{group} }(\mathbf{r})}. \tag {78}$$

Stability issue

  • 当组内方差非常小时 (例如,\(\mathbf{r} = [0.99999, 1.00001, 0.99999, 1.00001]\) ),归一化可能会急剧放大微小的数值差异
  • 对于上面的例子,得到的优势值大约为 \([- 0.8660, 0.8660, - 0.8660, 0.8660]\) (使用无偏样本标准差),这会将近乎恒定的奖励转变为大幅度的更新,从而破坏优化过程的稳定性

Proposed solution

  • 裁剪标准差以防止病态放大:
    $$
    \begin{align}
    A_{i} &= \frac{r_{i} - \text{mean}_{\text{group} }(\mathbf{r})}{\text{clip_std}_{\text{group} }(\mathbf{r})} \\
    \text{clip_std}_{\text{group} }(\mathbf{r}) &= \text{max}\big(\text{min}(\text{std}_{\text{group} }(\mathbf{r}),\text{std}_{\text{max} }),\text{std}_{\text{min} }\big) \tag {79}
    \end{align}
    $$
    • 其中,\(\text{std}_{\text{min} } > 0\) 是一个小的下限,用于防止当方差崩溃时归一化过程产生爆炸性数值
    • \(\text{std}_{\text{max} }\) 则用于避免当方差异常大时归一化不足
    • 在实践中,将 \(\text{std}_{\text{min} }\) 设置为一个相对于奖励尺度较小的常数 (例如,\(10^{- 1}\) ) 可能是有效的

Why this matters beyond binary rewards

  • RLVR 中的二元 0/1 奖励有时可以缓解极端情况
    • 但更通用的回归奖励模型(例如使用 Bradley-Terry (BT) 损失训练的模型)通常会产生连续的分数,这些分数在简单或非常难的 Prompt 上可能会高度集中 (例如,接近 0 或 1)
  • 在这种情况下,即使奖励被限制在 \([0,1]\) 区间内,组内标准差也可能任意小,并且除非使用方差下限 (或裁剪),否则组归一化将会过度放大微小的差异
  • 因此,标准差裁剪不仅对于数值稳定性很重要,而且对于避免在奖励预测饱和时过度放大噪声也很重要

Remark

  • 对于限制在 \([0,1]\) 区间内的奖励分数,\(\operatorname {std}(\mathbf{r})< 1\) 总是成立,但在实践中它可能比 1 小几个数量级
    • 方差越小,组归一化的放大效应就越强
  • 裁剪 \(\operatorname {std}_{\text{group} }(\mathbf{r})\) 可以在方差适中时保持预期的尺度不变性 ,同时防止方差崩溃时出现不稳定性

附录 K:Large Scale Experiment

  • Figure 4 比较了 \(k_1\) as loss 与无 KL 正则化的情况

    • 训练动态几乎无法区分,这实证地证实了第 5 节的理论预测:由于\(k_1\) as loss的梯度独立于参考模型且其梯度期望为零均值,因此它作为 KL 正则化器是无效的
    • 在更大规模 7B 模型上的实证结果(图 4)进一步证实了作者对 \(k_1\) as loss 的理论分析
      • 如第 5 节所述,该 loss 项的梯度从根本上不适合正则化:
        • 它独立于参考策略 \(\pi_{\text{ref} }\) ,并且在 On-policy 采样下的期望恰好为零
      • 在实践中,这相当于注入一个缩放的得分函数
        $$\beta \cdot \nabla_{\color{red}{\theta}}\log \pi_{\color{red}{\theta}}$$
        • 它引入了零均值但可能高方差的噪声
        • 尽管预期的更新方向保持不变,但增加的梯度方差偶尔会在单个更新步骤中产生大的偏差
      • 这一现象清晰地反映在实验曲线中
        • 如 KL Loss 和 Logprob Diff 所示,在 \(k_1\) as loss 下的 Actor 模型不仅未能更接近参考模型,反而在后期阶段漂移得更远
        • 两种设置的轨迹最初是对齐的,但 \(k_1\) as loss 变体突然发散,表明出现了由方差引起的剧烈波动
      • 尽管最终的任务级性能(例如,奖励/准确率)大致相似,但实现这样的结果需要高得多的 KL 量级,这最终是低效的,并且没有提供有意义的正则化
        • 简而言之,在更大的模型规模上应用 \(k_1\) as loss 不仅无效,而且适得其反,因为它会破坏训练稳定性并削弱与参考模型的对齐
  • Figure 5 比较了 Principled \(k_2\) as loss 与其一阶近似 \(k_3\) as loss

    • 两种变体都有效地约束了策略
      • \(k_2\) as loss 展示了更优的正则化特性,保持了与参考策略更紧密的耦合,并产生了更稳定的优化路径,表现为更低的奖励方差
    • 在 7B 规模模型上的实证结果(图 5)突出了 \(k_2\) as loss 和 \(k_3\) as loss 的对比行为
      • 在相同的系数下, \(k_2\) as loss 施加了明显更强的约束:
        • \(k_2\) as loss 的 KL Loss 和 Logprob Diff 曲线都持续低于 \(k_3\) as loss 的曲线,表明 Actor 更接近参考模型
        • \(k_3\) as loss 在训练中往往发散得更厉害 ,这可以从更高的 KL 量级和更大的对数概率差异中看出
          • 会不会是可通过调整学习率修改回来的?
      • 这种发散进一步反映在 Response 长度上,\(k_3\) 产生更短且更多变的输出,表明对生成的控制较弱
        • 尽管 \(k_3\) as loss 在训练早期和中期有时会获得更高的奖励和准确率,但这种优势是以不稳定性为代价的
          • 问题:看着图 5 第一行的三个图,都是 \(k_3\) 的分数更高啊!
        • 在 \(k_3\) as loss 下,奖励方差和策略损失显著更高,表明其较弱的约束允许优化过程中出现更大的波动
      • \(k_2\) as loss 提供了更稳定的训练轨迹,保持了较低的方差,并使策略与参考保持紧密对齐
      • 这些结果表明,在更大的模型规模上, \(k_2\) as loss 是实现一致且受控正则化的更有效选择,而 \(k_3\) as loss 尽管有暂时的性能提升,但冒着更大的漂移和不稳定性风险

附录 L:Downstream Benchmark Performance

  • 在数学和通用推理基准上的主要结果总结在表 2 中
  • 在 7B 和 1.5B 模型上出现了一些一致的模式
    • First,使用 \(k_1\) as loss 的设置并未提供显著的正则化益处
      • 这与作者的理论分析一致,该分析表明其期望梯度为零,因此未能约束 Actor 相对于参考模型
      • 实验上,在数学和通用领域任务中,其性能仍然非常接近 “无 KL 的 RL” 基线,这表明 \(k_1\) as loss 作为正则化器是无效的
    • Second,在相同系数下, \(k_2\) as loss 和 \(k_3\) as loss 的行为存在显著差异
      • \(k_2\) as loss 对 Actor 施加了更严格的约束:
        • 模型保持更接近参考策略,但这种更紧密的耦合是以性能大幅下降为代价的,这在数学推理(例如,AIME (2024)、AMC (2024)、MATH-500 (2021))和通用推理基准(例如,ARC-c (2018)、GPQA (2024)、MMLU-Pro (2024))上都有所反映
      • \(k_3\) as loss 施加了较弱的约束,允许模型漂移更多,这在训练动态中也可以观察到(更高的 KL 和对数概率差异)
        • 尽管在最终基准分数上 , \(k_3\) as loss 看起来略好于 \(k_2\) as loss ,但其更具发散性的行为凸显了有效正则化的缺失和更大的不稳定性
          • 分数高了,是不是也说明应该被使用呢?
    • 综合来看,这些结果证实了作者的理论预期:
      • \(k_1\) as loss不起约束作用
      • \(k_2\) as loss 施加了更强且僵化的正则化,抑制了整体性能
      • \(k_3\) as loss ,尽管限制性较弱,但允许过度发散,可能导致训练不稳定
  • Table 2: 基于 Qwen2.5-Math-7B 和 Qwen2.5-Math-1.5B 在数学和通用推理基准上的主要实验结果

附录 M:Statement on the Use of Large Language Models

  • 作者仅将 LLMs 用于语言润色和编辑
  • 所有相关工作检索、算法设计和理论推导均由作者完成

附录 N:Impact

  • 本文作者提出的 \(k_{2}\) as loss 公式已被合并到 OpenRLHF 中,并已被 Reinforce++ 采用和引用
  • Prorl 也将其与参考模型的周期性重置相结合
  • 通过提供一种梯度正确、适用于 Off-policy 的 KL 正则化处理方法,作者的工作澄清了长期存在的歧义,并为构建稳定、有效且可重现的 RLHF 系统提供了实用指导

附录:补充 \(k_3\) as loss 梯度推导

  • 目标:推导公式 (58) 到公式 (59) 的过程
  • 公式 (58) 是 \(k_3\) as loss 的目标函数:
    $$
    \mathcal{J}_{k_3\text{ as loss} }(\theta) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)} -1 - \log \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)}\right] \tag {58}
    $$
  • 为了简化符号,固定一个 prompt \(x\) 和一个从策略 \(\pi_{\theta}(\cdot|x)\) 中采样的输出 \(y\),定义概率比:
    $$
    \delta = \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)}.
    $$
  • 对于这个特定的样本 \((x, y)\),公式 (58) 中括号内的项(记作 \(L\))可以写作:
    $$
    L = \delta - 1 - \log \delta
    $$
  • 我们的目标是计算梯度 \(\nabla_{\theta} L\)。这里的关键是,\(\delta\) 依赖于 \(\pi_{\theta}(y|x)\),因此也依赖于 \(\theta\)

第一步:将 \(L\) 表达为 \(\log \pi_{\theta}(y|x)\) 的函数

  • 为了更方便地求导,将 \(\delta\) 和 \(\log \delta\) 用 \(\log \pi_{\theta}\) 表示
  • 注意,\(\pi_{\text{ref} }(y|x)\) 是与 \(\theta\) 无关的常数
    $$
    \begin{align}
    \delta = \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)} = \exp\left(\log \pi_{\text{ref} }(y|x) - \log \pi_{\theta}(y|x)\right) \\
    \log \delta = \log \pi_{\text{ref} }(y|x) - \log \pi_{\theta}(y|x)
    \end{align}
    $$
  • 因此,\(L\) 可以重写为:
    $$
    L = \exp\left(\log \pi_{\text{ref} }(y|x) - \log \pi_{\theta}(y|x)\right) - 1 - \left(\log \pi_{\text{ref} }(y|x) - \log \pi_{\theta}(y|x)\right)
    $$

第二步:对 \(L\) 求梯度

  • 现在对 \(\theta\) 求导
  • 令 \(z = \log \pi_{\theta}(y|x)\),则 \(L\) 是 \(z\) 的函数,根据链式法则:
    $$
    \nabla_{\theta} L = \frac{dL}{dz} \cdot \nabla_{\theta} \log \pi_{\theta}(y|x)
    $$
  • 计算 \(\frac{dL}{dz}\):
    $$
    \frac{dL}{dz} = \frac{d}{dz} \left[ \exp\left(\log \pi_{\text{ref} } - z\right) - 1 - (\log \pi_{\text{ref} } - z) \right]
    $$
  • 分别对各项求导:
    • 对第一项 \(\exp(\log \pi_{\text{ref} } - z)\) 求导:
      $$
      \frac{d}{dz} \exp(\log \pi_{\text{ref} } - z) = \exp(\log \pi_{\text{ref} } - z) \cdot (-1) = -\exp(\log \pi_{\text{ref} } - z)
      $$
      • 注意
        $$ \exp(\log \pi_{\text{ref} } - z) = \frac{\pi_{\text{ref} } }{\pi_{\theta} } = \delta$$
      • 所以这一项的导数是 \(-\delta\)
    • 对第二项常数 \(-1\) 求导为 \(0\)
    • 对第三项 \(-(\log \pi_{\text{ref} } - z) = -\log \pi_{\text{ref} } + z\) 求导为 \(+1\)
  • 因此:
    $$
    \frac{dL}{dz} = -\delta + 1 = 1 - \delta.
    $$

第三步:得到梯度表达式

  • 将 \(\frac{dL}{dz}\) 代回链式法则中,得到单个样本的梯度贡献:
    $$
    \nabla_{\theta} L = (1 - \delta) \cdot \nabla_{\theta} \log \pi_{\theta}(y|x)
    $$
  • 根据公式 (58),整个目标函数的梯度是此梯度的期望
  • 在计算这个期望时,样本 \(y\) 是从 \(\pi_{\theta}(\cdot|x)\) 中采样的,并且按照惯例,系数 \((1-\delta)\) 在梯度计算中被视为 detached(即不计算其对 \(\theta\) 的依赖,只作为一个常数系数)
    • 最终得到:
      $$
      \nabla_{\theta}\mathcal{J}_{k_{3}\text{ as loss} }(\theta) = \mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\left[\left(1 - \frac{\pi_{\text{ref} }(y|x)}{\pi_{\theta}(y|x)}\right)\nabla_{\theta}\log \pi_{\theta}(y|x)\right] \tag {59}
      $$
  • 证毕
1…345…65
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

645 posts
53 tags
GitHub E-Mail
© 2026 Joe Zhou
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4