浅入浅出 GRPO in DeepSeekMath

news2025/7/8 7:53:15

GRPO in DeepSeekMath

GRPO 通过在生成组内进行比较来直接评估模型生成的响应,以优化策略模型,而不是训练单独的价值模型,这种方法显著降低了计算成本。GRPO 可以应用于任何可以确定响应正确性的可验证任务。例如,在数学推理中,可以通过将响应与基本事实进行比较来轻松验证响应的正确性。

The GRPO Algorithm

Step 1: Group Sampling

第一步是为每个问题生成多个可能的答案。这会产生一组可以相互比较的多样化输出。

  • q q q : question
  • G G G : group size
  • π θ o l d \pi_{\theta_{old}} πθold : trained model(policy)
  • { o 1 , o 2 , o 3 , . . . , o G ; π θ o l d } \{o_1, o_2, o_3, ... , o_G;\pi_{\theta_{old}}\} {o1,o2,o3,...,oG;πθold} : group outputs
Step 2: Advantage Calculation

一旦我们有多个响应(output),我们就需要一种方法来确定哪些响应比其他响应更好,这就是优势计算。

  1. 首先为每个响应输出分配一个奖励分数,可以使用奖励模型也可以使用奖励函数。例如:为每一个正确的输出分配一个奖励分数 1,错误的输出分配一个奖励 0。

  2. 优势计算:

    A i = r i − mean ( { r 1 , r 2 , . . . , r G } ) std ( { r 1 , r 2 , . . . , r G } ) A_i = \frac{r_i - \text{mean}(\{r_1, r_2, ..., r_G\})}{\text{std}(\{r_1, r_2, ..., r_G\})} Ai=std({r1,r2,...,rG})rimean({r1,r2,...,rG})

Step 3: Policy Update

J G R P O ( θ ) = [ 1 G ∑ i = 1 G min ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) A i , clip ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) , 1 − ϵ , 1 + ϵ ) A i ) ] − β D K L ( π θ , π r e f ) J_{GRPO}(\theta) = \Big[\frac{1}{G}\sum_{i=1}^G \text{min}\Big(\frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} A_i,\text{clip}\big(\frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}, 1-\epsilon, 1+\epsilon\big)A_i\Big)\Big] - \beta D_{KL}(\pi_{\theta},\pi_{ref}) JGRPO(θ)=[G1i=1Gmin(πθold(oiq)πθ(oiq)Ai,clip(πθold(oiq)πθ(oiq),1ϵ,1+ϵ)Ai)]βDKL(πθ,πref)

  • π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) \frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} πθold(oiq)πθ(oiq) : Probability Ratio,比较了新模型的响应概率与旧模型的响应概率的差异程度,同时纳入了对改善预期结果的响应的偏好,这个比率使我们能够控制模型在每个步骤中的变化量。
  • clip ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) , 1 − ϵ , 1 + ϵ ) \text{clip}\big(\frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}, 1-\epsilon, 1+\epsilon\big) clip(πθold(oiq)πθ(oiq),1ϵ,1+ϵ) : Clip Function,将上述比率限制为[1−ε,1+ε][1−ε.1+ε]以避免剧烈的变化/更新,以及远离旧的模型。换句话说,它限制了概率比可以增加的程度,通过避免将新模型推得太远的更新来帮助保持稳定性。
  • β D K L ( π θ , π r e f ) = ∑ x ∈ X P ( x ) log P ( x ) Q ( x ) \beta D_{KL}(\pi_{\theta},\pi_{ref}) = \sum_{x\in X} P(x)\text{log}\frac{P(x)}{Q(x)} βDKL(πθ,πref)=xXP(x)logQ(x)P(x) : KL Divergence,KL 散度被最小化,以防止模型在优化过程中偏离其原始行为太远。这有助于在根据奖励信号提高性能和保持连贯性之间取得平衡。在这种情况下,最小化 KL 散度可以降低模型生成无意义文本的风险,或者在数学推理的情况下,产生极其错误答案的风险。
  • β \beta β : 控制 KL 散度约束的强度:
    • higher β \beta β : 模型更新限制更多,模型的输出仍然接近参考模型分布,难以探索更好的响应。
    • lower β \beta β : 更自由的更新,存在不稳定风险,生成无意义的输出,可能会出现reward-hacking行为。
    • Original β \beta β : 0.04(DeepSeekMath)

GRPO Example

问题: Q : Calculate 2 + 2 × 6 Q : \text{Calculate} 2 + 2 \times 6 Q:Calculate2+2×6 A = 14 A = 14 A=14

Step 1: Group Sampling

G = 8 G = 8 G=8 , O = { o 1 : 14 , o 2 : 13 , o 3 : 11 , o 4 : 14 , o 5 : 14 , o 6 : 15 , o 7 : 14 , o 8 : 10 } O = \{o_1:14, o_2:13, o_3:11, o_4:14, o_5:14, o_6:15, o_7:14, o_8:10\} O={o1:14,o2:13,o3:11,o4:14,o5:14,o6:15,o7:14,o8:10}

