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

角色和术语定义

  • 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.pswp.cn/web/92749.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92749.shtml

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

相关文章

基于梅特卡夫定律的开源链动2+1模式AI智能名片S2B2C商城小程序价值重构研究

摘要:梅特卡夫定律揭示了网络价值与用户数量的平方关系,在互联网经济中,连接的深度与形式正因人的参与发生质变。本文以开源链动21模式、AI智能名片与S2B2C商城小程序的协同应用为研究对象,通过实证分析其在社群团购、下沉市场等场…

Ubuntu22.04安装CH340驱动及串口

一、CH340驱动安装 1.1 查看USB设备能否被识别 CtrlAltT打开终端: lsusb 插入设备前: 插入设备后: 输出中包含ID 1a86:7523 QinHeng Electronics CH340 serial converter的信息,这表明CH340设备已经被系统识别。 1.2 查看USB转串…

CPU缓存(CPU Cache)和TLB(Translation Lookaside Buffer)缓存现代计算机体系结构中用于提高性能的关键技术

CPU缓存(CPU Cache)和TLB(Translation Lookaside Buffer)缓存是现代计算机体系结构中用于提高性能的关键技术。它们通过减少CPU访问数据和指令的延迟来提高系统的整体效率。以下是对这两者的详细解释: 1. CPU 缓存 CPU…

唐扬·高并发系统设计40问

课程下载:https://download.csdn.net/download/m0_66047725/91644703 00开篇词 _ 为什么你要学习高并发系统设计?.pdf 00开篇词丨为什么你要学习高并发系统设计?.mp3 01 _ 高并发系统:它的通用设计方法是什么?.pdf …

基于Spring Data Elasticsearch的分布式全文检索与集群性能优化实践指南

基于Spring Data Elasticsearch的分布式全文检索与集群性能优化实践指南 技术背景与应用场景 随着大数据时代的到来,海量信息的存储与检索成为各类应用的核心需求。Elasticsearch 作为一款分布式搜索引擎,凭借其高可扩展、高可用和实时检索的优势&#x…

Linux系统编程——基础IO

一些前置知识:文件 属性 内容文件 分为 打开的文件、未打开的文件打开的文件:由进程打开,本质是 进程与文件 的关系;维护的文件对象先加载文件属性,文件内容一般按需加载未打开的文件:在永久性存储介质 —…

力扣164:最大间距

力扣164:最大间距题目思路代码题目 给定一个无序的数组 nums,返回 数组在排序之后,相邻元素之间最大的差值 。如果数组元素个数小于 2,则返回 0 。 您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 思路 这道题的思路…

Redis类型之Hash

1.hash常用操作 这里还是要强调,redis的类型指的是value的类型。故而这里的hash是把key这一层组织完成以后,到了value这一层,value的其中一种类型还可以是hash。1.1 HSET 和 HGETHSET:设置hash类型的keyHSET key field value [fie…

Apache Pulsar性能与可用性优化实践指南

Apache Pulsar性能与可用性优化实践指南 一、技术背景与应用场景 随着微服务、实时计算和大数据平台的普及,消息系统承担了海量数据的传输与解耦任务。Apache Pulsar作为新一代分布式消息与流处理系统,拥有多租户、持久化存储和灵活一致性的特点&#xf…

工单分类微调训练运维管理工具原型

简述需求进展之前,我尝试用Longformer模型来训练工单分类系统,但问题很快就暴露出来:Longformer训练时间长得让人抓狂,每次训练只能针对一个租户的数据,无法快速适配多个租户的需求。切换一个使用相同标签的租户还能够…

@CacheConfig​​当前类中所有缓存方法详解

CacheConfig​​当前类中所有缓存方法详解在 Spring Cache 抽象中,CacheConfig 是一个​​类级别注解​​,用于为​​当前类中的所有缓存方法(如 Cacheable、CachePut、CacheEvict)提供默认配置​​。其核心作用是​​避免在每个方…

正确使用SQL Server中的Hint(10)—Hint简介与Hint分类及语法(1)

9.5. 正确使用Hint 9.5.1. Hint简介 与Oracle等其他关系库类似,SQL Server中,也提供了诸多Hint用于支持SQL调优,那就是通过正确应用Hint技术,可以指示CBO为SQL语句产生和选择最合理而高效的查询计划。Hint确实可以做到很容易的对CBO产生影响,但因为多数场景中,CBO都能为…

Redis的分布式序列号生成器原理

Redis 分布式序列号生成器的核心原理是利用 Redis 的原子操作和高性能特性,在分布式系统中生成全局唯一、有序的序列号。其设计通常结合业务需求(如有序性、长度限制、高并发),通过 Redis 的原子命令(如 INCR、INCRBY&…

2025年SEVC SCI2区,基于深度强化学习与模拟退火的多无人机侦察任务规划,深度解析+性能实测

目录1.摘要2.问题定义3.SA-NNO-DRL方法4.结果展示5.参考文献6.算法辅导应用定制读者交流1.摘要 无人机(UAV)因其高自主性和灵活性,广泛应用于侦察任务,多无人机任务规划在交通监控和数据采集等任务中至关重要,但现有方…

汽车娱乐信息系统域控制器的网络安全开发方案

引言1.1 项目背景随着汽车行业的快速发展和智能化、网联化的趋势日益明显,汽车娱乐信息系统(In-Vehicle Infotainment System,IVIS)已经成为现代汽车的重要组成部分。汽车娱乐信息系统不仅提供了丰富的多媒体功能,如音…

【论文阅读】Deep Adversarial Multi-view Clustering Network

摘要多视图聚类通过挖掘多个视图之间的共同聚类结构,近年来受到了越来越多的关注。现有的大多数多视图聚类算法使用浅层、线性嵌入函数来学习多视图数据的公共结构。然而,这些方法无法充分利用多视图数据的非线性特性,而这种特性对于揭示复杂…

Redis - 使用 Redis HyperLogLog 进行高效基数统计

文章目录引言HyperLogLog 工作原理Spring Boot 集成 Redis1. 添加依赖2. 配置 Redis 连接3. Redis 配置类HyperLogLog 实战应用1. 基础操作服务类2. 网站日活跃用户统计3. 性能测试与误差分析应用场景分析适用场景不适用场景性能优化技巧与传统方案对比结论引言 在数据分析和监…

後端開發技術教學(三) 表單提交、數據處理

上回:後端開發技術教學(二) 條件指令、循環結構、定義函數 -CSDN博客 必要資源: trae中文版下載網址: TRAE - The Real AI Engineer phpStudy 2018 : phpStudy - Windows 一键部署 PHP 开发环境 小皮出品 目錄 一、表單提交 1.1 get & post 1.…

Python训练Day39

浙大疏锦行 图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 一、 图像数据的介绍 图像数据,相较于结构化数据(表格数据)他的特…

十八、MySQL-DML-数据操作-插入(增加)、更新(修改)、删除

DML数据操作添加数据更新(修改)数据删除数据总结代码: -- DML:数据操作语言-- -- DML:插入数据-insert -- 1.为tb_emp表的username,name,gender 字股插入值insert into tb_emp(username,name,gender,create_time,update_time) values (Toki,小时,2,now()…