文献阅读:RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback

news2024/11/20 3:28:59
  • 文献阅读:RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback
    • 1. 文章简介
    • 2. 方法介绍
      • 1. 整体方法说明
    • 3. 实验结果
      • 1. RLHF vs RLAIF
      • 2. Prompt的影响
      • 3. Self-Consistency
      • 4. Labeler Size的影响
      • 5. 标注数据的影响
    • 4. 总结 & 思考
  • 文章链接:https://arxiv.org/abs/2309.00267

1. 文章简介

这篇文章是Google在今年9月发表的一篇文章,顾名思义,其核心的idea就是将RLHF当中的human部分直接替换为AI,直接用LLM的Feedback来finetune模型,考察其得到的模型效果。

结论而言其得到的模型效果有了不输RLHF后的模型效果,证明了上述策略的可行性。

怎么说呢,这个结论多少有些情理之中又有些意料之外……

情理之中是在于说已经有多个实验证明了LLM在标注任务上的效果不弱于人类,甚至比人类有着更稳定的标注效果,因此用LLM来替代人类的标注有其一定的道理。

另一方面,意料之外则是因为LLM毕竟还是模型,用模型自己来finetune模型总觉得会引入bias,在其本身的训练feature没有获得增加的情况下,对于模型效果的最终提升来说总觉得有些不可靠……

不过,anyway,还是让我们言归正传,来看看文中到底是做了怎么样的实验以及得出了怎么样的结论吧。

2. 方法介绍

1. 整体方法说明

首先,我们给出RLHF与RLAIF的完整pipeline示意图如下:

在这里插入图片描述

可以看到,整体来说,RLHF和RLAIF唯一的区别就是将RM模型所需的标注从人工换成了另一个LLM的自动标注结果。

下面,我们来看一下其中具体的细节实现。

对于一个标准的RLHF过程,可以拆解为以下三部分的内容:

  1. Supervised finetuned Model (SFT)

  2. RM model

    使用人工标注结果训练一个二分类模型:

    L = − E ( x , y w , y l ) ∼ D [ l o g σ ( r ϕ ( x , y w ) − r ϕ ( x , y l ) ) ] L = -\mathop{E}\limits_{(x, y_w, y_l) \sim D} [\mathop{log}\sigma(r_{\phi}(x, y_w) - r_{\phi}(x, y_l))] L=(x,yw,yl)DE[logσ(rϕ(x,yw)rϕ(x,yl))]

  3. Reinforce Learning

    m a x θ E [ r ϕ ( y ∣ x ) − β D K L ( π θ R L ( y ∣ x ) ∣ ∣ π S F T ( y ∣ x ) ) ] \mathop{max}\limits{\theta} \mathop{E}[ r_{\phi} (y|x) - \beta \mathop{D}_{KL} (\pi_{\theta}^{RL}(y|x) || \pi^{SFT} (y|x))] maxθE[rϕ(yx)βDKL(πθRL(yx)∣∣πSFT(yx))]

而RLAIF就是将2中的标注结果替换为人工标注的结果,其用于query大模型的prompt示例如下:

在这里插入图片描述

可以看到,文中使用的prompt主要包含四部分的内容:

  1. Preamble
    • 对任务的整体介绍
  2. Few-Shot example
    • optional,一些具体的case样例
  3. query
    • 具体的query,在文中就是summary任务
  4. ending
    • 回答的提示词

但是,实际在实验过程当中,文中发现LLM的回答对于summary的位置信息还是挺敏感的,也就是说当LLM对summary出现的位置具有一定的倾向性,比如说比较倾向于选择先给出的summary这样。

而另一方面,在请求模型时,为了优化模型调用的效果,文中还使用了类似CoT之类的prompt调优的方法。

下图是文中实际使用的LLM进行标注的流程示意图:

在这里插入图片描述

可以看到,这里主要是加入了如下一些变化:

  1. 引入COT方法
  2. 对于输出的结果,分别用两个概率来表示其preference。
  3. 对于每一组summary都query两次,消除其出现位置对模型输出的影响,然后将两次结果进行平均作为最终的输出;

3. 实验结果

下面,我们来看一下文中实际的实验效果。

1. RLHF vs RLAIF

首先,文中给出了人对于RLHF与RLAIF的结果的喜好程度比例如下:

在这里插入图片描述

可以看到:

  • RLHF与RLAIF都超越了SFT模型的生成效果,但是两者相互之间却没有显著的效果差异。

下面是一个具体的生成case展示:

在这里插入图片描述

2. Prompt的影响

下面,我们来考察一下prompt对RLAIF效果的影响。

文中主要研究了三方面的prompt tuning的效果影响:

  1. preamble的准确性
  2. In-Context Learning
  3. CoT

给出文中的实验结果表格如下:

在这里插入图片描述

其中,AI Labeler Aligned表示标注结果与人工标注结果的一致性。

