一、 核心思想一句话概括

首先,我们用三个比喻来快速理解它们的核心思想:

  1. PPO (近端策略优化)「比武招亲」

    • 模型(AI)通过试错和与裁判(奖励模型)的互动来学习。它生成多个回答,裁判给每个回答打分(奖励),模型的目标是调整自己,使自己更可能生成高分的回答,同时避免与之前的自己差别太大(“近端”的含义)。
  2. DPO (直接偏好优化)「父母撮合」

    • 直接给模型看人类标注的“好答案”和“坏答案”的成对样本((winner, loser))。模型不需要通过裁判打分,而是直接学习模仿“好答案”的风格和模式,并远离“坏答案”。它直接优化了偏好排序的概率。
  3. GRPO (全局回报优化)「非诚勿扰」

    • 这是 DeepSeek 团队提出的新方法。它像 DPO 一样使用成对偏好数据,但整个训练过程被组织成一场“竞赛”。模型生成的多个回答相互竞争,基于一个全局的、稀疏的奖励(比如只有一个回答被选中)来更新策略,更适合长文本、多回合的复杂对齐任务。

二、 详解其原理

1. PPO (Proximal Policy Optimization)

目标: 在不知道真实奖励函数的情况下,通过一个代理奖励模型 (Reward Model) 来优化策略(模型本身)。

流程(以微调LLM为例)

  1. 准备奖励模型 (RM): 首先需要训练一个独立的奖励模型。这个RM通过人类对回答的偏好(如 A > B)数据训练而成,学会给好的回答打高分,坏的回答打低分。
  2. 微调过程
    • 采样 (Sampling): 让当前需要微调的模型(策略模型)针对同一个提示 (Prompt) 生成多个回答。
    • 评分 (Scoring): 用训练好的奖励模型 (RM) 为每一个生成的回答计算一个奖励分数 (Reward)。
    • 优化 (Optimization): 模型的目标是最大化这个奖励的期望。关键约束是 「近端」:在更新参数时,要确保新的策略(模型)不会与旧的策略偏离太远,以防止训练崩溃(生成乱码)。这是PPO稳定性的核心。

优点: 非常通用和强大,是强化学习领域的标杆算法。
缺点

  • 流程复杂: 需要额外训练一个高精度的奖励模型 (RM),成本高。
  • 稳定性挑战: 虽然叫“近端”优化,但训练过程中仍需精心调参来保持稳定。
  • 奖励黑客 (Reward Hacking): 模型可能会学会生成迎合奖励模型但不合人类直觉的回答(例如,包含某些高分关键词但内容空洞)。
初始语言模型
训练奖励模型 RM
通过人类偏好数据
使用RM为模型生成的回答评分
近端策略优化PPO
最大化奖励并防止策略偏离
对齐后的模型

2. DPO (Direct Preference Optimization)

目标: 省去训练奖励模型 (RM) 的步骤,直接从人类偏好数据中优化模型。

核心洞察: 作者发现,在一定的约束条件下,最优策略(我们想要的对齐后的模型)和最优奖励函数之间存在着解析解关系。这意味着我们可以绕过奖励建模,直接通过数学变换将偏好数据嵌入到损失函数中。

流程

  1. 准备数据: 只需要成对的偏好数据 (x, y_w, y_l),其中对于提示 xy_w 是人类偏好的回答(winner),y_l 是被拒绝的回答(loser)。不需要奖励分数
  2. 优化损失函数: 使用一个非常巧妙的损失函数,其核心是 Bradley-Terry 模型
    L_DPO = -E[(x, y_w, y_l)] [ log σ( β * log(π_θ(y_w|x) / π_ref(y_w|x)) - β * log(π_θ(y_l|x) / π_ref(y_l|x)) ) ]
    • π_ref: 是初始的参考模型(SFT模型),在训练中固定不变。
    • π_θ: 是当前正在被优化的模型。
    • β: 是一个温度参数,控制模型偏离参考模型的程度。

