大模型+强化学习_精典方法_RLHF

英文名称:Deep Reinforcement Learning from Human Preferences  
中文名称:从人类偏好中进行深度强化学习
链接:https://arxiv.org/abs/1706.03741
作者:Paul F Christiano, Jan Leike, Tom B Brown...
机构:OpenAI, DeepMind
日期:2017-06-12 v1

1 读后感

RLHF 是 LLM 的重要组成部分。这篇论文早在 2017 年 OpenAI 和 DeepMind 联合发表的,他主要是为优化强化学习(RL)而设计的方法,主要在游戏领域进行实验,更多讨论机器人场景。

强化学习常用于解决真实世界中的复杂问题。以往的强化学习需要定义奖励函数,而 RLHF 使用了普通人定义的问答对来提供不到 1% 代理与环境交互反馈,从而大大降低了人工监督的成本。

其原理是:没有绝对评分,但有相对的更好。

先不考虑大语言模型,只考虑强化学习本身。这里讨论的是如何将机器在环境中的自主探索和人工指导结合起来。如果把 agent 比作一个学生,那么 reward 函数就扮演了教师的角色。文中提出的方法并不直接告诉学习应该怎么做,而是在可选的几种可能性中指示哪种更好。

再看 RL 与大语言模型的关系。像训练大模型时,训练数据和真实世界分布一定不同。在这种情况下,如何在可能的多个生成中选择人类更喜欢的呢?RLHF 就解决了这个问题。它利用了 RL 的策略选择和人类反馈训练的奖励函数来优化模型。

另一个我喜欢这篇文章的原因是,它还介绍了很多其他很棒的方法,可以拓宽我们的思路。

2 摘要

目的:为了解决强化学习系统在与真实世界环境交互时需要理解复杂目标的问题。

方法:研究使用了以非专家人类偏好为基础的目标定义方法,将轨迹片段进行比较。通过这种方法,在没有访问奖励函数的情况下,成功地解决了包括 Atari 游戏和模拟机器人运动在内的复杂强化学习任务。与环境交互时,只需对代理机器人与环境进行少于 1% 次数的反馈。

实验结果:实验结果表明,该方法可以降低人工监督成本,并能够实际应用于最先进的强化学习系统中。此外,该方法还具有很大灵活性,在仅使用大约一小时的人工时间内就能成功训练出复杂且新颖的行为。这些行为和环境比以往任何从人类反馈中学到的都更加复杂。

3 引言&相关工作

许多任务涉及复杂、定义不明确或难以指定的目标。假设我们想使用强化学习来训练机器人打扫桌子或炒鸡蛋,目前尚不清楚如何构建合适的奖励函数

如果我们有所需任务的演示,可以使用逆强化学习提取奖励函数。然后,可以使用此奖励函数来训练具有强化学习的智能体。更直接地说,我们可以使用模仿学习来克隆展示的行为。但这种方法不适用于没见过、过于复杂或无法列举的场景。

另一种方法是允许人类提供有关我们系统当前行为的反馈,并以此反馈来定义任务。但这会给人带来很大工作量。

文中提出的方法是从人类反馈中学习奖励函数,然后优化该奖励函数。奖励函数需要:

  • 能够解决那些只能识别出期望的行为,但不一定能展示出来的任务。
  • 允许非专家用户教导智能体。
  • 能够扩展到大规模的问题。
  • 更为经济和有效地利用用户反馈方面。

算法根据人类的偏好拟合奖励函数,并通过训练策略来优化当前预测的奖励函数。这样,人们只需提供相对偏好(更喜欢 A 还是 B),而无需提供具体分数。

相关的研究还包括:逆强化学习(Finn 等人,2016)、模仿学习(Ho 和 Ermon,2016;Stadie 等人,2017)、半监督技能泛化(Finn 等人,2017)以及从演示中引导强化学习(Silver 等人,2016;Hester 等人,2017)。它们都是将机器自主学习和人工指导相结合的方法。

4 方法

假设有一个人类监督者可以表达轨迹段之间的偏好,轨迹段是一系列观测值和操作。

|500

|500

这里同时训练了策略模型和奖励模型,它们都使用深度学习网络实现。网络通过三个步骤进行更新:

  • 策略与环境相互作用,生成一组轨迹。然后使用传统的强化学习算法更新参数,以最大化预测奖励的总和。
  • 从上一步生成的轨迹中选择成对的片段 o1 和 o2,将它们发送给人类进行比较。
  • 使用监督学习优化奖励模型的参数,以适应从人类那里收集到的比较结果。

以上过程是异步运行的。与传统的强化学习(图中下面部分)相比,这里加入了人工反馈和奖励模型的训练(图中上面部分)。

