当前位置: 首页 > news >正文

LLMs之Llama2 70B:《Self-Rewarding Language Models自我奖励语言模型》翻译与解读

LLMs之Llama2 70B:《Self-Rewarding Language Models自我奖励语言模型》翻译与解读

目录

《Self-Rewarding Language Models》翻译与解读

Abstract

5 Conclusion结论

6 Limitations限制


《Self-Rewarding Language Models》翻译与解读

地址

文章地址:https://arxiv.org/abs/2401.10020

时间

2024年1月18日

作者

Weizhe Yuan1,2 Richard Yuanzhe Pang1,2 Kyunghyun Cho2

Sainbayar Sukhbaatar1 Jing Xu1 Jason Weston1,2

1 Meta 2 NYU

总结

论文提出了自我激励语言模型的概念。

背景痛点

>> 传统方式是通过人类偏好训练奖励模型,但人类水平或会限制训练信号质量;

>> 要实现超人智能水平的智能代理体,未来模型需要比人类提供更高质量的反馈信号为训练提供足够的信号。

>> 现有方法常常从人类偏好中训练奖励模型,但这可能受限于人类表现水平;同时这些独立冻结的奖励模型也无法在LLM训练过程中继续学习和提升。

解决方案:本文研究了自我奖励语言模型,其中语言模型本身通过语言模型作为裁判的提问响应方式为自己的训练提供奖励。

>> 让语言模型本身通过LLM-as-a-Judge方式给自己提供奖励,在迭代DPO训练过程中同时提高指令执行能力和提供高质量奖励能力;

>> 将该方法应用于微调Llama 2 70B模型,通过3次迭代训练得到的模型在AlpacaEval 2.0排名榜上超越了许多系统,如Claude 2、Gemini Pro和GPT-4 0613。

>> 采用LLM作为裁判的迭代增强训练方法,不仅可以提升指令执行能力,还可以提升自己提供高质量奖励的能力。

核心特点

>> 语言模型可以自我监督,在训练过程中不断提高奖励质量和自身能力;

>> 相比于传统固定奖励模型,自我激励模型可以在整个训练生命周期中持续学习成长;

>> 旨在打破人类水平限制,培养出超越人类水平的智能代理能力。

优势

>> 相比于从人类样例学习奖励的方法,本文方法允许模型在训练过程中学习如何提供更好的奖励信号

>> 可以自主学习并在指令执行奖励提供两方面都不断提升,实现了模型在双向轴(执行指令和给奖能力)同时提升,目标是自主成长中的智能系统;

>> 开创性地探索了语言模型内部学习机制,为未来模型设计提供了新思路。

总之,本文提出了使语言模型能够利用自己为自己提供奖励信号的自我奖励学习框架, 初步地验证此框架可以使模型在执行任务和评估任务上同时提升,开启了模型在没有外部reward 的情况下自主进化的新可能。

Abstract

We posit that to achieve superhuman agents, future models require superhuman feedback in order to provide an adequate training signal. Current approaches commonly train reward models from human preferences, which may then be bottlenecked by human performance level, and secondly these separate frozen reward models cannot then learn to improve during LLM training. In this work, we study Self-Rewarding Language Models, where the language model itself is used via LLM-as-a-Judge prompting to provide its own rewards during training. We show that during Iterative DPO training that not only does instruction following ability improve, but also the ability to provide high-quality rewards to itself. Fine-tuning Llama 2 70B on three iterations of our approach yields a model that outperforms many existing systems on the AlpacaEval 2.0 leaderboard, including Claude 2, Gemini Pro, and GPT-4 0613. While only a preliminary study, this work opens the door to the possibility of models that can continually improve in both axes.

我们认为,为了实现超人智能体,未来的模型需要超人类的反馈,以提供足够的训练信号。目前的方法通常从人类偏好中训练奖励模型,然后可能受到人类性能水平的瓶颈限制,其次,这些分离的冻结奖励模型在LLM(Language Model)训练过程中无法学习改进。在这项工作中,我们研究了自我奖励语言模型,其中语言模型通过LLM作为裁判的提示在训练过程中提供自己的奖励。结果表明,在迭代DPO(Deep Policy Optimization)训练过程中,不仅指导遵循能力得到提高,而且提供高质量奖励的能力也得到了改善。通过在我们方法的3个迭代上对Llama 2 70B进行微调,得到的模型在AlpacaEval 2.0排行榜上超越了许多现有系统,包括Claude 2、Gemini ProGPT-4 0613。虽然这只是一个初步研究,但这项工作为模型在两个方向上持续改进的可能性敞开了大门。

