GRPO的问题:不准确的优势归因 要理解Chunk-GRPO做了什么,得先搞清楚现有方法的问题出在哪。 步骤级GRPO的数学形式 在流匹配的标准GRPO中,策略(T2I模型,记为θ)通过最大化目标J(θ)来更新。 Chunk-GRPO在这方面表现不错,研究团队把它和基础FLUX.1模型以及标准步骤级Dance-GRPO做了对比。 使用清晰的标签,如"基础模型(FLUX.1)"、"标准RL(Dance-GRPO)"和"Chunk-GRPO"。突出显示Chunk-GRPO的获胜分数。 FLUX、DanceGRPO、不带时间动态的Chunk-GRPO、带时间动态的Chunk-GRPO和带加权采样的Chunk-GRPO之间的额外可视化比较。 论文也展示了失败案例。
围绕“解决训练不稳定性、提升样本效率”这一核心目标,从GRPO到GSPO再到SAPO的算法进行了持续探索。 】 1,GRPO训练瓶颈 • 异策略训练的必要性 在RL训练中为了最大化硬件利用率,提升样本效率,需要采用较大的批次规模。 以上揭示了GRPO设计的核心症结:优化目标的单位与奖励的单位不匹配。由于奖励是基于整个序列授予的,在token级别进行异策略校正显然存在根本性缺陷。 2,GSPO 目标函数序列级优化 2.1,对齐奖励与序列级设计 与GRPO的token级设计不同,GSPO的核心思路是:让优化单位匹配奖励单位。 总结: 从GRPO到GSPO再到SAPO的演进,本质上是对“异策略学习中稳定性与样本效率平衡”这一核心问题的逐步优化: 优化粒度升级: GRPO(token级)→ GSPO(序列级)→ SAPO(序列级
本文深入探讨了 DeepSeek 提出的组相对策略优化(GRPO)算法。 (三)GRPO 的诞生 为应对上述问题,DeepSeek 提出了 GRPO 算法。 六、GRPO 的局限性与挑战 (一)奖励函数设计 尽管 GRPO 在算法机制上取得了诸多突破,但奖励函数的设计仍然是一个关键挑战。 七、GRPO 的实际应用场景 (一)数学推理 DeepSeek-R1 在数学推理任务上取得了令人瞩目的成果,充分展现了 GRPO 算法的强大威力。 (二)代码生成 在代码生成领域,GRPO 同样发挥着重要作用。通过 GRPO 的训练,模型能够生成更高质量、更符合规范和需求的代码。
GRPO 是促使 DeepSeek-R1 成功的基础技术之一。最近一两年,GRPO 及其变体因其高效性和简洁性,已成为业内广泛采用的强化学习算法。 结果显示,在所有设置中,GDPO 都稳定地优于 GRPO,验证了其在多奖励强化学习优化中的有效性和良好泛化能力。 GRPO 有什么问题? 作者首先重新审视了这种将 GRPO 直接应用于多奖励强化学习优化的常见做法,并发现了一个此前被忽视的问题:GRPO 本质上会压缩奖励信号,导致优势估计中的信息损失。 近期,Dr.GRPO 和 DeepSeek-v3.2 采用了 GRPO 的一个变体,移除了标准差归一化项,使得优势直接等于原始奖励减去均值。 作者通过在两种实验设置下比较 GDPO、GRPO 和「无标准差 GRPO」产生的不同优势组数量,进一步量化了 GDPO 的有效性,如图 3 所示。
论文方案 GRPO的解决方案就是直接去掉了Critic网络。GRPO的核心创新思路很简单:直接剔除Critic,启用群体相对优势。PPO中Critic存在主要就是为了计算优势函数,而什么是优势呢? 但是,论文指出在长链推理任务中,使用 GRPO 会遭遇一些问题,比如样本级别的 loss 计算方式、KL 散度限制(在推理时可能不必要)。 论文指出GRPO这种方法训练不稳定问题的根本在于:GRPO 使用 token-level的重要性比率(注意不是token-level的loss和DAPO不要搞混了),但是reward的单位通常是整条 sequence 论文指出 GRPO 在这类模型上极不稳定。 相比 GRPO 的 token-level 可能引入高方差,GSPO 更稳定,尤其在训练大模型例如 MoE 时减少崩塌风险。
本文围绕GRPO 主要介绍: 1)经典PPO中四个模型作用以及存在的问题。 2)GRPO的主要改进点,公式推导和训练流程。 3)GRPO中优势函数的两种计算方式,结果监督和过程监督。 2,GRPO 分组相对策略优化 2.1,GRPO核心创新和训练流程 GRPO 两大核心创新,“分组采样“ 和 “相对奖励基线”: • 用 “分组相对奖励” 替代价值函数:对于每个问题,从旧策略中采样一组输出 2.2,GRPO 公式推导 GRPO 的策略优化目标函数继承了 PPO 的剪辑机制,避免策略更新幅度过大导致的训练不稳定。 GRPO 直接将 KL 散度作为损失项的一部分,并采用无偏估计器计算 KL 散度,避免了对优势值计算的干扰。公式如下: GRPO 优势函数 的计算,无需价值函数,仅依赖分组内的相对奖励。 GRPO 的优势函数计算逻辑清晰,能有效引导策略更新。
-8a75007491ba GRPO动机 什么是 GRPO? GRPO 的本质思路:通过在同一个问题上生成多条回答,把它们彼此之间做“相对比较”,来代替传统 PPO 中的“价值模型” 为什么选择 GRPO? GRPO 如何应对这些挑战: 无价值模型优化:GRPO 通过比较组内的响应消除了对评论模型的需求,从而显著减少了计算开销。 GRPO实现 来源:GRPO Trainer,https://huggingface.co/docs/trl/main/en/grpo_trainer 为了方便后人使用GRPO进行开发,DeepSeek 图片来源:https://huggingface.co/docs/trl/main/en/grpo_trainer 为什么 GRPO 有效 无需批评:GRPO 依靠群体比较避免了对单独评估者的需求,
在介绍 GFPO 之前,有必要先看看 DeepSeek 提出的组相对策略优化(GRPO)。 写成公式的话,如果令 θ 表示模型参数,q 表示问题,o 表示从旧策略 π_θ_old 采样的响应,则 GRPO 目标可以写成: 需要注意的是,尽管这里展示了标准的 GRPO 损失归一化公式,但包括 verl GRPO 的一个关键限制在于它依赖于单一的标量奖励信号,这使得它难以联合优化多个期望得到的响应属性,例如简洁性和准确度。结果就是,GRPO 确实能提高准确度,但也会让响应长度大幅增加。 因此,GFPO 的主要干预措施是在优势估计层面,使其可与任何 GRPO 变体兼容,例如 DAPO、Dr. GRPO 或带有 Dual-Clip PPO 损失的 GRPO。 发现 9:在最长的响应四分位数中,GFPO 的准确度优于 GRPO。
,比如《DeepSeek 用的 GRPO 占用大量内存? 既然 GRPO 如此有效,那么,你知道如何从头开始实现 GRPO 吗? 接下来我们就来看看这份 GRPO 从头实现教程吧。 Part 6:从头开始实现 DataParallel GRPO 这一节,我们将从头实现 GRPO 算法的所有构建模块。首先,这里假设运行代码的机器至少有 2 台 GPU。 强化学习微调:为从头开始实现 GRPO 的训练函数 train_with_grpo 配置适当的训练参数和奖励函数。然后,在剩余的训练数据上执行强化学习训练。
最近,DeepSeek-R1的发布为国产大模型争光了(太强了),不过 GRPO 算法源自 DeepSeekMath 7B 模型,该模型在 MATH 基准测试中取得了优异成绩,论文发表于2024年2月份: 其次,我们引入了群体相对策略优化(GRPO),这是一种近端策略优化(PPO)的变体,旨在增强数学推理能力,同时优化PPO的内存使用。 对比数据 1、什么是GRPO GRPO 是一种在线学习算法,核心思想是通过组内相对奖励来估计基线,从而避免使用额外的价值函数模型。 通过在训练期间使用受训模型自身生成的数据来迭代改进,GRPO 旨在最大化生成补全的优势,同时确保模型保持接近参考策略,下图是论文中的算法流程图: GRPO GRPO 是 PPO (Proximal Policy model GRPO 奖励计算,改成了一个 q 生成多个 r,然后 reward 打分 GRPO算法流程: 采样一组输出并计算每个输出的奖励 对组内奖励进行归一化处理 使用归一化后的奖励计算优势函数
它对数据的质量要求极高,偏好数据的优劣直接决定了模型对齐的效果 GRPO : Group Relative Policy Optimization,群组相对策略优化 GRPO是DeepSeek团队提出的一种更高效的强化学习算法 GRPO的创新之处在于,它直接抛弃了Critic模型。 训练方式:对于同一个问题,GRPO让当前策略模型生成多个不同的回答,构成一个“小组”。 GRPO:在群体比较中自我提升 GRPO,即群组相对策略优化,是一种更新、更高效的强化学习算法。DeepSeek-R1模型就是应用此技术的代表。 核心含义:对于同一个问题,GRPO让当前模型生成多个不同的回答,形成一个“小组”。 然后,再使用 DPO 或 GRPO 进行第二步的对齐训练,让它的回答更符合人类偏好。
为此,Deepseek 团队提出了Group Relative Policy Optimization (GRPO),使用多个采样输出的平均奖励。 除此之外,在目标损失中,GRPO还修改了KL散度的计算,通过只计算一个采样到的 token就能估计 KL。传统的KL散度计算需要通过计算所有的token,增加优势计算复杂度。 GRPO 代码实现policy_model:当前要更新的 LLM(Decoder-only),带 forward 和 generate_with_logprobsref_model:冻结的 SFT 模型 # [B, L] seq_logprob = token_logprobs.sum(dim=-1) # [B] return seq_logprob2️⃣ 单步 GRPO 单步 GRPO 更新 loss, info = grpo_step( policy_model=policy_model, old_policy_model
RL 调整中不断增加的输出长度可能是由于 GRPO 中的 BIAS 造成的? GRPO(GRPO Done Right)(图 1 中显示)。 为了理解 R1-Zero 上的训练方式,研究人员仔细观察了两个核心部分:基础模型和强化学习,随后重点介绍了其发现。 为了优化 GRPO 算法并解决其存在的偏差问题,研究针对 GRPO 两处修改:一是删除了长度归一化项 ∣oi∣,二是移除了标准差(std)标准化项。 GRPO,并通过实验验证了其在实际应用中的有效性。 如图 5 所展示的多项实验对比结果,证明 Dr. GRPO 能够有效缓解优化偏差并显著减少了错误回答的长度。 作者还使用 Llama 基础模型重新审视了 GRPO 的优化偏差。图 7 的右图比较了使用 GRPO 和 Dr.
本文为那些 GPU 资源有限时使用 GRPO 训练的开发者提供了宝贵的指导。 自 DeepSeek-R1 发布以来,群组相对策略优化(GRPO)因其有效性和易于训练而成为大型语言模型强化学习的热门话题。 原文链接:https://www.oxen.ai/blog/grpo-vram-requirements-for-the-gpu-poor 作者表示,他发现 trl 库中已经有一个易于使用的 GRPO 为什么 GRPO 对内存需求较高 这要从 GRPO 的原理说起,这是它的流程图。 GRPO 对内存需求较高的原因在于,其内部涉及多个模型,并且在训练数据中每个查询会产生多个输出。 batch_size=1,由于 GRPO 为每个查询生成多个响应,batch size 会迅速失控。
)的约 2-3 倍,而 token 效率是 GRPO 的 1.5 倍、是基础模型的 5 倍。 GRPO 是 DeepSeek-R1 的关键强化学习算法。 对于第二种设置,研究者对 Llama 3.1 进行微调以实现回溯,结果表明,MRT 相较于 STaR 和 GRPO 均实现了 1.6-1.7 倍的 token 效率提升。 然而,与基于结果奖励的 RL 方法(如 GRPO)相比,使用 MRT 的相对性能提升约为 2-3 倍。 图 8(右)显示,与结果奖励 GRPO 相比,MRT(RL)通过减少 1.6 倍的 token 来提升线性化效率。 © THE END 转载请联系本公众号获得授权
域外泛化:DPO 与 GRPO 各擅胜场 DPO 称雄域内: 实验结果显示,离策略 (off-policy) 的 DPO 方法在域内任务上表现优于 GRPO。 GRPO 泛化更强: 与之相反,在策略 (on-policy) 的 GRPO 在域外泛化能力上表现更出色。 在 GenEval 数据集上,GRPO 始终展现出比 DPO 更好的泛化性能;在使用 HPS 奖励模型时,GRPO 的峰值提升甚至比 DPO 高出 2.42%。 2. 在 DPO 与 GRPO 的对比中,研究者确保了两者在计算成本上的可比性。例如,DPO 中每个 prompt 生成的图像数量与 GRPO 中的组大小对齐,并使用相同的奖励模型。 在扩展策略的探索上,研究团队针对 GRPO 和 DPO 的特性提出了不同的优化路径。
,还分享了如何用 GRPO 训练推理模型的技巧。 本文涵盖了你需要了解的关于 GRPO、强化学习 (RL) 和奖励函数的所有内容 —— 从初学者到高级,还有基于 Unsloth 使用 GRPO 的基础知识。 /tutorial-train-your-own-reasoning-model-with-grpo GRPO 是如何训练模型的? 使用 GRPO 训练的次数越多越好。GRPO 最大的优点是你甚至不需要那么多数据。你只需要一个优秀的奖励函数 / 验证器,并且训练时间越长,你的模型就会越好。 常规微调(不使用 GRPO)仅最大化下一词的预测概率,而不会针对奖励进行优化。GRPO 针对奖励函数进行优化,而不仅仅是预测下一词。 你可以在多个 epoch 中重复使用数据。
看这些名字都绕晕了,GRPO 到底有什么魔力,能让各大研究团队绕着它团团转;GRPO 又有什么缺陷,各大团队都要在它身上动刀? 于是,我们得到了 GRPO 的损失函数: 对于 PPO 到 GRPO,知乎网友将两者在多个维度上进行了比较,如图表所示。 知乎网友@杞鋂 分享PPO与GRPO的对比 从 GRPO 开枝散叶 GRPO 在出现后迅速成为一个后训练范式的重要节点,DeepSeek 的模型成功充分证明了 GRPO 范式的有效性和优越性。 也因此,后续的改进工作大多都是在 GRPO 的方法基础上进行。 那么 GRPO 到底有啥问题,各个新工作都要在它身上动刀呢? GRPO 或带有 Dual-Clip PPO 损失的 GRPO。
目前,实现更长的上下文是GRPO面临的最大挑战之一。 与其他GRPO LoRA/QLoRA实现相比,即使是基于Flash Attention 2(FA2)的实现,Unsloth新推出的高效GRPO算法上下文长度增加了10倍,同时使用的VRAM只要10%。 Unsloth和基于Flash Attention 2(FA2)的标准实现内存比较 在典型的GRPO标准实现中,需要创建两个大小为(8,20K)的logits来计算GRPO损失。 在所有实现中,还利用了logsumexp技巧: Unsloth高效GRPO算法 但没想到华人工程师Horace He的线性交叉熵实现,带给unsloth灵感并成功应用于GRPO! 也不再需要调用函数来给GRPO打补丁了!
E-GRPO研究背景 主流GRPO-based方法在流模型训练中,会对所有去噪时间步进行均匀优化,但清华大学团队通过实验发现,不同去噪步骤的探索价值存在显著差异: 高熵步骤具有更大的探索空间,能够生成多样性丰富 熵对采样步骤的影响 E-GRPO框架通过熵驱动的步骤合并策略与多步分组归一化优势估计两大核心创新。 1. E-GRPO采样策略 性能亮点 在HPD数据集上,以FLUX.1-dev为骨干模型,在单奖励和多奖励两种设置下,对E-GRPO进行了全面评估,结果显示其性能超越现有主流方法。 E-GRPO数值结果测评 单奖励设置下,E-GRPO的HPS指标达到0.391,相比DanceGRPO提升10.8%,ImageScore指标达到1.324,稳居同类方法第一;多奖励设置下(有效避免奖励作弊 可视化结果 在定性对比中,E-GRPO生成的内容更精准贴合文本提示,兼具语义一致性与细节丰富度: 对于「装扮成水手的木瓜」提示,E-GRPO成功将木瓜结构与人形服饰自然融合,而基线方法或生成「手持木瓜的人