4.1 优化策略

理论上,RLHF 方法可以利用任何强化学习方法来实现。本文实验选择了 A-C 方法中的 TRPO 作为实现 RLHF 方法的方式。

鉴于 PPO 论文是在 2017 年发表的,因此在大型模型中,通常会使用更具鲁棒性的 PPO 方法来实现强化学习策略,例如 GPT。

4.2 偏好诱导

在实验中,研究人员以短片剪辑的形式向参与者展示了两个轨迹段的可视化图像。这些片段的长度介于 1 到 2 秒之间。参与者需要表明他们对于这两个片段有哪种偏好:更喜欢其中一个、认为两者一样好或者无法进行比较。

人类的判断被记录在一个三元组的数据库 (o1,o2,µ) ,其中 o1 和 o2 是两个段, µ 指示用户更喜欢哪段。如果人类选择一个部分作为可取的,那么 µ 就将其所有质量都放在该选择上。如果人类将这些段标记为同样可取,则 µ 是均匀的。最后,如果人类将这些段标记为不可比,则比较不包括在数据库中。

4.3 拟合奖励函数

如果我们将 r 视为影响人类判断的潜在因素,并假设人类对片段 oi 的偏好概率取决于潜在奖励在片段长度上的累积值的指数,那么我们可以将奖励函数估计 r 视为一个偏好预测器。

最小化这些预测与实际人类标签之间的交叉熵损失

遵循 Bradley-Terry 模型,将奖励等同于偏好排名量表,两个轨迹段的预测奖励差异估计了人类选择其中一个而不是另一个的概率

4.4 选择查询

从大量的轨迹片段中抽取出一对一对的片段,然后用的奖励模块去预测人更偏好哪一段轨迹。最后,我们选择那些预测结果在各个预测工具中差异最大的轨迹(明显更好的轨迹)。

5 实验