1 Introduction

Figure 1: Self-Rewarding Language Models. Our self-alignment method consists of two steps: (i) Self-Instruction creation: newly created prompts are used to generate candidate responses from model Mt, which also predicts its own rewards via LLM-as-a-Judge prompting.(ii) Instruction following training: preference pairs are selected from the generated data, which are used for training via DPO, resulting in model Mt+1. This whole procedure can then be iterated resulting in both improved instruction following and reward modeling ability.图1:自我奖励语言模型。我们的自对齐方法包括两个步骤:(i)自我指令创建:使用新创建的提示从模型Mt中生成候选响应,并通过LLM-as-a-Judge提示预测其自身的奖励。(ii)训练后的指令:从生成的数据中选择偏好对,通过DPO进行训练,得到模型Mt+1。然后,整个过程可以迭代,从而提高指令遵循和奖励建模能力。

5 Conclusion结论

We have introduced Self-Rewarding Language Models, models capable of self-alignment via judging and training on their own generations. The method is trained in an iterative manner, where in each iteration the model creates its own preference-based instruction training data. This is done by assigning rewards to its own generations via LLM-as-a-Judge prompting, and using Iterative DPO to train on the preferences. We showed that this training both improves the instruction following capability of the model, as well as its reward-modeling ability across the iterations. While this is only a preliminary study, we believe this is an exciting avenue of research because this means the model is better able to assign rewards in future iterations for improving instruction following – a kind of virtuous circle. While this improvement likely saturates in realistic scenarios, it still allows for the possibility of continual improvement beyond the human preferences that are typically used to build reward models and instruction following models today.

我们介绍了自我奖励语言模型,这是能够通过评判和训练自身生成进行自我调整的模型。该方法以迭代方式训练,每次迭代中模型都会创建自己基于偏好的指导性训练数据。通过LLM作为裁判的提示为自己的生成分配奖励,并使用迭代DPO训练模型的偏好。我们展示了这种训练既提高了模型的指导遵循能力,也改善了模型在迭代过程中的奖励建模能力。虽然这只是一个初步研究,但我们认为这是一个令人兴奋的研究方向,因为这意味着模型更能够在未来的迭代中为改进指导遵循分配奖励,形成一种良性循环。尽管在现实场景中,这种改进可能会饱和,但仍然存在超越当前通常用于构建奖励模型和指导遵循模型的人类偏好的可能性,实现持续改进的可能性。

6 Limitations限制

While we have obtained promising experimental results, we currently consider them pre-liminary because there are many avenues yet to explore, among them the topics of further evaluation, including safety evaluation, and understanding the limits of iterative training.

We showed that the iterations of training improve both instruction following and reward modeling ability, but only ran three iterations in a single setting. A clear line of further research is to understand the “scaling laws” of this effect both for more iterations, and with different language models with more or less capabilities in different settings.

尽管我们获得了令人鼓舞的实验结果,但目前我们认为它们是初步的,因为还有许多待探索的方向,包括进一步评估、包括安全评估以及了解迭代训练的极限等主题。

我们展示了训练的迭代既提高了指导遵循能力,也提高了奖励建模能力,但只在一个设置中运行了三次迭代。进一步研究的一个明确方向是了解这种效果的“扩展法则”,包括更多迭代和在不同设置中具有更多或更少能力的不同语言模型。

While we have evaluated our models using GPT-4 using head-to-head and AlpacaEval 2 leaderboard style evaluation, there are many other automatic evaluation benchmarks that one can measure. Further, we observed an increase in length in model generations, and there is a known correlation between length and estimated quality, which is a topic that should be understood more deeply in general, and in our results in particular as well. It would also be good to understand if so-called “’reward-hacking” can happen within our framework, and in what circumstances. As we are using both a language model as the training reward, and a language model for final evaluation, even if they are different models, this may require a deeper analysis than we have provided. We conducted a preliminary human (author) evaluation, which validated the automatic results that we see, but more detailed human evaluation would be beneficial.

