论文浅尝 | 训练语言模型遵循人类反馈的指令

ac5e4e6aa852c75b154269aa4b5a5e51.png

笔记整理:吴亦珂,东南大学硕士,研究方向为大语言模型、知识图谱

链接:https://arxiv.org/abs/2203.02155

1. 动机

大型语言模型(large language model, LLM)可以根据提示完成各种自然语言处理任务。然而,这些模型可能会展现出与人类意图不一致的行为,例如编造事实、生成带有偏见或有害信息,或者不遵循用户的指令。这种情况的原因在于LLM的训练目标是预测下一个标记(token),而不是有针对性地、安全地遵循用户的指令。这导致LLM与人类指令的对齐不足,而这一点对于在各种应用中部署和使用LLM至关重要。因此,本文的动机在于通过训练LLM,使其与用户意图保持一致。为了实现这一目标,本文采用了微调方法,提出了基于人类反馈的强化学习策略(reinforcement learning from human feedback, RLHF),该技术将人类偏好作为激励信号来微调模型。作者的方法大致分为三个部分:

(1)将GPT-3作为模型骨架,采用监督学习的方式训练,作为基线模型。

(2)人工对GPT-3的输出基于生成质量排序,在基线模型基础上训练一个能够符合人类偏好的奖励模型。

(3)将奖励模型作为奖励函数,采用极大化奖励的方式基于PPO算法微调基线模型。

通过上述3个阶段,实现了GPT-3到人类偏好的对齐,作者将微调后的模型称为InstructGPT。

2. 贡献

(1)提出了一种基于人类反馈的强化学习策略RLHF,使得LLM能够更好地符合人类的偏好,从而使模型更加有用、安全和诚实。

(2)InstructGPT相较于GPT-3,生成的结果更符合人类的偏好,具有更高的真实性和更低的潜在有害性。

(3)实验结果表明,通过RLHF微调,LLM可以更好的服从人类的指令,并且具备更强的指令泛化能力。

3. 方法

本研究基于用户在OpenAI API上提交的文本提示和人工编写的文本提示,创建了三个不同的数据集,用于微调过程:(1)监督微调数据集,用于训练监督模型,其中包含13k个训练样例;(2)奖励模型数据集,人工对模型的输出进行排序,用于训练奖励模型,该数据集包含33k个样例;(3)PPO数据集,没有人工标注,用于进行基于人类反馈的强化学习训练,该数据集包含31k个样例。图1展示了这三个数据集中任务的分布情况。

59a9a49aeafc9c97ef28a24a47d6d110.png

图1 数据集的任务分布

本研究将GPT-3作为基本预训练模型,采用三个策略训练,训练框架如图2所示:

(1) 监督微调(SFT, supervised fine-tuning):采用监督学习方法微调GPT-3,利用验证集上的奖励模型分数选择最佳的SFT模型。

(2) 奖励模型(RM, reward modeling):输入提示和回答,训练模型输出量化的奖励。本研究采用6B模型作为基础模型,因为作者发现175B模型可能不够稳定,且在强化学习中不适合作为价值函数。为了提高训练效率,不同于传统奖励模型每次对两个模型输出进行比较,本研究要求标注者对4到9个回答进行排序。设K为排序的数量,则标注者一共需要进行  次比较。由于每个标注任务中的比较具有很高的相关性,如果简单地将比较混合成一个数据集进行训练,可能导致奖励模型过拟合。因此,本研究将每个提示的所有  个比较作为单个批次训练。这种做法避免了过拟合,并且在计算上更加高效,因为每次完成只需要对奖励模型进行一次前向传递,而不是  次。奖励模型的损失函数定义如下:

d1d1877a1ba8b9d375fc1aae5d0eca6b.jpeg

其中, θ 是奖励模型对于指令x和回答y给出的量化奖励,  是  和  中更符合人类偏好的输出,D为奖励模型训练数据集。

(3) 强化学习(RL, reinforcement learning):采用PPO算法对SFT模型进行微调。模型基于随机的指令产生回答,奖励模型根据指令和回答生成奖励信号,指导模型的微调过程。为了防止过拟合,作者对每个生成的标记增加了逐标记的KL散度惩罚。通过这种方式训练的模型被称为PPO模型。此外,作者还尝试将预训练模型的梯度与PPO梯度进行混合,以缓解在公开自然语言处理数据集上性能下降的问题。这种方式训练的模型被称为PPO-ptx模型。强化学习训练旨在最大化以下目标:

