当前位置: 首页 > news >正文

【大模型】强化学习算法总结

角色和术语定义

  • State:状态
  • Action:动作
  • Policy/actor model:策略模型,用于决策行动的主要模型
  • Critic/value model:价值模型,用于评判某个行动的价值大小
  • Reward model:奖励模型,用于给行动打分
  • Reference model:参考模型,是初始的策略模型,用于计算更新后策略模型和初始的偏差

一个简单的小故事

首先,举个最简单的例子:在考试中,学生是policy/actor model,努力获得高分;老师是reward model,通过阅卷得到成绩;根据成绩发放零花钱的家长是critic/value model;第一次模拟考试的学生是reference model。
为什么根据成绩发放零花钱的家长需要使用model呢?因为家长发放零花钱时,定的分数线不能是静态不变的,也需要动态考虑到孩子成绩的变化,比如第一次考试70分,那分数线可以定在80,第二次考了81分,分数线可以调整到85,并且对于不同的人,这个分数线也应该是差异化定制的。所以发放零花钱的家长是critic/value model,根据model去动态预测合适分数线,因此也是需要训练更新的。
【至此,已经介绍完了PPO的故事场景】
但是家长觉得这种动态调整太费时费力了,需要一直观察孩子的情况。所以提出在每次考试前,先给孩子做几套模拟试卷,取平均分作为分数线。正式考完试之后计算成绩和分数线的差距,决定零花钱怎么发。
【至此,已经介绍完了GRPO的优化】
有一次,家长突然发现孩子拿了100分,非常惊讶,调查后发现是作弊了。所以家长决定给孩子一些限制,要求孩子能力不能和初始时偏差太远!也就是要循序渐进地进步,而不是通过作弊的方式拿到100分。
【以上,是PPO和GRPO中引入reference model的KL散度的原因】

可以看到,PPO和GRPO的不同点在于怎么去计算这个动态的分数线(也称作优势),其他部分几乎一致。

对比监督学习和强化学习

在这里插入图片描述

强化学习分类

在这里插入图片描述

  • Value-based方法:相对早期的算法,比如DQN只能用于离散的动作空间,而输出需要是连续值时,DQN则无法实现。
  • Policy-based方法:现在比较流行的算法,比如PPO、GRPO,也是这篇博客的重点。这种方法直接学习一个策略函数(actor model),在给定的状态下,输出动作的概率分布π(a∣s)\pi(a|s)π(as)

在这里插入图片描述

基于Policy的强化学习

Actor-Critic架构

  • Actor(策略模型):在给定的状态sss下,输出动作的概率分布π(a∣s)\pi(a|s)π(as)
  • Critic(价值函数):在状态sss下,预测长期累积奖励的期望值V(s)V(s)V(s)。这里很容易疑惑,critic model那reward model的区别是什么?简单来说,reward model通常是环境或人工设计的单步即时奖励信号,无法衡量长期收益。所以critic model的目标就是学习这个V(s)V(s)V(s),以更好地指导actor优化方向。
  • Advantage(优势函数):在给定的状态sss下,动作aaa比平均水平好多少,计算方式是A(s,a)=Q(s,a)−V(s)A(s,a)= Q(s,a)-V(s)A(s,a)=Q(s,a)V(s)。优势函数可以给actor带来精确的反馈信号。

这里再举一个直观的例子:actor是运动员,只负责行动,不知道自己做的好不好;critic是教练员,通过当前局势状态,计算价值,用于评估当前这个局面怎么样,critic会去预测从当前状态出发,按照当前策略一直玩下去,最终大概能得多少分,所以critic不决定动作,只负责评价。那教练员如何给运动员提供精确的反馈呢?不能只说“好”或“坏”,而要说“比我预想的要好/坏多少”,这个值就是上面说的advantage。

下面介绍PPO和GRPO算法,首先强烈推荐大家先看博主给的关于强化学习的story:一个故事秒懂强化学习与GRPO!

PPO算法