Another clear further avenue of study is to conduct safety evaluations – and to explore safety training within our framework. Reward models have been built exclusively for safety in existing systems [Touvron et al., 2023], and a promising avenue here would be to use the LLM-as-a-Judge procedure to evaluate for safety specifically in our self-rewarding training process. Given that we have shown that reward modeling ability improves over training iterations, this could mean that the safety of the model could potentially improve over time as well, with later iterations being able to capture more challenging safety situations that earlier iterations cannot.

虽然我们使用GPT-4进行了头对头和AlpacaEval 2排行榜风格的评估,但还有许多其他自动评估基准可以测量。此外,我们观察到模型生成长度的增加,并且长度与估计质量之间存在已知的相关性,这是一个通常应更深入了解的主题,特别是在我们的结果中也是如此。还需要了解在我们的框架中是否可能发生所谓的“奖励欺骗”以及在什么情况下会发生。由于我们既使用语言模型作为训练奖励,又使用语言模型进行最终评估,即使它们是不同的模型,这可能需要比我们提供的更深入的分析。我们进行了初步的人类(作者)评估,验证了我们看到的自动结果,但更详细的人类评估将是有益的。

另一个明显的研究方向是进行安全评估,并在我们的框架内探索安全培训。对于现有系统,已经专门为安全性构建了奖励模型[Touvron等人,2023],在这里一个有希望的途径是使用LLM作为裁判的程序专门评估我们的自我奖励训练过程的安全性。鉴于我们已经展示了奖励建模能力随着训练迭代的进行而改善,这可能意味着模型的安全性随时间的推移也有可能改善,后续迭代能够捕捉到前期迭代无法应对的更具挑战性的安全情况。

相关文章:

LLMs之Llama2 70B:《Self-Rewarding Language Models自我奖励语言模型》翻译与解读

LLMs之Llama2 70B:《Self-Rewarding Language Models自我奖励语言模型》翻译与解读 目录 《Self-Rewarding Language Models》翻译与解读 Abstract 5 Conclusion结论 6 Limitations限制 《Self-Rewarding Language Models》翻译与解读 地址 文章地址&#xff1…...

电商小程序06用户审核

目录 1 创建自定义应用2 显示待办数量3 创建审核页面4 开发审核功能5 搭建布局6 最终效果总结 上一篇我们讲解了用户注册的功能,用户注册之后状态是待审核,需要管理员进行审核。通常给管理员提供一套PC端的软件进行相关的操作,在低代码中&…...

vue3跨组件(多组件)通信:事件总线【Event Bus】

★推荐方案:使用 events npm库; 可用范围:vue、react、angular等任何框架都可使用;且使用方式完全一致; 本文仅介绍、讲解对web页面端项目的常用API;通过events实现事件总线功能; event库概述&a…...

教材管理系统

文章目录 教材管理系统一、系统演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 教材管理系统 一、系统演示 教材管理系统 二、项目介绍 语言:nodejs 框架:egg.js、Vue 数据库…...

PV、UV、IP

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1. PV1.1 PV 计算1.2 PV 的影响因素 2. UV2.1 UV 计算2.2UV 的影响因素 3. IP3.1 IP和UV①UV大于IP②UV小于IP 三者的关系PV 和 UV 前言 PV、UV、IP是我们在运…...

ZigBee学习——在官方例程上实现串口通信

Z-Stack版本为3.0.2 IAR版本为10.10.1 文章目录 一、添加头文件二、定义接收缓冲区三、编写Uart初始化函数四、编写串口回调函数五、函数声明六、函数调用七、可能遇到的问题(function “halUartInit“ has no prototype) 以下所有操作都是在APP层进行,也就是这个文…...

nginx添加lua模块

目录 已安装了nginx,后追加lua模块nginx 重新编译知识参考: 从零安装一、首先需要安装必要的库(pcre、zlib、openssl)二、安装LUA环境及相关库 (LuaJIT、ngx_devel_kit、lua-nginx-module)注意:…...

Csapp-chapter3-压栈和弹栈