6fe54309ada83973f296716822fcfe59.png

其中, πφ 是强化学习策略, π 是监督训练模型,  是预训练分布。KL奖励系数β和预训练损失系数γ分别控制 KL 惩罚和预训练梯度的强度。

33ee39d85e6df6ee428b6ee7e62491ee.png

图2 RLHF训练框架

4. 实验

4.1 对比模型

本研究主要对经过RLHF训练的PPO模型与SFT模型、原版GPT-3模型以及GPT-3-prompted模型(模型输入时加上若干例子构成前缀,引导模型遵循指令)进行了比较。同时,还将InstructGPT模型与在FLAN和T0数据集上微调后的175B GPT-3模型进行了对比。

4.2 评测方法

本研究采用定量评估和定性评估相结合的评估方法。其中,定量评估包括基于API提示数据的评估和在公开自然语言处理数据集上的评估。

(1)基于API提示数据的评估。数据来源于用户在InstructGPT API和GPT-3 API输入的提示。作者将175B SFT模型作为基线模型,计算模型输出优于基线模型的频率。此外,人工对于模型输出基于李克特量表进行打分。

(2)公开自然语言处理数据集上的评估。数据集主要分为两类:一是反映模型在安全性、真实性、有害性和偏差性等方面表现的数据集;二是衡量模型在传统自然语言处理任务上的零样本性能的数据集。

(3)定性评估。通过人工编写若干测试用例评测模型,包括评估模型的泛化能力等。

4.3 结果

(1)基于API提示的评估

InstructGPT模型更符合人类偏好。实验中,本研究将175B的SFT模型作为基线模型,并统计了PPO模型、PPO-ptx模型、GPT-3模型和GPT-3-prompted模型相对于基线模型,在人工评估中产生更高质量输出的频率。具体实验结果如图3所示。结果显示,本文提出的PPO模型和PPO-ptx模型在GPT分布和Instruct分布下都表现最好。

5a0a2e57685914cc3cc6996ec41ded03.png

图3 基于API提示的评估结果

InstructGPT在与人类偏好的对齐方面展现了一定的泛化能力。为了验证InstructGPT是否仅仅符合标注人员的偏好,本研究选择没有进行数据标注的人对模型输出结果进行了评估,并得出了一致的结论:InstructGPT显著优于基线模型GPT-3。

公开的自然语言处理数据集无法完全反映语言模型的使用情况。为了进一步评估InstructGPT的性能,本研究将其与在FLAN和T0数据集上微调的175B GPT-3进行了比较。实验结果表明,微调后的175B GPT-3模型优于原版GPT-3,与经过精心设计输入提示的GPT-3性能相当,但不及SFT模型和InstructGPT。作者认为,InstructGPT相对于微调后的GPT-3模型更具优势的原因有两个方面:(1)公开数据集主要涵盖分类和问答等任务,而在实际用户使用的数据中,这两种任务只占很小比例。(2)公开的自然语言处理数据集无法包含足够多样性的输入。

(2)基于公开自然语言处理数据集的评估

相较于GPT-3模型,InstructGPT在真实性方面有所提升。本研究通过在TruthfulQA数据集上进行人工评估,发现PPO模型相对于GPT-3表现出一定的提升。此外,本研究还采用了“Instruction+QA”提示的方式,引导模型在面临不确定正确答案的情况下回答“I have no comment”。实验结果显示,在这两种设定下,InstructGPT相对于GPT-3具有更好的性能,具体实验结果见图4。

f6690038463dd30680a67e245ac30879.png

图4 TruthfulQA数据集的评估结果

相较于GPT-3模型,InstructGPT生成的有害内容更少。本研究通过在RealToxicityPrompts数据集上进行评估,从两个方面考察模型的性能:(1)采用数据集标准的自动评估方法,获取有害性分数。(2)人工对模型生成的回答进行有害性打分。在模型输入方面,研究采用了两种设置:不加入提示内容和加入提示内容以引导模型生成无害的内容(respectful prompt)。实验结果如图5所示。两种评估方法都表明,在加入respectful prompt的设定下,InstructGPT表现更好,但在没有提示内容的情况下,InstructGPT和GPT-3的性能相近。

f1ac43483384031bc4502657ae1242e2.png

图5 RealToxicityPrompts数据集上的评估结果