PPO则是基于上面的actor-critic架构,其中critic/value model是一个可训练的模型,一般用actor+linear层或reward model进行初始化(所以通常参数规模和actor一致)。
为了避免actor的更新过程不稳定(更新程度太大),PPO引入了 clipping机制:
在这里插入图片描述
一般来说,ϵ=0.2\epsilon=0.2ϵ=0.2
其中rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta)=\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}rt(θ)=πθold(atst)πθ(atst),用于衡量新旧策略选择动作ata_tat的概率比,比如rt(θ)>1r_t(\theta)>1rt(θ)>1,说明新策略更倾向于选择ata_tat
rt(θ)r_t(\theta)rt(θ)是其实是重要性采样,目标是复用旧策略收集的数据,通过新旧策略的概率比修正旧数据的权重,以提高效率。
在PPO中,advantage是由GAE算法得到的【TODO:涉及到时序差分算法】,需要输入critic/value model的输出vvv以及reward rrr。注意这里的reward中包含了KL散度项,目的是保证actor和reference model不要偏离太远:

在这里插入图片描述

PPO总体优化目标如下(最大化):
在这里插入图片描述

GRPO算法

GRPO相比于PPO,去掉了critic/value model,并且通常reward model可以是自定义的规则(比如DeepSeek-R1-Zero中直接判断数学题答案对错),因此也不需要用单独的模型了。这对于强化学习训练来说,省下了可观的显存。

在这里插入图片描述

GRPO的核心是引入了一个 “组相对策略” 的概念,对于每一个输入的prompt,会复制多份,并且分别采样生成多个completion,得到reward,把它们看作一组。在组内,将每个输出句子的normalized reward当作每个句子(所有token)的advantage。

在这里插入图片描述

在这里插入图片描述

GRPO总体优化目标如下(最大化):

在这里插入图片描述

在这里插入图片描述

不同于PPO,GRPO中的KL散度项不是在reward的计算中,而是直接写在优化目标中用于actor的更新。

PPO与GRPO结构图

在这里插入图片描述

参考资料

  • 无需RL基础理解 PPO 和 GRPO
  • https://github.com/yogyan6/cartpole-DQN
  • PPO基础介绍
  • 【大白话03】一文理清强化学习RL基本原理 | 原理图解+公式推导
  • 【大白话04】一文理清强化学习PPO和GRPO算法流程 | 原理图解
  • PPO已经有了reward model 为何还要有critic model?
  • 从原理到代码,带你掌握DeepSeek GRPO!
http://www.lryc.cn/news/617343.html

相关文章:

  • 用户管理系统后台管理界面
  • Python面试题及详细答案150道(41-55) -- 面向对象编程篇
  • VBA即用型代码手册:计算选择的单词数Count Words in Selection
  • 5种无需USB线将照片从手机传输到笔记本电脑的方法
  • vue+flask基于规则的求职推荐系统
  • Spring Boot启动事件详解:类型、监听与实战应用
  • 腾讯云Edgeone限时免费
  • 有序矩阵中第K小的元素+二分查找
  • 使用 Rust 创建 32 位 DLL 的完整指南
  • 数据大集网:精准获客新引擎,助力中小企业突破推广困局
  • CSPOJ:1561: 【提高】买木头
  • 请求报文和响应报文(详细讲解)
  • nomachine的安装和使用
  • 零基础学习jQuery第三天
  • 用 Python 绘制企业年度财务可视化报告 —— 从 Excel 到 9 种图表全覆盖
  • DDIA第五章:分布式数据复制中的一致性与冲突处理
  • 第5节 大模型分布式推理通信优化与硬件协同
  • 在Debian上安装MySQL
  • Excel 实战:基因表达矩阵前处理中测序符号的快速剥离方法
  • golang 基础案例_02
  • 设计模式笔记_结构型_享元模式
  • 深入解析Prompt缓存机制:原理、优化与最佳实践
  • Agent在供应链管理中的应用:库存优化与需求预测
  • Python FastAPI + React + Nginx 阿里云WINDOWS ECS部署实战:从标准流程到踩坑解决全记录
  • typecho博客设置浏览器标签页图标icon
  • 【工控】线扫相机小结 第六篇
  • uncalled4
  • 麒麟系统使用-PATH设置
  • 【接口自动化】-7- 热加载和日志封装
  • 实战:用 PyTorch 复现一个 3 层全连接网络,训练 MNIST,达到 95%+ 准确率