bp与sp(压栈和弹栈) 在计算机内部的寄存器组中,有一对寄存器非常有意思:%ebp,%esp 文章目录 bp与sp(压栈和弹栈)寄存器组示例图%ebp与%esp总结 寄存器组示例图 首先我们应该对于计算机中的寄存…...

Rust入门1——HelloWorld

文章目录 一、HelloWorld二、控制台输入 以最简单的两个Rust程序例子入门Rust。首先需要下载安装Rust,之后在VSCode或Clion中运行Rust需要下载Rust插件 一、HelloWorld fn main(){println!("Hello World!"); }二、控制台输入 use std::io::stdin; fn …...

android中使用Bitmp对象绘制图形

1、引言 你是否还在因为不懂UI设计而不得不去借用别人的图片,甚至使用各种网图作为界面布局的一部分,那么今天就教你使用Bitmap对象去绘制自定义图形,并保存为png格式的图片,须知图片编辑软件本就是程序员开发出来的,我…...

Linux操作系统基础(八):Linux的vi/vim编辑器

文章目录 Linux的vi/vim编辑器 一、vi/vim编辑器介绍 二、打开文件 三、VIM编辑器的三种模式(重点) 四、命令模式相关命令 五、底行模式相关命令 Linux的vi/vim编辑器 一、vi/vim编辑器介绍 vi是visual interface的简称, 是Linux中最经典的文本编辑器 vi的核心设计思想…...

nginx限制网段访问

文章目录 nginx限制网段访问介绍:使用:示例:介绍网段:nginx限制网段访问 介绍: Nginx的deny和allow指令是由ngx_http_access_module模块提供, Nginx安装默认内置了该模块 使用: nginx访问控制模块: 想禁止哪个ip访问就加上deny IP, 想允许哪个ip访问就加上allow…...

Linux开机自动执行自定义脚本或命令

尝试了多种方法,现总结如下: 在用户登录之前自动执行 1. /etc/init.d/rcS 2. /etc/inittab 在用户登录之后自动执行:下述方法,实际尝试发现,之后再输入用户名和密码后才会自动执行。当如果不需要输入用户名或密码时…...

【Linux】 网络编程套接字

目录 预备知识 网络字节序 网络字节序和主机字节序转换的库函数 socket编程接口 socket常见API sockaddr结构 套接字的种类 预备知识 1.在IP数据包头部中,有两个IP地址,分别叫做源IP地址和目的IP地址。 2.端口号:是传输层协议的内容…...

MATLAB矩阵的操作(第二部分)

师从清风 矩阵的创建方法 在MATLAB中,矩阵的创建方法主要有三种,分别是:直接输入法、函数创建法和导入本地文件中的数据。 直接输入法 输入矩阵时要以中括号“[ ]”作为标识符号,矩阵的所有元素必须都在中括号内。 矩阵的同行元…...

基础面试题整理6之Redis

1.Redis的应用场景 Redis支持类型:String、hash、set、zset、list String类型 hash类型 set类型 zset类型 list类型 一般用作缓存,例如 如何同时操作同一功能 2.redis是单线程 Redis服务端(数据操作)是单线程,所以Redis是并发安全的,因…...

MySQL基础查询篇(7)-常用的字符串函数

MySQL数据库是目前广泛应用于各种系统中的一种关系型数据库管理系统。在MySQL中,有许多常见的字符串函数,可以对字符串进行各种处理和操作。本文将介绍MySQL数据库中常用的一些字符串函数,并提供详细示例。 CONCAT函数:用于将两个…...

如何实现视线(目光)的检测与实时跟踪

如何实现视线(目光)的检测与实时跟踪 核心步骤展示说明 找到人脸 检测人脸特征点 根据特征点找到人眼区域 高精度梯度算法检测瞳孔中心 根据眼睛周边特征点计算眼睛中心 瞳孔中心和眼睛中心基于视线模型计算视线方向 视线方向可视化 详细实现与说明: https://stud…...

STM32 FSMC (Flexible static memory controller) 灵活静态内存控制器介绍

文章目录 1. 介绍FSMC2. FSMC特点3. Block示意图4. AHB接口4.1 Supported memories and transactionsGeneral transaction rulesConfiguration registers 5. 外部设备地址映射5.1 NOR/PSRAM地址映射将NOR Flash/PSRAM的支持进行封装 5.2 NAND/PC Card地址映射 1. 介绍FSMC 说到…...

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书信息维护模块UI设计实现