通过改进RLHF的微调过程,可以减少在公开数据集上的性能下降。作者指出,经过RLHF训练的PPO模型在多个公开自然语言处理数据集上可能受到“对齐税”的影响而性能下降。为了解决这个问题,在PPO微调过程中引入了预训练更新,这种模型称之为“PPO-ptx”。具体的实验结果如图6所示。实验结果表明,相对于PPO模型,PPO-ptx在HellaSwag数据集上表现出更好的性能,超过了GPT-3模型。然而,在其他任务上,PPO-ptx的性能仍然不如GPT-3模型。

774ee2e405ff8a593e8f91f9a5153eb0.png

图6 多个公开自然语言处理数据集上模型的少样本性能

(3)定性评估

InstructGPT展现了对于指令的强大泛化能力。作者通过编写多个用例发现,InstructGPT能够遵循非英语语言的指令,进行总结和回答代码相关问题。这些任务在训练数据中仅占很小比例,这表明通过对齐的方法,模型能够生成出未经直接监督学习的行为。相比之下,GPT-3需要经过精心设计的提示才能执行这些任务,并且在代码相关任务以及非英语语言的指令任务等方面表现较弱。

InstructGPT仍然会出现简单的错误。这些错误包括:将错误的假设视为正确,对于简单问题不给出答案或给出多个答案,以及在处理包含多个明确约束的指令时表现不佳。

5. 总结

本研究旨在解决LLM存在的编造事实和生成有害文本等问题,通过基于人类反馈的强化学习方法微调语言模型,使其与人类偏好对齐。实验证明,经过强化学习微调后的模型生成的内容更可信,有害内容减少,对人类指令具有更好的泛化能力。然而,在公开自然语言处理数据集上,模型的性能有所下降,作者将其称为“对齐税”,并通过引入预训练数据来缓解性能下降的问题。未来的研究可以探索更有效的LLM对齐方法,并开发减少“对齐税”的策略。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

e273768701f017fe21d5417b6c550b7b.png

点击阅读原文,进入 OpenKG 网站。

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

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

相关文章

Java JUC 并发编程(笔记)

文章目录 再谈多线程并发与并行顺序执行并发执行并行执行 再谈锁机制重量级锁轻量级锁偏向锁锁消除和锁粗化 JMM内存模型Java内存模型重排序volatile关键字happens-before原则 多线程编程核心锁框架Lock和Condition接口可重入锁公平锁与非公平锁 读写锁锁降级和锁升级 队列同步…

[构建 Vue 组件库] 小尾巴 UI 组件库 —— 横向商品卡片(仿淘宝)

文章归档于:https://www.yuque.com/u27599042/row3c6 组件库地址 npm:https://www.npmjs.com/package/xwb-ui?activeTabreadmegitee:https://gitee.com/tongchaowei/xwb-ui 下载 npm i xwb-ui配置 按需导入 import {组件名 } from xwb-…

【Unity】 2D 游戏 库存模块实现

库存模块主要参考了 youtube 上的视频 BMo 的 Flexible INVENTORY SYSTEM in Unity with Events and Scriptable Objects 和 Simple Inventory UI in Unity With Grid Layouts 这两个视频是一个系列 还是一个视频也是 BMo的 How To INTERACT with Game Objects using UNITY E…

Nginx详解 第五部分:Ngnix反向代理(负载均衡 动静分离 缓存 透传 )

Part 5 一、正向代理与反向代理1.1 正向代理简介1.2 反向代理简介 二、配置反向代理2.1 反向代理配置参数2.1.1 proxy_pass2.1.2 其余参数 2.2 配置实例:反向代理单台web服务器2.3 代理转发 三、反向代理实现动静分离四、缓存功能五、反向代理客户端的IP透传5.1 原理概述5.2 一…

谁在为网络安全制造标尺?

“我们想帮助企业往后退一步,去全局的看一下自己的安全能力建设水平如何,以及在当下的阶段最应该做的安全建设是什么? ” 度量,对应的是更清晰的认知。而对企业安全而言,这种认知,也更在成为一把新的标尺…

Redis带你深入学习数据类型set

目录 1、set 2、set相关命令 2.1、添加元素 sadd 2.2、获取元素 smembers 2.3、判断元素是否存在 sismember 2.4、获取set中元素数量 scard 2.5、删除元素spop、srem 2.6、移动元素smove 2.7、集合中相关命令:sinter、sinterstore、sunion、sunionstore、s…

CSS:屏幕正中间有个元素A,元素A中有文字A,随着屏幕宽度的增加

