强化学习的优化策略PPO和DPO

DPO

DPO(直接偏好优化)简化了RLHF流程。它的工作原理是创建人类偏好对的数据集,每个偏好对都包含一个提示和两种可能的完成方式——一种是首选,一种是不受欢迎。然后对LLM进行微调,以最大限度地提高生成首选完成的可能性,并最大限度地减少生成不受欢迎的完成的可能性。与传统的微调方法相比,DPO 绕过了建模奖励函数这一步,设计一种包含正负样本对比的损失函数,通过直接在偏好数据上优化模型来提高性能。(即不训练奖励模型,语言模型直接做偏好优化)

工作原理:DPO在多个计算节点上并行运行,每个节点都有自己的一份策略副本,并在各自的环境实例中收集数据。在一定时间步或者周期之后,各个节点会将它们收集到的数据(如梯度信息或者策略更新)发送给中心节点。中心节点会聚合这些数据,并进行策略更新。更新后的策略参数随后会被分发回各个计算节点。由于每个节点可以独立探索不同的状态空间区域,DPO能够更加高效地进行探索和利用,从而加快学习过程。 

PPO(不是很懂,copy来的)

PPO的想法是,通过限制在每个训练阶段对策略所做的更改来提高策略的训练稳定性:我们希望避免过大的策略(参数)更新。我们从经验上知道,训练期间较小的策略更新更有可能收敛到最优解。策略更新步幅太大可能导致“坠崖”(获得糟糕的策略),并且需要很长时间甚至不可能恢复。

因此,使用PPO,我们要保守地更新策略。为此,我们需要通过计算当前策略与前一个策略之间的比率来衡量当前策略与前一个策略相比发生了多大的变化。我们将此比率限制在 [1−ϵ,1+ϵ] 的范围内,这意味着我们消除了当前策略偏离旧策略太远的动机(因此称为近端策略术语)。

加载4个模型,2个推理,2个训练

  • Actor Model:演员模型,想要训练的目标语言模型
  • Critic Model:评论家模型,它的作用是预估总收益
  • Reward Model:奖励模型,它的作用是计算即时收益
  • Reference Model:参考模型,它的作用是在RLHF阶段给语言模型增加一些“约束”,防止语言模型训歪(朝不受控制的方向更新,效果可能越来越差)

其中

  • Actor/Critic Model在RLHF阶段是需要训练的;而Reward/Reference Model是参数冻结的。
  • Critic/Reward/Reference Model共同组成了一个“奖励-loss”计算体系,我们综合它们的结果计算loss,用于更新Actor和Critic Model

PPO和DPO的不同

分布式训练:DPO的“Distributed”指的是它被设计为在分布式计算环境中运行,可以在多个处理器或机器上并行执行,而PPO通常指单机版本的算法。
扩展性和并行化:由于DPO是为分布式环境设计的,它在处理大规模并行化训练任务时具有更好的扩展性,而PPO则在这方面可能受到限制。
通信和同步:在分布式设置中,DPO需要有效的通信和同步机制来保证多个训练节点之间的协调,这是PPO在单机设置中不需要考虑的问题。

理解RLHF(奖励模型+PPO)

  1. 预训练的基础LLM
  2. 监督微调(SFT)LLM
  3. 奖励模型(LLM,但修改为奖励模型)
  4. PPO优化的语言模型(最终与偏好对齐的LLM)

这里奖励模型只是复制了SFT模型,并对其进行修改,删除最终层的非嵌入层(最终层的非嵌入层将文本的内部表示转换为可读的文本输出),并添加一个标量奖励头。该模型接收一个提示并输出一个标量奖励。该层不输出文本,而是输出一个标量值,即表示给定输入的“奖励”或“分数”的单个数字。(然后把这个分数融入到LLM的loss中?)

近端策略优化(PPO)模型也是SFT模型的副本,其中的参数将被更新以与人类偏好对齐。PPO优化“策略”,在这个上下文中指的是根据人类价值观生成文本响应的策略。PPO训练的目标是最大化从奖励模型获得的奖励。(即生成文本的风格能在奖励模型中获得最大奖励,即能够符合人类偏好)

DPO取代奖励模型+PPO

DPO通过完全移除奖励模型来简化这个过程。

  1. 预训练的基础LLM
  2. 监督微调(SFT)LLM
  3. DPO优化的语言模型(最终与偏好对齐的LLM)

参考:强化学习的优化策略PPO和DPO详解并分析异同_dpo ppo-CSDN博客

使用DPO将LLM与人类偏好对齐_llm dpo-CSDN博客 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

界面组件DevExpress WPF v23.2 - 全新升级的数据编辑器、流程图组件

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF控件日…

C语言 | Leetcode C语言题解之第92题反转链表II