可以看到:

  • Preamble对模型效果的影响最大;
  • CoT同样可以给模型带来一定的效果增益;
  • few-shot (in-context learning)对模型效果并没有什么增益,甚至可能会带来伤害;

3. Self-Consistency

文中还考察一了一下生成结果的self-consistency,具体来说,就是通过调整生成的随机性,然后多次生成进行average作为RM模型的训练数据,实验得到的结果如下:

在这里插入图片描述

可以看到:

  • self-consistency的实验结果并不很好,多次sample取均值之后发现其结果反而有所下降。

文中给出一种猜测可能是由于设置随机性较高之后使得生成质量受到了影响。

4. Labeler Size的影响

文中同样考察了一下Label模型的size对标注结果的影响:

在这里插入图片描述

可以看到:

  • 模型size越大,模型的标注效果越好。

这也是符合直觉的,毕竟模型的size越大,模型的效果越好,对应的标注效果也应该越好。

5. 标注数据的影响

最后,文中还考察了一下随着标注数据的增加,RLHF与RLAIF效果的变化。

在这里插入图片描述

可以看到:

  • RLAIF可以更快速地达到一个较好的水平上,但是随着标注数据的增加,模型效果的提升很快达到了一个瓶颈,不会随着标注数据的增加而持续提升;
  • 而另一方面,RLHF的效果随着标注数据的增加提升的相对较慢,但是会有一个持续的提升趋势。

这个结果也是make sense的,毕竟RLAIF并没有额外的信息输入,只能说是更有效地利用现有训练数据对模型进行训练,因此其效果的提升总是会有一个极限的,而相对的,RLHF则是持续地给模型增加额外的输入特征,因此模型总是可以持续地进行优化的。

但是另一方面,正如文章所说,考虑到所需的数据量和标注成本,RLAIF作为一个替代方案已经足够有效和划算了。

4. 总结 & 思考

综上,我们可以看到,由于当前LLM本身拥有的强大理解能力和效果,用LLM来替换RLHF当中的人工标注部分获得的RLAIF可以获得和人工标注相类似的效果,这个和目前大量的使用LLM来进行标注的工作中的结论是一致的。

然后,同样的,由于LLM本身不会有额外的信息传入,因此虽然RLAIF能够获得超过SFT,并获得和RLHF相当的效果,其效果的上限较之RLHF依然存在一定的差距,只不过要看到相对明显的差距需要大量的标注数据,这个成本是非常可观的,因此整体上来说RLAIF是一个相当好用的RLHF的替代品。

最后,文中还考察了一下标注过程的prompt调优,发现随即因子的引入会伤害模型的表达,另外CoT和好的preamble非常的关键,但是in-context learning则不是那么重要,这个和我们平时的prompt调优的感觉也是相似的。

但尽管如此,prompt工程这方面的结论的可靠性和一致性我个人实在是觉得有点过低了,仿佛炼丹,充满了玄学色彩,感觉还是不太好控制,不知道是不是只有我一个人这么觉得……

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

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

相关文章

SpringCloudGateway网关中各个过滤器的作用与介绍

文章目录 RemoveCachedBodyFilterAdaptCachedBodyGlobalFilterNettyWriteResponseFilterForwardPathFilterRouteToRequestUrlFilterWebSocketRoutingFilterNettyRoutingFilterForwardRoutingFilterDispatcherHandler 是什么?⭐如何确定最后的路由路径?下…

一文拿捏Spring之AOP

Spring 1.Spring的理解 1.狭义上 指SpringFramework,特别的控制反转、依赖注入、面向切面、等特性 2.广义上 Spring家族的一系列产品,像SpringMVC、SpringBoot、SpringCloud等 2.aop 🌟面试题(aop): 简单介绍一下AOP? aop…

【userfaultfd】2021强网杯notebook

程序分析 老规矩,看下启动脚本 开启了 smep、smap、kaslr 保护,当然 kvm64 默认开启 kpti 保护 文件系统初始化脚本 #!/bin/sh /bin/mount -t devtmpfs devtmpfs /dev chown root:tty /dev/console chown root:tty /dev/ptmx chown root:tty /dev/tty…

SAAJ:SOAP with Attachments API for Java

介绍 支持带附件的SOAP消息Java接口(SAAJ:SOAP with Attachments API for Java),定义了一套API,使开发者可以产生、消费遵从SOAP 1.1, SOAP 1.2, 和SOAP Attachments Feature的消息。 2019年SAAJ更改为新的名字&…

MIP精确算法的关键——确定界

目录 1.界是什么? 2. 如何更新上下界 2.1 以分支定界为框架的一系列算法 2.2 benders分解 MIP精确算法包含,分支定界、分支切割、分支定价还有benders分解等等。前者是以分支定界为框架的一类算法;后者是以分解为框架的一类算法。甚至还包…

Springboot学习笔记——1