直观理解: 这个损失函数是在最大化模型赋予“好回答” y_w 的概率与“坏回答” y_l 的概率之间的差距。模型通过不断拉大这个差距来学习人类的偏好。

优点

  • 极其简单: 无需训练奖励模型,直接端到端微调,大大简化了训练流程。
  • 非常稳定: 由于损失函数直接依赖于参考模型,训练过程比PPO稳定得多,不易崩溃。
  • 效果卓越: 在许多基准测试上,效果达到甚至超过了PPO。

缺点

  • 严重依赖于高质量的偏好数据。数据中的噪声会对训练产生较大影响。

在这里插入图片描述

3. GRPO (Global Reward Optimization)

目标: 解决在长文本、多回合对话等复杂任务中,奖励稀疏化和全局一致性的问题。

核心思想: 在复杂任务中,一个回答的“好”不是由局部决定的,而是需要全局考量。GRPO将对话或长文本生成视为一个竞赛环境

流程

  1. 采样: 对于同一个提示 x,让当前模型生成 K 个 完整的回答(例如 K=4)。这 K 个回答构成一个“竞赛组”。
  2. 评判: 由一个评判者 (Judge) 从这 K 个回答中选出一个唯一的优胜者 (Top-1)。这个评判者可以是人类标注员,也可以是一个强大的AI裁判(如GPT-4)。注意,这里只产生一个全局的、稀疏的奖励信号( winner = 1, losers = 0),而不是给每个回答打分。
  3. 优化: 使用一种称为 「分组策略梯度 (Group-wise Policy Gradient)」 的算法。只有获胜的回答会获得正反馈,模型会学习增加生成该回答的概率;而失败的回答获得负反馈,模型会降低生成它们的概率。同样,它也有约束来防止策略偏离太远。

为什么适合长文本? 因为它评判的是整个回答的全局质量,而不是一句话中的一个词或一个片段。这避免了在长文本生成中频繁进行不连贯的局部优化。

优点

  • 解决稀疏奖励: 特别适用于奖励信号稀疏的复杂任务(写小说、长对话)。
  • 全局一致性: 鼓励模型生成整体上更一致、更优秀的回答。
  • 高效: 相比需要为每个片段打分的某些方法,GRPO的评判成本相对较低(只需选最优)。

缺点

  • 需要能够进行可靠全局评判的“裁判”(人类或超强AI),成本可能较高。
  • 目前还比较新,实践和验证相对PPO/DPO较少。

在这里插入图片描述


三、 对比与总结

特性PPODPOGRPO
核心思想通过奖励模型代理优化直接从偏好数据中优化全局竞赛中优化
所需数据需要奖励模型(或人类评分)成对偏好数据 (winner, loser)成组回答及其全局排名/选择
训练复杂度(需先训RM,再PPO微调)(直接端到端训练)(需采样组并进行全局评判)
稳定性较低,需精心调参,得益于显式约束中等,依赖于评判质量
奖励信号稠密(每个回答都有分数)隐含在损失函数中稀疏(仅全局Top-1获胜)
适用场景通用,但更成熟通用,尤其适合迭代式偏好学习长文本、多回合复杂任务
比喻比武招亲父母撮合非诚勿扰

演进关系

可以看作是一个不断简化和专业化的过程:

  1. PPO 是奠基性的工作,证明了RLHF(基于人类反馈的强化学习)的可行性,但流程复杂。
  2. DPO 是革命性的突破,它发现了PPO目标的数学本质,省去了复杂的奖励建模步骤,极大地降低了偏好对齐的门槛,成为当前的主流方法。
  3. GRPO 是针对PPO/DPO在长上下文、稀疏奖励场景下的不足提出的专业化解决方案。它不是为了替代DPO,而是为了处理DPO可能不擅长的特定任务。