题目: 题解: struct ListNode *reverseBetween(struct ListNode *head, int left, int right) {// 因为头节点有可能发生变化,使用虚拟头节点可以避免复杂的分类讨论struct ListNode *dummyNode malloc(sizeof(struct ListNode));dummyNode…

Redis-分布式锁实现方式

文章目录 Redis分布式锁的作用?Redis分布式锁的底层原理实现?Redis分布式锁的应用场景?Redis分布式锁遇到相关的场景问题?死锁问题锁超时问题归一问题可重入问题阻塞与非阻塞问题公平锁(Fair Lock)公平锁(F…

tomcat--应用部署

tomcat根目录结构 Tomcat中默认网站根目录是/usr/local/apache-tomcat-8.5.100/webapps/在Tomcat的webapps目录中,有个非常特殊的目录ROOT,它就是网站默认根目录。将eshop解压后的文件放到这个/usr/local/apache-tomcat-8.5.100/webapps/ROOT中。bbs解压…

Blender雕刻建模_笔画,镜像,动态拓扑

笔画 笔画选项,一般是对刷子(自由线)工具设置 描边方法如下:标红的为常用 -间隔:按一定间隔应用笔画的结果 例如:笔刷半径50,笔画间隔100%(笔刷直径的百分比)&#x…

Git项目管理——提交项目和版本回退(二)

个人名片: 🎓作者简介:嵌入式领域优质创作者🌐个人主页:妄北y 📞个人QQ:2061314755 💌个人邮箱:[mailto:2061314755qq.com] 📱个人微信:Vir2025WB…

一看就会的AOP事务

文章目录 AOPAOP简介AOP简介和作用AOP的应用场景为什么要学习AOP AOP入门案例思路分析代码实现AOP中的核心概念 AOP工作流程AOP工作流程AOP核心概念在测试类中验证代理对象 AOP切入点表达式语法格式通配符书写技巧 AOP通知类型AOP通知分类AOP通知详解 AOP案例案例-测量业务层接…

(1)双指针算法介绍与练习:移动零

目录 双指针算法介绍 练习:移动零 双指针算法介绍 双指针算法常见于数组和双向链表的题型 在数组中,双指针中的指针代表数组元素的下标,而不是真正的指针类型变量 在双向链表中,双指针中的指针即为真正意义上的指针&#xff…

线性系统(二)

线性系统(二) 1.直观理解线性方程组结构2. 不同解的结论3. 更一般的高斯-约旦消元法4.齐次线性方程组 链接: 线性系统(一) 1.直观理解线性方程组结构 长这样,方程就有解,即相交坐标。 长这样,…

免费思维13招之十三:种群型思维

免费思维13招之十三:种群型思维 免费思维的最后一个思维——族群思维 人,都是群居性的动物,在人群中的一部分人群对于另一部分人群来说,具有强大的吸引力。那么,我们就从这一点出发,通过对其中一部分人群进…

Online RL + IL :Policy Improvement via Imitation of Multiple Oracles

NIPS 2020 paper code 如何利用多个次优专家策略来引导智能体在线学习,后续有多个文章研究该设定下的RL。 Intro 论文探讨了在强化学习(RL)中,如何通过模仿多个次优策略(称为oracle)来提升策略性能的问题…

第25次修改留言板,修改了布局,样式和脚本分离

伤心城市 首页 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"beiwanglu" content"widthdevice-width, initial-scale1.0"><link rel"stylesheet" type&qu…

[Algorithm][回溯][字母大小写全排列][优美的排列][N皇后]详细讲解

目录 1.字母大小写全排列1.题目链接2.算法原理详解3.代码实现 2.优美的排列1.题目链接2.算法原理详解3.代码实现 3.N 皇后1.题目链接2.算法原理详解3.代码实现 1.字母大小写全排列 1.题目链接 字母大小写全排列 2.算法原理详解 本题逻辑与子集大致相同 思路一&#xff1a;每…

Windows 10无法远程桌面连接:原因及解决方案

在信息技术日益发展的今天&#xff0c;远程桌面连接已成为企业日常运维、技术支持乃至个人用户远程办公的必备工具。然而&#xff0c;有时我们可能会遇到Windows 10无法远程桌面连接的问题&#xff0c;这无疑会给我们的工作和生活带来诸多不便。 原因分析 1、远程访问未启用&a…

win10和win11使用wsl安装linux系统和docker.

1、wsl无法解析服务器的名称或地址 这是wsl无法访问raw这个地址。需要修改host. 你先访问这个地址&#xff0c;拿到IP。ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名 如下图&#xff0c;可以平通&#xff0c;就可以开始安装了。默认Ubuntu. 安别的系…

OpenTelemetry agent 对 Spring Boot 应用的影响:一次 SPI 失效的调查

背景 前段时间公司领导让我排查一个关于在 JDK21 环境中使用 Spring Boot 配合一个 JDK18 新增的一个 SPI(java.net.spi.InetAddressResolverProvider) 不生效的问题。 但这个不生效的前置条件有点多&#xff1a; JDK 的版本得在 18SpringBoot3.x还在额外再配合使用 -javaagent…

僵尸网络的威胁值得关注

僵尸网络&#xff08;botnet&#xff09;是指一组受到恶意软件感染并遭到恶意用户控制的计算机。术语“僵尸网络”由“机器人&#xff08;bot&#xff09;”和“网络&#xff08;network&#xff09;”两个词组合而成&#xff0c;每台受感染设备被称为“机器人”。僵尸网络可用…

验证集的划分方法:确保机器学习模型泛化能力的关键

验证集的划分方法&#xff1a;确保机器学习模型泛化能力的关键 目录 一、验证集的作用 二、验证集的划分方法 三、注意事项 四、总结 在机器学习任务中&#xff0c;我们不仅要关注模型在训练数据上的表现&#xff0c;更重要的是模型在未见数据上的泛化能力。为了评估和提高…

线上虚拟展厅需要具备哪些技术特点?

虚拟展厅需要具备三维建模与渲染技术、虚拟现实技术、交互技术、多媒体展示技术、网络传输技术、大数据分析与反馈技术、跨平台兼容性等技术特点。这些技术特点共同构成了虚拟展厅的核心竞争力&#xff0c;使其能够为用户提供逼真、生动、互动的参观体验。 虚拟展厅的技术特点主…

Kotlin扩展函数和运算符重载

扩展函数 fun String.lettersCount():Int{var count 0for(i in this){if(i.isLetter())count}return count } fun main(){val str:String "12we"println(str.lettersCount()) } 相当于直接将方法写在类里面。函数体内可以直接使用this而不用传参。 运算符重载 …