锋哥原创的PyQt6图书管理系统视频教程: PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…...

SpringBoot源码解读与原理分析(六)WebMvc场景的自动装配

文章目录 2.6 WebMvc场景下的自动装配原理2.6.1 WebMvcAutoConfiguration2.6.2 Servlet容器的装配2.6.2.1 EmbeddedTomcat、EmbeddedJetty、EmbeddedUndertow2.6.2.2 BeanPostProcessorsRegistrar(后置处理器的注册器)2.6.2.3 两个定制器的注册 2.6.3 DispatcherServlet的装配2…...

git恢复rebase过程中遇到权限问题和丢失的提交

文章目录 一、检查丢失的提交是否还在 reflog 中二、创建一个新分支来恢复丢失的提交三、处理权限问题四. 使用 git fsck 查找丢失对象1、创建一个新分支来恢复该提交2、检查和合并提交 五. 介绍git中命令reflog 与 fsck1、git reflog2、git fsck使用场景 一、检查丢失的提交是…...

Spring boot 集成redis

一、使用spring bootspring-boot-starter-data-redis 导入maven包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> spring boot配置文件 spring.re…...

c++ STL系列——(一)概述

引言 在软件开发的世界里&#xff0c;C一直是一门备受青睐的编程语言&#xff0c;特别是在需要高性能和灵活性的场合。而C的标准模板库&#xff08;Standard Template Library&#xff0c;简称STL&#xff09;无疑是这门语言中最强大的工具之一。STL提供了一系列的数据结构和算…...

AI-数学-高中-25-三角函数一图像解决三角函数不等式

原作者视频&#xff1a;【三角函数】【考点精华】1图像解决三角函数不等式问题(基础&#xff09;_哔哩哔哩_bilibili 1.三角函数图像法&#xff1b; 2.不好画图像时&#xff1a;任意角的三角函数图像&#xff0c;在象限中比较&#xff0c;在4个象限中寻找角度的关系。 示例1…...

在Ubuntu上安装JetBrains Toolbox并解决libfuse.so.2依赖问题

在安装JetBrains Toolbox的过程中&#xff0c;我们遇到了libfuse.so.2依赖缺失的问题。这个问题通常发生在尝试运行AppImage格式的程序时&#xff0c;如果系统缺少必要的FUSE&#xff08;Filesystem in Userspace&#xff09;支持。以下是我在解决这个问题并在Ubuntu上成功安装…...

在vscode上传项目到gitee

一、在Gitee上新建一个仓库 Tip&#xff1a;若已经创建过了&#xff0c;直接跳到第二部分看VsCode如何上传代码到Gitee 创建仓库比较简单&#xff0c;下面两张图就是整个过程&#xff0c;这里不在赘述&#xff0c;具体如下&#xff1a; 二、VsCode连接Gitee上创建的仓…...

比较两次从接口获取的数据,并找出变动的字段

问题&#xff1a;有这么一个接口数据&#xff0c;每次会返回这么一个数据: [{Id:1,pending:65,queued:0,completed:0},{Id:2,pending:0,queued:0,completed:0}]&#xff0c;请问再次请求这个接口的时候如何将获取的数据和上一次获取到的数据进行比较&#xff0c;找出变动的字段…...

Java并发基础:LinkedBlockingDeque全面解析!

内容概要 LinkedBlockingDeque提供了线程安全的双端队列实现&#xff0c;它支持在队列两端高效地进行插入和移除操作&#xff0c;同时具备阻塞功能&#xff0c;能够很好地协调生产者与消费者之间的速度差异&#xff0c;其内部基于链表结构&#xff0c;使得并发性能优异&#x…...

Zabbix6.x配置中文界面 解决乱码问题

Zabbix6.x配置中文界面 解决乱码问题 Zabbix6.x界面无法选择中文&#xff0c;通过安装语言包解决。后面也解决了zabbix6中文方块&#xff08;乱码&#xff09;问题。 配置中文语言包 系统中默认没有携带中文语言包&#xff0c;可以通过以下命令查看 localectl list-locales #…...