在 TensorFlow 中实现了我们的算法。通过 OpenAI Gym 与 MuJoCo 和 Arcade 学习环境(进行交互。

5.1 模拟机器人

在第一组实验中,我们尝试解决深度强化学习的一系列基准任务,而不观察真正的奖励。相反,智能体只能通过询问人类哪个轨迹段更好来了解任务的目标。我们的目标是在合理的时间内使用尽可能少的查询来解决任务。

实验还将真实奖励与 RL 训练的基线进行了比较。我们旨在依靠更稀缺的反馈,在没有获得奖励信息的情况下做得几乎和 RL 一样好。需要注意的是,真实人类提供的反馈有可能胜过 RL,因为人类反馈可能提供更好的奖励。

5.2 雅达利

第二组任务是街机学习环境中的一组七款雅达利游戏。这个实验结果是:对于不同的任务,不同方法各有优势。

(复杂任务中,RL 经过多轮自学,效果常常更好,比如下棋)

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

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

相关文章

数据结构从入门到精通——快速排序

快速排序 前言一、快速排序的基本思想常见方式通用模块 二、快速排序的特性总结三、三种快速排序的动画展示四、hoare版本快速排序的代码展示普通版本优化版本为什么要优化快速排序代码三数取中法优化代码 五、挖坑法快速排序的代码展示六、前后指针快速排序的代码展示七、非递…

英特尔生态的深度学习科研环境配置-A770为例

之前发过在Intel A770 GPU安装oneAPI的教程,但那个方法是用于WSL上。总所周知,在WSL使用显卡会有性能损失的。而当初买这台机器的时候我不在场,所以我这几天刚好有空把机器给重装成Ubuntu了。本篇不限于安装oneAPI,因为在英特尔的…

什么是PLC物联网关?PLC物联网关有哪些功能?

在数字化浪潮的推动下,工业物联网(IIoT)正逐步成为推动制造业智能化转型的关键力量。而在这一变革中,PLC物联网关扮演着至关重要的角色。今天,就让我们一起走进PLC物联网关的世界,了解它的定义、功能&#…

41-Vue-webpack基础

webpack基础 前言什么是webpackwebpack的基本使用指定webpack的entry和output 前言 本篇开始来学习下webpack的使用 什么是webpack webpack: 是前端项目工程化的具体解决方案。 主要功能:它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览…

机器学习 - 准备数据

“Data” in machine learning can be almost anything you can imagine. A table of big Excel spreadsheet, images, videos, audio files, text and more. 机器学习其实可以分为两部分 将不管是什么data,都转成numbers.挑选或者建立一个模型来学习这些numbers …

js模版字符串-标签模版

模版字符串 js模版字符串使用来创建模版字符串字面量,例如 const name "yu" console.log(hello ${name})很多人都知道。但是其实我们可以定义标签函数来自定义返回结果。 标签函数 带标签的模板是模板字面量的一种更高级的形式,它允许你使…

阿里云ecs服务器配置反向代理上传图片

本文所有软件地址: 链接:https://pan.baidu.com/s/12OSFilS-HNsHeXTOM47iaA 提取码:dqph 为什么要使用阿里云服务器? 项目想让别人通过外网进行访问就需要部署到我们的服务器当中 1.国内知名的服务器介绍 国内比较知名的一些…

什么是行业垂直类媒体?有哪些?怎么邀约

传媒如春雨,润物细无声,大家好,我是51媒体胡老师。 行业垂直类媒体是聚焦于特定行业或领域的媒体平台。 行业垂直类媒体不同于主流媒体,它们专注于提供与某个特定领域相关的深入内容和服务,例如商业新闻、旅游、数字…

seleniumUI自动化实例(登录CSDN页面)

今天分享一个CSDN登录模块的登录场景 1.配置文件 CSDNconf.py: from selenium import webdriver options webdriver.ChromeOptions() options.binary_location r"D:\Program Files\360\360se6\Application\360se.exe" # 360浏览器安装地址 driver w…

C++ Qt开发:QUdpSocket实现组播通信

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信…

MyBatis3源码深度解析(十七)MyBatis缓存(一)一级缓存和二级缓存的实现原理

文章目录 前言第六章 MyBatis缓存6.1 MyBatis缓存实现类6.2 MyBatis一级缓存实现原理6.2.1 一级缓存在查询时的使用6.2.2 一级缓存在更新时的清空 6.3 MyBatis二级缓存的实现原理6.3.1 实现的二级缓存的Executor类型6.3.2 二级缓存在查询时使用6.3.3 二级缓存在更新时清空 前言…

Nginx 的安装、启动和关闭

文章目录 一、背景说明二、Nginx 的安装2.1、依赖的安装2.2、Nginx 安装2.3、验证安装 三、启动 Nginx3.1、普通启动3.2、如何判断nginx已启动3.3、通过配置启动3.4、设置开机启动 四、关闭 Nginx4.1、优雅地关闭4.2、快速关闭4.3、只关闭主进程4.4、使用nginx关闭服务 五、重启…

计算机网络:数据交换方式

计算机网络:数据交换方式 电路交换分组交换报文交换传输对比 本博客介绍计算机之间数据交换的三种方式,分别是电路交换、分组交换以及报文交换。 电路交换 我们首先来看电路交换,在电话问世后不久,人们就发现要让所有的电话机都…

Springboot-软件授权License

无意中看到了一个简单方便的授权方式,只需几步就可集成到boot项目中。 先上地址:smart-license: 保护个人与企业的软件作品权益,降低盗版造成的损失。PS:因个人精力有限,不再提供该项目的咨询答疑服务。 Smart-licen…

【小米汽车SU7实测】 小米汽车su7到底行不行?小米新能源轿车体验感怎么样?

小米汽车SU7是小米汽车的首款车型,定位“C级高性能生态科技轿车”,也是小米迈入新能源赛道的首次成果落地。 首先,让我们来谈谈它的性能。试驾过程中,小米SU7展现出了惊人的加速能力,0-100km/h加速仅需2.78秒&#xf…

pytest全局配置+前后只固件配置

pytest全局配置前后只固件配置 通过读取pytest.ini配置文件运行通过读取pytest.ini配置文件运行无条件跳过pytest.initest_mashang.pyrun.py 有条件跳过test_mashang.py pytest框架实现的一些前后置(固件、夹具)处理方法一(封装)方…

Kafka总结问题

Kafka Kafka Kafka Kafka的核心概念/ 结构 topoic Topic 被称为主题,在 kafka 中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为 topic。topic 相当于消息的分配标签,是一个逻辑概念。主题好比是数据库的表&#xff0…

C++进阶之路---C++11相关特性 | 左值引用 | 右值引用 | 完美转发

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之…

全球大型语言模型(LLMS)现状与比较

我用上个博文的工具将一篇ppt转换成了图片,现分享给各位看官。 第一部分:国外大语言模型介绍 1,openai的Chatgpt 免费使用方法1:choose-carhttps://share.freegpts.org/list 免费使用方法2:Shared Chathttps://share…

【Java】Map和Set

文章目录 一、Map和Set的概念二、模型三、Map的说明3.1 Map.Entry<K, V>的说明3.2 Map 的常用方法 四、Set的说明4.1 Set的常用方法 一、Map和Set的概念 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关&#xff0c…