大模型RLHF算法更新换代,DeepMind提出自训练离线强化学习框架ReST

文章链接: https://arxiv.org/abs/2308.08998

大模型(LLMs)爆火的背后,离不开多种不同基础算法技术的支撑,例如基础语言架构Transformer、自回归语言建模、提示学习和指示学习等等。这些技术造就了像GPT-3、PaLM等基座生成模型,在这些基座模型之上,研究人员通过引入人类反馈的强化学习算法(RLHF)开发出了例如ChatGPT这些与人类偏好保持一致的可聊天模型,才将LLMs真正带领到公众视野中。RLHF由于自身在线更新的限制带来了较大的训练计算代价,且容易遭到”外部攻击“

为了解决上述问题,来自Google DeepMind的研究团队提出了一种全新的强化自训练算法(Reinforced Self-Training,ReST),ReST相比RLHF,可以以更高的效率使LLMs的输出与人类偏好保持一致。ReST的设计灵感来源于他们将语言模型的对齐问题视为一个不断增长的批量强化学习问题,因此本文作者首先从一个初始LLMs策略出发,并根据该策略生成一个离线数据集,然后使用离线RL算法使用这些样本反过来更新LLMs策略。作者重点在基础NLP任务中的机器翻译任务上对ReST算法的性能进行了评估,实验结果表明,ReST相比RLHF可以更明显的提高模型的翻译质量。

01. 引言

如何将LLMs的输出与人类偏好或价值观进行高效的对齐,是目前提升LLMs性能的关键问题,如果没有进行适当的对齐处理,LLMs可能会产生风险高或完全错误的内容,这对于下游应用程序具有毁灭性的影响。目前常用的RLHF方法通常使用人类反馈的标注数据来学习一个奖励模型,然后将其用于强化学习目标来对LLM进行微调对齐。但是RLHF通常依赖于在线RL方法,例如PPO[1]和A2C[2],这就需要在模型训练过程中多次使用奖励模型来从更新后的策略中采样新样本,这会带来高昂的计算代价。为了解决这一问题,本文提出了一个自训练强化学习算法ReST,ReST将人类标注员从反馈训练循环中丢弃,自行生成并使用离线数据进行反馈训练。作者巧妙地设计了一个内外循环机制,如下图所示。

其中外循环称为Grow循环,模型会根据当前的策略来采样生成一个对齐数据集,内循环称为Improve循环,模型会对外循环生成的数据集进行过滤(使用人类偏好评分函数对样本进行排序过滤),并将过滤后的数据继续用于微调优化策略,内外循环相互影响,以降低采样数据带来的训练成本。ReST不再依赖在线的RL损失,因而成为了一种通用的强化学习框架,允许在执行Improve循环时使用不同的离线RL损失,使整体框架更具灵活性。

02. 本文方法

2.1 ReST的整体流程

2.2 Grow外循环

2.2 Improve内循环

03. 实验效果

本文的实验主要在机器翻译基准上进行,作者选取了IWSLT 2014、WMT 2020和Web Domain三个数据集,其中前两者为常见的机器翻译数据集,后者为内部测试数据集,这些数据集都包含一组语言文本和对应人类标注员给出的真实参考翻译。作者选取了几种不同的离线强化学习算法作为baseline对比方法,包括OAC、BVM、PO、GOLD和BC。

3.1 对Improve循环进行分析

作者首先分析了ReST的两个循环步骤对最终性能的影响,例如增加Improve循环的次数是否会增加奖励模型的分数,如下图所示,灰色柱状为监督学习baseline的分数,通过调整损失函数类型、Improve steps(I)和Grow steps(G)来构成不同的ReST变体,其分数为紫色柱状所示

可以看到,随着Improve steps数量的不断增加,ReST在所有三个数据集上的平均奖励分数都得到了提高

3.2 对Grow循环进行分析

Grow步骤可以不断增加离线训练的样本数量,因此作者对比了执行单次Grow步骤和执行两次Grow步骤后的模型性能,如下图所示,执行两次Grow步骤的ReST变体在IWSLT 2014和Web Domain数据集上都有明显的提升

3.3 对损失函数进行分析