Step 2: Advantage Calculation

R = { r 1 = 1 , r 2 = 0 , r 3 = 0 , r 4 = 1 , r 5 = 1 , r 6 = 0 , r 7 = 1 , r 8 = 0 } R = \{r_1 = 1, r_2 = 0, r_3 = 0, r_4 = 1, r_5 = 1, r_6=0, r_7=1, r_8 =0 \} R={r1=1,r2=0,r3=0,r4=1,r5=1,r6=0,r7=1,r8=0}

StatisticValue
Group Average m e a n ( r i ) = 0.5 mean(r_i)=0.5 mean(ri)=0.5
Standard Deviation s t d ( r i ) = 0.53 std(r_i)=0.53 std(ri)=0.53
Advantage Value (Correct response) A i = 1 − 0.5 0.53 = 0.94 A_i=\frac{1−0.5}{0.53}=0.94 Ai=0.5310.5=0.94
Advantage Value (Wrong response) A i = 0 − 0.5 0.53 = − 0.94 A_i=\frac{0−0.5}{0.53}=−0.94 Ai=0.5300.5=0.94

Step 3: Policy Update

假设: π θ o l d = 0.5 \pi_{\theta_{old}} = 0.5 πθold=0.5 π θ = 0.7 \pi_\theta = 0.7 πθ=0.7 ϵ = 0.2 \epsilon = 0.2 ϵ=0.2

Probability Ratio = 0.7 0.5 = 1.4  after Clip  → 1.2 \text{Probability Ratio} = \frac{0.7}{0.5} = 1.4 \text{ after Clip } \to 1.2 Probability Ratio=0.50.7=1.4 after Clip 1.2

Summary

GRPO对于数学推理任务特别强大,因为在数学推理任务中,正确性可以得到客观验证。与需要单独奖励:模型的传统 RLHF 方法相比,GRPO 方法允许更高效的训练。

  1. GRPO 比较一组内的多个输出,以确定哪些输出比其他输出更好,而无需单独的价值模型。
  2. 优势计算对奖励进行标准化,以确定哪些响应高于或低于平均水平。
  3. 策略更新使用带有 KL 发散惩罚的裁剪目标函数来确保稳定学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2333116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AICon 2024年全球人工智能与大模型开发与应用大会(脱敏)PPT汇总(36份).zip

AICon 2024年全球人工智能与大模型开发与应用大会(脱敏)PPT汇总(36份).zip 1、面向开放域的大模型智能体.pdf 2、企业一站式 AI 智能体构建平台演进实践.pdf 3、PPIO 模型平台出海实战,跨地域业务扩展中的技术优化之道…

51电子表

设计要求: 基本任务: 用单片机和数码管设计可调式电子钟,采用24小时制计时方式,要求能够稳定准确计时,并能调整时间。发光二极管每秒亮灭一次。电子钟显示格式为:时、分、秒各两位,中间有分隔…

9-函数的定义及用法

一.前言 C 语⾔强调模块化编程,这⾥所说的模块就是函数,即把每⼀个独⽴的功能均抽象为⼀个函数来实现。从⼀定意义上讲,C 语⾔就是由⼀系列函数串组成的。 我们之前把所有代码都写在 main 函数中,这样虽然程序的功能正常实现&…

用HTML和CSS绘制佩奇:我不是佩奇

在这篇博客中,我将解析一个完全使用HTML和CSS绘制的佩奇(Pig)形象。这个项目展示了CSS的强大能力,仅用样式就能创造出复杂的图形,而不需要任何图片或JavaScript。 项目概述 这个名为"我不是佩奇"的项目是一个纯CSS绘制的卡通猪形象…

彩讯携Rich AICloud与一体机智算解决方案亮相中国移动云智算大会

2025年4月10日,2025中国移动云智算大会在苏州盛大开幕,本次大会以“由云向智 共绘算网新生态”为主题,与会嘉宾围绕算力展开重点探讨。 大会现场特设区域展出各参会单位的最新算力成果,作为中国移动重要合作伙伴,彩讯…

声学测温度原理解释

已知声速,就可以得到温度。 不同温度下的胜诉不同。 25度的声速大约346m/s 绝对温度-273度 不同温度下的声速。 FPGA 通过测距雷达测温度,固定测量距离,或者可以测出当前距离。已知距离,然后雷达发出声波到接收到回波的时间&a…

Cuto壁纸 2.6.9 | 解锁所有高清精选壁纸,无广告干扰

Cuto壁纸 App 提供丰富多样的壁纸选择,涵盖动物、风景、创意及游戏动漫等类型。支持分类查找与下载,用户可轻松将心仪壁纸设为手机背景,并享受软件内置的编辑功能调整尺寸。每天更新,确保用户总能找到新鲜、满意的壁纸。 大小&am…

C语言 AI 通义灵码 VSCode插件安装与功能详解

在 C 语言开发领域,一款高效的编码助手能够显著提升开发效率和代码质量。 通义灵码,作为阿里云技术团队打造的智能编码助手,凭借其强大的功能,正逐渐成为 C 语言开发者的新宠。 本文将深入探讨通义灵码在 C 语言开发中的应用&am…