如何选择?

  • 对于大多数通用对话指令跟随任务,DPO 是目前的最佳选择,因为它简单、稳定、高效。
  • 如果你需要处理长文写作、多轮对话对齐等任务,并且有强大的评判能力,可以探索 GRPO
  • PPO 仍然非常强大和通用,在许多工业级应用中,由于其成熟度,依然被广泛使用。

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

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

相关文章

使用组合子构建抽象语法树

引言 组合子(Combinator)是一种函数式编程中的概念,它允许我们通过组合简单的函数来构建复杂的逻辑。在解析器和抽象语法树(AST)的构建中,组合子提供了一种简洁且模块化的方法。本文将介绍如何使用组合子来…

20.27《24GB显卡轻松训练ChatGLM3-6B!QLoRA极速微调实战指南》

24GB显卡轻松训练ChatGLM3-6B!QLoRA极速微调实战指南 import torch from transformers import AutoModel, AutoTokenizer, BitsAndBytesConfig# 配置4-bit量化参数 bnb_config = BitsAndBytesConfig(load_in_4bit=True,bnb_4bit_use_double_quant=True

JSP 输出语法全面解析

JSP 输出语法全面解析 JSP 提供了多种输出内容到响应流的方式&#xff0c;每种方式都有其特定的使用场景和特点。以下是 JSP 输出语法的详细解析。 总结 JSP直接编写普通字符串 翻译到service方法的out.write(“这里面”) <%%> 翻译到service方法体内部&#xff0c;里面是…

前端学习——CSS

前面我们已经学习过来HTML。但是对于前端网页来说&#xff0c;HTML只是网页的骨架。而只是使用HTML的网页是十分简陋的&#xff0c;一般没办法应用于实际应用。因此我们还要学习CSS对网页进行美化。 相关代码已经上传至gitee&#xff1a;前端学习代码: 前端学习&#xff0c;喜欢…

【stm32】对射式红外传感器计次以及旋转编码器计次

对射式红外传感器计次 1. 将传感器的功能分装在一个模块里CountsSenser2.配置外部中断1.配置RCC&#xff0c;将涉及的外设的时钟都打开 2.配置GPIO&#xff0c;选择端口为输入模式 3.配置AFIO&#xff0c;选择前面使用的一路GPIO,连接到后面的EXTI 4.配置EXTI&#xff0c;选择边…

人工智能学习:Python相关面试题

1、Python与其他语言&#xff08;如Java/C&#xff09;的核心区别是什么&#xff1f;Python是动态类型的解释型语言&#xff0c;语法简洁&#xff0c;支持多种编程范式&#xff08;面向对象、函数式、过程式&#xff09;。与Java相比&#xff0c; Python无需编译且语法更简洁&a…

【Canvas与旗帜】哥伦比亚旗圆饼

【成图】【代码】<!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>哥伦比亚旗圆饼 Draft1</title><style type"text/css&qu…

Linux 系统 poll 与 epoll 机制2:实现原理与应用实践

接上文poll机制&#xff1a;Linux 系统 poll 与 epoll 机制1。 3. epoll 机制&#xff1a;高并发 I/O 的优化实现​ epoll(Efficient event polling implementation)机制诞生于 Linux 2.5.44 版本&#xff0c;是内核为解决高并发 I/O 场景&#xff08;如万级以上 FD 监听&…

Mamba LLM 架构简介:机器学习的新范式

Mamba LLM 架构简介&#xff1a;机器学习的新范式探索 Mamba LLM 的强大功能&#xff0c;Mamba LLM 是来自一流大学的变革性架构&#xff0c;重新定义了 AI 中的序列处理。语言模型是一种经过训练的机器学习模型&#xff0c;用于在自然语言上执行概率分布。它们的架构主要由多层…

GaussDB生产扩容引起的PANIC问题处理案例

1 环境信息CPU:8C内存&#xff1a;64GGaussDB版本&#xff1a;24.7.32解决方案部署形态&#xff1a;HCS部署形态&#xff1a;1主1从1日志扩容原因&#xff1a;当前的配置满足不了max_connections为2000值&#xff0c;即当前的业务最大连接数超过2000个而按照8C64G的配置最多满足…