始终需要满足以下条件: A元素垂直居中于屏幕***;A元素距离屏幕左右边距各10px;A元素里面的文字”A”的font-size:20px;水平垂直居中;A元素的高度始终是A元素宽度的50%; (如果搞不定可以实现为A元素的高度固定为200px;)请用 html及…

【Unity基础】3.脚本控制物体运动天空盒

【Unity基础】3.脚本控制物体运动&天空盒 大家好,我是Lampard~~ 欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 (一)搭建开发环境 (1)下载visual studio 在我们下载unity编译器的时候&…

Microsoft Edge网页视频播放绿屏解决方法(B站)

一:问题,在B站观看视频时有绿色条纹 二:查找原因,未知 三:解决方法 三.1网页设置关闭硬件加速 三.2 点击视频播放下的 “小齿轮”,然后点击“更多播放设置” 把播放策略 “默认” 改为“AVC” 四&…

Tomcat配置域名和端口

Tomcat配置域名和端口 1.进入tomcat文件夹2. cd 到你的tomcat下3. 修改server.xml文件中监听端口4. 重启tomcat 1.进入tomcat文件夹 2. cd 到你的tomcat下 3. 修改server.xml文件中监听端口 继续修改server.xml中Host 4. 重启tomcat 进入bin ./shutdown.sh ./startup.sh …

etcd分布式存储

etcd分布式存储 etcd简介etcd下载安装etcd常用命令etcd配置参数etcd集群golang操作etcd

rrweb入门

rrweb 背景 rrweb 是 record and replay the web,是当下很流行的一个录制屏幕的开源库。与我们传统认知的录屏方式(如 WebRTC)不同的是,rrweb 录制的不是真正的视频流,而是一个记录页面 DOM 变化的 JSON 数组&#x…

【鲁棒电力系统状态估计】基于投影统计的电力系统状态估计的鲁棒GM估计器(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

SpringCloud Alibaba 入门到精通 - Nacos

SpringCloud Alibaba 常用组件 一、基础结构搭建1.父工程创建2.子工程创建 二、Nacos:注册中心1.服务端搭建2.注册中心-客户端搭建3.注册中心-管理页面4.注册中心-常用配置5.注册中心-核心功能总结 三、Nacos注册中心集成Load Balancer 、OpenFeign1.Nacos客户端集成…

一键部署k8s集群

前置动作 关闭防火墙 systemctl disable firewalld && systemctl stop firewalld 关闭SELinux sed -i s#SELINUXenforcing#SELINUXdisabled#g /etc/selinux/config && grep SELINUXdisabled /etc/selinux/config setenforce 0 getenforce 关闭swap # 关闭…

前端面试题JS篇(4)

浏览器缓存 浏览器缓存分为强缓存和协商缓存,当客户端请求某个资源时,获取缓存的流程如下: 先根据这个资源的一些 http header 判断它是否命中强缓存,如果命中,则直接从本地获取缓存资源,不会发请求到服务…

c语言练习44:深入理解strstr

深入理解strstr strstr作用展示&#xff1a; #include <stdio.h> #include <string.h> int main() {char str[] "This is a simple string";char* pch;pch strstr(str, "simple");/*strncpy(pch, "sample", 6);*/printf("%s…

Android逆向学习(一)vscode进行android逆向修改并重新打包

Android逆向学习&#xff08;一&#xff09;vscode进行android逆向修改并重新打包 写在前面 其实我不知道这个文章能不能写下去&#xff0c;其实我已经开了很多坑但是都没填上&#xff0c;现在专利也发出去了&#xff0c;就开始填坑了&#xff0c;本坑的主要内容是关于androi…

Scrum认证高级Scrum Master (A-CSM) 认证培训课程

课程简介 高级ScrumMaster (Advanced Certified ScrumMaster, A-CSM) 认证课程是国际Scrum联盟推出的进阶级Scrum认证课程&#xff0c;是Scrum Master通往专业级敏捷教练必经的学习路径。 在ScrumMaster&#xff08;CSM&#xff09;认证课程中&#xff0c;您学习到了Scrum的价…

Centos 6.5 升级到Centos7指导手册

一、背景 某业务系统因建设较早&#xff0c;使用的OS比较过时&#xff0c;还是centos6.5的系统&#xff0c;因国产化需要&#xff0c;需将该系统升级到BClinux 8.6&#xff0c;但官方显示不支持centos 6.x升级到8&#xff0c;需先将centos6.5升级到centos7的最新版&#xff0c…