二分查找5:852. 山脉数组的峰顶索引

链接:852. 山脉数组的峰顶索引 - 力扣(LeetCode) 题解: 事实证明,二分查找不局限于有序数组,非有序的数组也同样适用 二分查找主要思想在于二段性,即将数组分为两段。本体就可以将数组分为ar…

【模拟电路】稳压二极管/齐纳二极管

齐纳二极管也被称为稳压二极管,是一种特殊的二极管,其工作原理是利用PN结的反向击穿状态。在齐纳二极管中,当反向电压增加到一定程度,即达到齐纳二极管的击穿电压时,反向电流会急剧增加,但此时齐纳二极管的电压却基本保持不变。这种特性使得齐纳二极管可以作为稳压器或电…

项目周期过长,如何拆分里程碑

应对项目周期过长,合理拆分里程碑需要做到:明确项目整体目标与阶段目标、合理进行任务细分与分组、设定阶段性里程碑节点、实施有效的进度跟踪与反馈机制、灵活进行里程碑调整。其中,明确项目整体目标与阶段目标尤为关键。这能够帮助团队在长…

蓝桥杯刷题总结 + 应赛技巧

当各位小伙伴们看到这篇文章的时候想必蓝桥杯也快开赛了,那么本篇文章博主就来总结一下一些蓝桥杯的应赛技巧,那么依旧先来走个流程 那么接下来我们分成几个板块进行总结 首先是一些基本语法 编程语言的基本语法 首先是数组,在存数据的时候…

希哈表的学习

#include <stdio.h> #include <stdlib.h> #include "uthash.h"typedef struct {int id; // 学号&#xff0c;作为keychar name[20]; // 姓名&#xff0c;作为valueUT_hash_handle hh; // 必须有这个字段 } Student;Student* studen…

Qt之OpenGL使用Qt封装好的着色器和编译器

代码 #include "sunopengl.h"sunOpengl::sunOpengl(QWidget *parent) {}unsigned int VBO,VAO; float vertices[]{0.5f,0.5f,0.0f,0.5f,-0.5f,0.0f,-0.5f,-0.5f,0.0f,-0.5f,0.5f,0.0f };unsigned int indices[]{0,1,3,1,2,3, }; unsigned int EBO; sunOpengl::~sunO…

零基础开始学习鸿蒙开发-智能家居APP离线版介绍

目录 1.我的小屋 2.查找设备 3.个人主页 前言 好久不发博文了&#xff0c;最近都忙于面试&#xff0c;忙于找工作&#xff0c;这段时间终于找到工作了。我对鸿蒙开发的激情依然没有减退&#xff0c;前几天做了一个鸿蒙的APP&#xff0c;现在给大家分享一下&#xff01; 具体…

不再卡顿!如何根据使用需求挑选合适的电脑内存?

电脑运行内存多大合适&#xff1f;在选购或升级电脑时&#xff0c;除了关注处理器的速度、硬盘的容量之外&#xff0c;内存&#xff08;RAM&#xff09;的大小也是决定电脑性能的一个重要因素。但究竟电脑运行内存多大才合适呢&#xff1f;这篇文章将帮助你理解不同使用场景下适…

华为云 云化数据中心 CloudDC | 架构分析与应用场景

云化数据中心 CloudDC 云化数据中心 (CloudDC)是一种满足传统DC客户云化转型诉求的产品&#xff0c;支持将客户持有服务器设备部署至华为云机房&#xff0c;通过外溢华为云的基础设施管理、云化网络、裸机纳管、确定性运维等能力&#xff0c;帮助客户DC快速云化转型。 云化数据…

【射频仿真学习笔记】变压器参数的Mathematica计算以及ADS仿真建模

变压器模型理论分析 对于任意的无源电路或者等效电路&#xff0c;当画完原理图后&#xff0c;能否认为已经知道其中的两个节点&#xff1f;vin和vout之间的明确解析解 是否存在一个通用的算法&#xff0c;将这里的所有元素都变成了符号&#xff0c;使得这个算法本身就是一个函…

Linux系统Docker部署开源在线协作笔记Trilium Notes与远程访问详细教程

&#xfeff;今天和大家分享一款在 G 站获得了 26K的强大的开源在线协作笔记软件&#xff0c;Trilium Notes 的中文版如何在 Linux 环境使用 docker 本地部署&#xff0c;并结合 cpolar 内网穿透工具配置公网地址&#xff0c;轻松实现远程在线协作的详细教程。 Trilium Notes 是…

C++基础精讲-01

1C概述 1.1初识C 发展历程&#xff1a; C 由本贾尼・斯特劳斯特卢普在 20 世纪 70 年代开发&#xff0c;它在 C 语言的基础上增加了面向对象编程的特性&#xff0c;最初被称为 “C with Classes”&#xff0c;后来逐渐发展成为独立的 C 语言。 语言特点 &#xff08;1&#x…