在下图中作者展示了本文方法与监督训练模型,以及使用不同损失函数的ReST变体的平均奖励分数对比,可以观察到,即使只使用单次Grow步骤,ReST的不同变体(紫色)也显着优于监督学习模型(灰色)得到的奖励分数

此外,我们也可以观察到,BC损失在单次Grow步骤的情况下,明显优于使用其他损失函数的效果

3.4 ReST与在线RL算法进行对比

作者选取PPO算法作为对比在线RL算法,PPO广泛用于各式RLHF流程中。在实验中,PPO算法可以通过单次Grow步骤访问与ReST算法相当数量的训练数据,对比结果如下表所示。

可以看到,在线PPO算法的平均奖励分数基本与ReST算法持平,但是这只是在单次Grow步骤的情况下,当ReST使用多步Grow和Improve后(并且参与训练的数据量相同),性能会得到显著的提升

04. 总结

本文提出了一种名为ReST的自训练离线强化学习算法,其中包含了一种新型的内外循环机制(分为Grow外循环和Improve内循环)来高效的调度RL过程中的策略生成和更新。同时其具有良好的拓展性,可以灵活的应用在多种不同的RL损失中,本文作者在机器翻译基准上的实验表明,使用常用的BC损失可以使ReST在多种不同的环境中得到更高的奖励分数。ReST的提出也向社区宣布,在对LLMs执行与人类偏好对齐时,可以尝试除PPO等在线RL算法之外的更多RL优化手段。

参考

[1] J. Schulman, F. Wolski, P. Dhariwal, A. Radford, and O. Klimov. Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347, 2017.

[2] V. Mnih, A. P. Badia, M. Mirza, A. Graves, T. Harley, T. P. Lillicrap, D. Silver, and K. Kavukcuoglu. Asynchronous methods for deep reinforcement learning. In International Conference on Learning Representations, 2016.

作者:seven_


  关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

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

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

相关文章

OpenGLES:绘制一个混色旋转的3D球体

一.概述 前面几篇博文讲解了如何使用OpenGLES实现不同的3D图形 本篇博文讲解怎样实现3D世界的代表图形:一个混色旋转的3D球体 二.球体解析 2.1 极限正多面体 如果有学习过我前几篇3D图形绘制的博文,就知道要想绘制一个3D图形,首先要做的…

JavaScript系列从入门到精通系列第十四篇:JavaScript中函数的简介以及函数的声明方式以及函数的调用

文章目录 一:函数的简介 1:概念和简介 2:创建一个函数对象 3:调用函数对象 4:函数对象的普通功能 5:使用函数声明来创建一个函数对象 6:使用函数声明创建一个匿名函数 一:函…

【AI视野·今日Sound 声学论文速览 第十七期】Tue, 3 Oct 2023

AI视野今日CS.Sound 声学论文速览 Tue, 3 Oct 2023 Totally 15 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers DiffAR: Denoising Diffusion Autoregressive Model for Raw Speech Waveform Generation Authors Roi Benita, Michael Elad, Joseph Kes…

mybatis项目启动报错:reader entry: ���� = v

问题再现 解决方案一 由于指定的VFS没有找,mybatis启用了默认的DefaultVFS,然后由于DefaultVFS的内部逻辑,从而导致了reader entry乱码。 去掉mybatis配置文件中关于别名的配置,然后在mapper.xml文件中使用完整的类名。 待删除的…

css自学框架之选项卡

这一节我们学习切换选项卡,两种切换方式,一种是单击切换选项,一种是鼠标滑动切换,通过参数来控制,切换方法。 一、参数 属性默认值描述tabBar.myth-tab-header span鼠标触发区域tabCon.myth-tab-content主体区域cla…

python模拟表格任意输入位置

在表格里输入数值,要任意位置,我找到了好方法: input输入 1. 行 2. 列输入:1 excel每行输入文字input输入位置 3.2 表示输入位置在:3行个列是要实现一个类似于 Excel 表格的输入功能,并且希望能够指定输入…

概率密度函数,概率分布函数

概率密度函数:描述信号的取值在某个确定的取值点附近的概率的函数;概率分布函数的导数。 以幅值大小为横坐标,以每个幅值间隔内出现的概率为纵坐标进行统计分析。反映了信号落在不同幅值强度区域内的概率情况。 直方图:对每个幅…