【168页PPT】华为流程管理体系构建与落地(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92796370/91662548 资料解读&#xff1a;【168页PPT】华为流程管理体系构建与落地 详细资料请看本解读文章的最后内容。华为&#xff0c;作为全球知名…

基于CotSegNet网络和机器学习的棉花点云器官分割和表型信息提取

一、引言PointNet作为点云处理领域的先驱与里程碑式深度学习模型&#xff0c;以其卓越的性能和对无序点云数据直接处理的能力而闻名。博主将分享1篇发表在《Computers and Electronics in Agriculture》&#xff08;中科院1区TOP&#xff09;的“Organ segmentation and phenot…

经典卷积神经网络CNN

一、CNN视觉处理三大任务&#xff1a;图像分类、目标检测、图像分割上游&#xff1a;提取特征&#xff0c;CNN下游&#xff1a;分类、目标、分割等&#xff0c;具体的业务1. 概述卷积神经网络是深度学习在计算机视觉领域的突破性成果。在计算机视觉领域, 往往我们输入的图像都很…

11.1.5 实现文件删除,共享和共享下载排行榜

1、图床分享图片api_sharepicture.cc sharepicture_cgi.c 分享后每个人都可以看到。 数据库&#xff1a; DROP TABLE IF EXISTS share_picture_list; CREATE TABLE share_picture_list (id int(11) NOT NULL AUTO_INCREMENT COMMENT 编号,user varchar(32) NOT NULL COMMENT …

【Java后端】SpringBoot配置多个环境(开发、测试、生产)

在 Spring Boot 中配置多个环境&#xff08;开发、测试、生产&#xff09;通常用 配置文件分环境管理 启动参数切换 的方式来实现。下面一个完整的实践指南&#xff1a;&#x1f539; 1. 使用多配置文件管理环境 Spring Boot 默认支持 application-{profile}.properties 或 ap…

HTTP 分块传输编码:深度解析与报文精髓

分块传输编码&#xff08;Chunked Transfer Encoding&#xff09;是 HTTP/1.1 协议中的一项核心特性&#xff0c;它允许服务器在不预先知道响应体总大小的情况下&#xff0c;高效地传输数据。这项技术解决了传统 Content-Length 机制的局限性&#xff0c;使得 HTTP 协议能够完美…

Vue 项目首屏加载速度优化

Vue 项目首屏加载从 5s 到 1.5s&#xff1a;4 步落地优化方案&#xff0c;附完整代码 数据对比前段时间我在做一个活动时&#xff0c;打包加载后发现打开页面要等半天&#xff0c;经过几天的优化&#xff0c;最终将首屏加载时间从5秒压到 1.5 秒。这篇文章会把整个优化过程拆解…

Java学习第十六部分——JUnit框架

目录 一.概述 二.作用 三.版本 四.优势 五.局限性 六.发展方向 七.核心组件 1 测试用例 2.断言&#xff08;Assertions&#xff09; 3.测试生命周期 4.测试运行器 八.简单示例 九.JUnit 4 与 JUnit 5 的区别 十.idea项目实战 1.在idea中创建Java项目&#xff0c…

[吾爱原创] 千千每日计划

[吾爱原创] 千千每日计划 链接&#xff1a;https://pan.xunlei.com/s/VOYuE8p-KIV-NJr2_0d1Ak9YA1?pwdbqez# 介绍&#xff1a;千千系列的最后一款软件,一款每日计划的一款软件&#xff0c;并且支持时间段修改和打卡和导入导出等功能。 功能&#xff1a; 1.设置每天的计划 2…

docker命令(二)

目录 docker命令 1.inspect命令&#xff08;查看镜像信息&#xff09; 2.tag命令&#xff08;为镜像起别名&#xff09; 3.--help命令&#xff08;查看命令的使用帮组&#xff09; docker 命令 --help docker --help 4.run命令 1.格式 2.启动tomcat镜像 3. docker 不能被外部访…