Springboot学习笔记——1 一、快速上手Springboot1.1、Springboot入门程序开发1.1.1、IDEA创建Springboot项目1.1.2、官网创建Springboot项目1.1.3、阿里云创建Springboot项目1.1.4、手工制作Springboot项目 1.2、隐藏文件或文件夹1.3、入门案例解析1.3.1、parent1.3.2、starte…

嵌入式软件架构基础设施设计方法

大家好,今天分享一篇嵌入式软件架构设计相关的文章。 软件架构这东西,众说纷纭,各有观点。在我看来,软件架构是软件系统的基本结构,包含其组件、组件之间的关系、组件设计与演进的规则,以及体现这些规则的基…

Nginx高级 第一部分:扩容

Nginx高级 第一部分:扩容 通过扩容提升整体吞吐量 1.单机垂直扩容:硬件资源增加 云服务资源增加 整机:IBM、浪潮、DELL、HP等 CPU/主板:更新到主流 网卡:10G/40G网卡 磁盘:SAS(SCSI) HDD(机械…

【C/C++笔试练习】——常量指针和指针常量、结构体内存分配、统计输入的字母个数、排序子序列、倒置字符串

文章目录 C/C笔试练习1.常量指针和指针常量(1)常量指针和指针常量的定义(2)判别常量指针和指针常量(3)常量指针和指针常量的特性 2.结构体内存分配(4)计算结构体大小(5&a…

【计算机】CPU,芯片以及操作系统概述

1.CPU 什么是CPU? CPU(Central Processing Unit)是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,相当于系统的“大脑”。 CPU的工作流程? CPU 的工作流程分为以下 5 个阶段:取指令…

C++ -- 学习系列 关联式容器 set 与 map

一 关联式容器是什么? c 中有两种容器类型:关联式容器与序列式容器(顺序容器) 关联式中的容器是按照关键字来存储与访问的,序列式容器(顺序容器)则是元素在容器中的相对位置来存储与访问的。…

C++标准模板(STL)- 类型支持 ()

对象、引用、函数&#xff08;包括函数模板特化&#xff09;和表达式具有称为类型的性质&#xff0c;它限制了对这些实体所容许的操作&#xff0c;并给原本寻常的位序列提供了语义含义。 附加性基本类型及宏 实现定义的空指针常量 NULL 定义于头文件 <clocale> 定义于…

2.类与对象 拜访对象村

2.1 椅子大战 在图形接口画出正方形、圆形与三角形。当用户选点图形时&#xff0c;图形需要顺时针转360并依据形状的不同播放播放不同的AIF文件。胜者可以坐上名贵宝椅。 面向过程&#xff1a; rotate(shapeNum) {//旋转360 } playSound(shapeNum) {//查询播放哪个AIF文件//播…

嵌入式Linux应用开发-驱动大全-同步与互斥②

嵌入式Linux应用开发-驱动大全-同步与互斥② 第一章 同步与互斥②1.3 原子操作的实现原理与使用1.3.1 原子变量的内核操作函数1.3.2 原子变量的内核实现1.3.2.1 ATOMIC_OP在 UP系统中的实现1.3.2.2 ATOMIC_OP在 SMP系统中的实现 1.3.3 原子变量使用案例1.3.4 原子位介绍1.3.4.1…

pyqt5使用经验总结

pyqt5环境配置注意&#xff1a; 安装pyqt5 pip install PyQt5 pyqt5-tools 环境变量-创建变量名&#xff1a; 健名&#xff1a;QT_QPA_PLATFORM_PLUGIN_PATH 值为&#xff1a;Lib\site-packages\PyQt5\Qt\plugins pyqt5经验2&#xff1a; 使用designer.exe进行设计&#xff1…

Maven - MacOS 快速安装

配置信息 Maven 版本&#xff1a;3.6.3Maven 地址&#xff1a;Index of /dist/maven/maven-3IDEA&#xff1a;2023 Tips&#xff1a;Maven 版本最好不要超过 3.8.0&#xff0c;最新版 Maven 会不兼容一些配置信息。上面的 Maven 地址里可以选择自己想下载的版本&#xff08;这…

【源码】hamcrest 源码阅读及空对象模式、模板方法模式的应用

文章目录 前言1. 类图概览2. 源码阅读2.1 抽象类 BaseMatcher2.1 接口 Description提炼模式&#xff1a;空对象模式 2. 接口 Description 与 SelfDescribing 配合使用提炼模式 模板方法 后记 前言 hamcrest &#xff0c;一个被多个测试框架依赖的包。听说 hamcrest 的源码质量…

【maven】idea中基于maven-webapp骨架创建的web.xml问题

IDEA中基于maven-webapp骨架创建的web工程&#xff0c;默认的web.xml是这样的。 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name…

go语法入门2

字符串 使用双引号或反引号引起来的任意个字符。它是字面常量。 func main() {var a "abc\n测试" // \n换行fmt.Println(a) } abc 测试func main() {var a "abc\n\t测试" \\换行后在tabfmt.Println(a) } abc测试func main() {var a abc测试 …