智能合约漏洞,BEVO 代币损失 4.5 万美元攻击事件分析

智能合约漏洞,BEVO 代币损失 4.5 万美元攻击事件分析 一、事件背景 北京时间 2023 年 1 月 31 日,在 twitter 上看到这样一条消息: BEVO 代币被攻击,总共损失 45000 美元,导致 BEVO 代币的价格下跌了 99%。 有趣的是…

华为云云耀云服务器L实例评测|云耀云服务器L实例部署ZFile在线网盘服务

华为云云耀云服务器L实例评测|云耀云服务器L实例部署ZFile在线网盘服务 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、ZFile介绍2.1 ZFile简介2.2 ZFile特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购买华为云…

【Verilog 教程】6.6Verilog 仿真激励

关键词:testbench,仿真,文件读写 Verilog 代码设计完成后,还需要进行重要的步骤,即逻辑功能仿真。仿真激励文件称之为 testbench,放在各设计模块的顶层,以便对模块进行系统性的例化调用进行仿真…

word已排序好的参考文献,插入新的参考文献,序号更新

原排序好的文献序号。 现在在3号后面插入一个新文献。4,5号应该成为5,6 这时在3号后面,回车,就会自动的增长。如下图: 但是如果手滑,把[4]删除了如何排序?? 如下图: …

怎么将本地代码文件夹通过Git 命令上传到启智平台仓库

在本地创建一个与启智平台仓库同样名字的文件夹 然后在本地文件夹右键–>选择Git Bash Here,就会打开Git命令窗口 初始化本地仓库 git init将项目文件添加到Git git add .提交更改: 使用以下命令提交您的更改,并为提交添加一条描述性的消息&#…

创建线程池

如何创建线程池及处理相应任务 目录 如何创建线程池及处理相应任务线程池定义解决的问题(需求)工作原理实现线程池创建示意图重要构造器创建线程池(ExecutorService)线程池任务处理常用API处理Runnable任务处理Callable任务 使用工具类(Executors)创建线程池常用API应用案例 拓…

极大似然估计概念的理解——统计学习方法

目录 1.最大似然估计的概念的理解1 2.最大似然估计的概念的理解2 3.最大似然估计的概念的理解3 4.例子 1.最大似然估计的概念的理解1 最大似然估计是一种概率论在统计学上的概念,是参数估计的一种方法。给定观测数据来评估模型参数。也就是模型已知,参…

芯驰D9评测(2)--系统环境配置连接

linux开发板的软件开发三件套: 建立连接-->建立交叉编译环境-->建立驱动开发环境。 如果我们不涉及镜像的深度定制,只是平台化应用的话 1. 建立串口连接 查看手册, 获取接口定义说明: 板载一共两个端子,三个…

2023年山东省安全员C证证考试题库及山东省安全员C证试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年山东省安全员C证证考试题库及山东省安全员C证试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大…

Flutter笔记:手写并发布一个人机滑动验证码插件

Flutter笔记 手写一个人机滑块验证码 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/133529459 写 Flut…

备忘录:Docker基础操作与常用命令

文章目录 Docker基础操作1.1 Docker在线安装1.1.1 安装基础软件包1.1.2 安装docker主程序1.1.2.1 设置国内源1.1.2.2 安装docker 1.2 Docker离线安装1.2.1 下载离线安装包1.2.2 安装docker依赖包以及docker 1.3 设置自启动并启动dokcer1.4 安装docker-compose1.4.1 命令行下载文…

解决nvm切换node版本失败的终极办法-秒杀网上99%的水文

nvm是一款强大的node多版本管理器,可以轻易选择你需要的node版本,这对win7平台简直就是超好的福音:可以突破node 14.15以上的安装限制。 但是nvm安装有一个巨大的坑点:nvm use 版本号以后,并没有生效,nvm …

uni-app:js修改元素样式(宽度、外边距)

效果 代码 1、在<view>元素上添加一个ref属性&#xff0c;用于在JavaScript代码中获取对该元素的引用&#xff1a;<view ref"myView" id"mybox"></view> 2、获取元素引用 &#xff1a;const viewElement this.$refs.myView.$el; 3、修改…