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

LLM场景下的强化学习【GRPO】

关于PPO可以参考:LLM场景下的强化学习【PPO】-CSDN博客

一、RLHF-PPO的缺陷与GRPO的改进

1. 奖励欺骗问题

在RLHF-PPO中,人类偏好数据是非常重要的,它能帮助模型按照我们的期望去有针对性的更新策略,生成更符合我们需求的答案。但是,这样可能会导致模型学习“刷分”行为,也就是堆砌Reward Model偏好的关键词但破坏逻辑连贯性,出现每一步奖励都高,但过程和结果都错的情况。

GRPO选择抛弃SFT环节(并不是完全抛弃,还是需要SFT解决cold-start问题),不引入人类偏好数据,仅对最终的答案评估一次奖励,让模型自己去摸索中间的思考过程,这种方式更能激发模型的推理能力。

总的来讲,就是PPO方法太专注于让模型学习人类的思维模式了,而GRPO成功让模型学习出更适合AI的一套思维方式。

将策略模型当做学生,将奖励模型当做老师。

RLHF-PPO相当于单人辅导,只有一位老师(Value Model)和一位学生(Actor Model),这位学生为了能在模拟考中取得高分(一次模拟考代表一次奖励过程),会把每次模拟考的题目以及解法都背下来(更新策略),并且也会学习思考,即使题目有一些变化,它也能成功解决。但是,这样的学生无法超越老师,比如一道数学题有四种解法,但是老师也只会三种,那么学生大概率只能学会这三种解法,只有较低概率能泛化学习到第四种解法,并且即使学习到新的解法,还是会倾向使用老师教的方法。这样的学生在高考中表现可能就会下降,因为高考有新的题型,更加考验推理能力。

(需要解释下,PPO实际是在完整轨迹结束后才更新策略,而不是每次状态转移都更新,上述的例子在这个概念上存在歧义)

GRPO采取了另一条路线,它不再需要老师(Value Model),只会招来一群学生(多个策略)。GRPO会告诉这群学生,你们的目标就是在高考中取得高分,但是没有老师教你们,只会给你们一堆撕掉了答案的模拟考试卷(无监督数据),你们自己去琢磨这些题目怎么做。当高考出分的那一刻,这些学生才知道自己一直以来学习到的策略是否正确。但是没有老师教的学生第一年大概率考不好,所以会让其中考得比平均分高的学生复读(迭代),其余学生直接退学,并且重新招收一批新学生。在新的一年,学生们会根据自己上一年高考分数调整学习的策略(策略更新),以求取得更高的分数。直至某一年,有个学生成功考上清北,证明诞生了非常优秀的策略,所有学生终于能从高中毕业啦!

此外,如果我们直接让幼儿园学生来自学然后高考,可能需要花太长时间(迭代次数过多),所以会先让老师将学生培养到初中生水准(SFT训练,解决Cold start问题),再让学生们去高中自学。

2. 资源开销问题

        PPO需要维护四个模型,其中两个模型需要更新,并且每个模型的参数量都不小,对资源的要求比较高。

        GRPO直接去掉了Value Model,只需要更新Policy Model,然后奖励的计算也从每一次状态迁移都计算,变成了仅在最后计算一次奖励。值得注意的是,GRPO依赖多个并行策略,每个策略只计算一次奖励,最后奖励计算次数等于策略数目,不过这个过程可以通过并行计算减少开销。

二、GRPO算法细节

1、原理上的变化

从上述学生与老师的例子中,已经展现了GRPO相对于PPO的几个重要改进点。

  • 删去Value Model(不需要老师):注意Reward Model还是需要的,相当于要有个高考的评卷人。

  • 多策略并行(招收多个学生):GRPO并没有采取PPO一样的基于梯度的优化策略,而是采取了“优胜劣汰”的优化策略。换句话说,就是PPO努力让一个学生越来越优秀,而GRPO则是直接从一群学生中选择最好的。

  • 无监督训练(撕掉了答案的模拟卷):GRPO并非全程都是无监督,它还是需要先用一批监督数据,训练出Reward Model,以及使用带有长思维链标注的数据来训练初始的Policy Model,解决cold-start问题。在后续的训练过程中,则是使用大规模无监督数据进行训练,训练好的Reward Model用于给模型答案进行打分。

  • 不计算中间奖励,仅计算最终奖励(模拟考不评分,高考才评分):PPO会对每个动作(生成新的token)都计算一次动作价值与状态价值,并进一步计算优势。而GRPO仅计算每个策略的最终奖励,也就是在一次迭代中,每个策略只会在生成完整答案后计算一次奖励。

2、目标函数的变化

先来看PPO的目标函数,包含三部分,第一部分是策略模型的目标函数,第二部分是价值模型的目标函数,第三部分是用于鼓励策略模型探索新策略而引入的熵奖励项。

多数文章中可能只有前两项,不过既然上面的例子中提到了PPO存在“难以学习新的解法”的问题,所以这里也简单提及一下,引入熵奖励项算是一种缓解问题的方案。

策略模型与价值模型这两项如何解读,可以看置顶参考文章。

PPO目标函数

再来看GRPO的目标函数,第一项是计算某个策略相比其他策略的优势,此处优势的计算策略很简单,首先会计算每一个策略的最终奖励 R(\tau),并计算一个群体平均奖励 \bar{R},策略的优势就是最终奖励与平均奖励的差值,再经过一个 \sigma函数。

第二项是KL正则,就是传统的KL惩罚项,作用是强制新策略在基础能力上不退化(例如语言生成能力),保证在高中自学过程中不忘记初中知识。

GRPO目标函数

后续待更新ing 

http://www.dtcms.com/a/274944.html

相关文章:

  • PCIE set_property问题
  • Java synchronized 锁机制深度解析与实战指南 - 银行转账案例
  • 深度学习超参数调优指南
  • Scrapy入门实战指南:从零开始打造高效爬虫系统
  • 每日算法刷题Day45 7.11:leetcode前缀和3道题,用时1h40min
  • 机器学习之线性回归(七)
  • 安全领域的 AI 采用:主要用例和需避免的错误
  • 基于k8s环境下pulsar高可用测试和扩缩容(上)
  • 基于k8s环境下pulsar高可用测试和扩缩容(下)
  • 线程通信与进程通信的区别笔记
  • CMU15445-2024fall-project1踩坑经历
  • 小米汽车今年6月新车交付超2.5万辆
  • Marin说PCB之Allegro高亮BOM器件技巧详解
  • 格密码--数学基础--03格的基本域与行列式
  • 用AI做带货视频评论分析【Datawhale AI 夏令营】
  • 《P3976 [TJOI2015] 旅游》
  • Guava LoadingCache
  • Apipost 与 Apifox 的 API 调试功能:全面对比与深入分析
  • Vue + Element UI 实现选框联动进而动态控制选框必填
  • 牛客 —— JZ22 链表中倒数最后k个结点
  • 前端八股-promise
  • FreeRTOS踩坑小记——vTaskList函数的使用
  • Activiti:activiti-app.war持久化功能实现
  • AI优化器美国VPS集成:智能算力部署与性能调优指南
  • (补充)RS422
  • Mysql:分库分表
  • STM32F103之存储/启动流程
  • 【世纪龙科技】几何G6新能源汽车结构原理教学软件
  • Linux C 管道文件操作
  • [spring6: @EnableLoadTimeWeaving]-使用案例