微信大模型终面:手撕一下 GRPO?


微信大模型终面:手撕一下 GRPO?

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

微信大模型终面:手撕一下GRPO?
是时候准备实习和面试了。
不同以往的是,当前职场已不再是那个双向奔赴时代了。求职者在变多,HC在变少,岗位要求还更高了。
最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑,分享技术面试中的那些弯弯绕绕。
总结链接如下:
《大模型算法工程师经典百问典》(2025版)正式发布!
《算法工程师直通大厂面经汇总》(2025版)正式发布!
喜欢本文记得收藏、关注、点赞。更多实战和面试交流,文末加入我们星球
本文主要是记录强化学习GRPO算法学习过程中的记录,首先介绍GRPO的公式相关的原理和相关的示例代码,其次我将结合Huggingface开源的Open-R1项目,通过代码实践来进一步理解GRPO的实现细节,逐步记录代码的细节。
首先从GRPO的算法原理和模型训练的代码开始讲解。
01
GRPO方法通俗案例
目标:假设你正在教一组学生解答一个数学题目,没有最标准的答案,只是在一个群组中选择好的答案,并给出相关的奖励得分。做的不好的学生给予负面的得分,通过这种手段来帮助他们自己不停的学习。
问题:假如问题是,1+2=?
生成一组回答:
第一组:3
第二组:结果是1
第三组:结果是3
第四组:答案是2
全组内部计算奖励
奖励的意思:奖励通过量化模型回答的质量来指导其学习,从输出的格式和最后的答案多个维度和方向进行打分,格式正确,结果也正确的得分最高。
基于规则的奖励系统(Reward-function)
包括准确性和格式两个方面的奖励。准确性奖励用于判断模型的回答是否正确,例如在数学问题中,模型需要以特定格式(如在方框内)给出最终答案
格式奖励则要求模型将思考过程放在特定的标签(如和)之间
语言一致性的奖励(生成的思考和答案过程中不要出现多种语言)
上面四组答案的奖励得分如下:
第一组:r1=2. 1(结果正确,格式不完整)
第二组:r1=1. 2(结果不正确,格式不完整)
第一组:r1=3. 0(结果正确,格式也正确)
第一组:r1=0. 9(结果不正确,格式不正确)
计算Advantage结果(一个组内开始计算)
advantage的计算公式如下:
Advantage函数计算公式
mean(r)是平均值,std(r)是标准差,通过上面的例子得到,采样得到4条输出,奖励分别是r1=2. 1,r2=1. 2,r3=3. 0,r4=0. 9。
计算结果如下:
advantage的计算结果
表现优于群体平均水平的回答会获得正分,而表现较差的回答则会获得负分。
上图中的r1和r3获得的是正优势,所以鼓励他们,对于r2和r4获得的是负优势,所以是抑制他们。
这种方法在组内引入了竞争机制,推动模型生成更好的回答。
通过标准化来计算奖励,优势函数的作用是某一-个输出的token的数值相对于平均输出的优劣势。
如果某一个输出的奖励高于平均的mean数值,则结果是正的,反之低于mean,结果是负的,这样策略模型会更倾向于生成那些具有较高奖励的输出。
综上所述,一个GRPO算法的的大致流程如下:
用户输入query,模型推理生成一组回答
根据rewardfunction的定义(例如准确性、格式)为每个回答计算奖励得分
在整个组内进行统一对比,计算它们的相对优势Advantage(上面的公式计算)
更新策略,倾向于具有更高优势的回答
模型更新的同时进行KL散度的正则,防止模型学习偏了
以上就是GRPO算法的一个简要例子过程,算法的具体细节在下面的公式原理解析和代码分析环节重点讲解。
02
GRPO公式原理解析
GRPO的核心思想是:对于每个问题,从旧策略中采样多个输出,然后根据这些输出的奖励来优化新策略。
GRPO的计算公式如下:
GRPO计算公式
上面结果中的t是对应token-level优势,即一个句子中,每个token对应的优势是一样的。
新策略模型预测problog数值
公式1
公式2
重要性采样解释:重要性采样是一种用于估计期望值的蒙特卡罗方法,尤其在无法直接从目标分布采样或采样成本较高时非常有用。
其核心思想是通过一个简便的分布进行采样,并使用重要性权重来调整这些样本,使得它们能够准确反映目标分布的性质。
本篇文章中就是利用用旧分布(旧策略)的样本来估计新分布(新策略)期望值的方法。
具体来说,假设我们要估计某个函数f(x)在目标概率分布p(x)下的期望值:
如果直接从p(x)中采样是困难的,我们可以选择一个容易采样的分布q(x),并要求其对p(x)的支持集是正的(即q(x)>0的区域也是p(x)>0的区域)。
然后可以重写期望值为:
通过从q(x)中采样得到的样本x1,x2,…,xn,期望值可以通过样本均值估计为:
其中权重w(x)为:
(1)重要性采样的核心公式
综上所述,重要性采样通常被用来估计一个分布的期望值。
从数学上来说,它的原理是通过不同分布的样本进行估计,然后乘上一个重要性权重(即两个分布概率的比值),这样可以无需从原分布中采样,用另一个简单分布的样本也能计算原分布的期望。
GRPO算法的最终的优化目标是:目的是让新策略在旧策略的样本上,尽可能多地保留高奖励的输出,就是最大化下面的公式,新旧策略的比值乘以Advantage的数值。
(2)clip的作用
如下图:
(3)KL散度正则化的作用
如下图:
03
GRPOTrainer的示例代码

测试的代码如下:

测试的结果如下:用户的问题是:1+2+3+2*4-1的结果的平方是多少。
作者:小岛上爱喝酒,已获作者授权发布
来源:https ://zhuanlan. zhihu.com/p/657693775
llms大厂面试题宝典(知识星球)来了,这是一个面向全体学生和机器学习/算法/大模型/科研人员的技术沟通和求职交流的平台。
在这里你可以了解最前沿AI技术资讯、Paper、大模型、多模态,算法竞赛、实战项目、获取AI算法的校招/社招准备攻略、面试题库、面试经验分享、Offer选择、内推机会、学习路线、求职答疑和海量学习资料等内容。
同时,你也可以与来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
llms大厂面试题宝典方向涉及搜广推、深度学习,机器学习,计算机视觉,知识图谱,自然语言处理,大数据,自动驾驶,强化学习,大模型、多模态、具身智能等多个方向。
我们会不定期开展知识星球现金立减优惠活动,加入星球前可以添加我微信:
yangyiya2002,咨询活动详情。iOS用户直接添加我微信进星球。


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录