什么是从人类反馈中强化学习(RLHF)?

目录

一、什么是RLHF?

二、语言作为强化学习问题

三、用于语言模型的RLHF

四、ChatGPT如何使用RLHF

五、RLHF对语言模型的限制


自从OpenAI公司发布ChatGPT以来,人们对大型语言模型(LLM)的这一重大进步感到兴奋。虽然ChatGPT与其他最先进的大型语言模型大小相同,但其性能要高得多,并且承诺支持新的应用程序或颠覆取代原有的应用程序。

ChatGPT的惊人表现背后的主要原因之一是得益于其训练技术:从人类反馈中强化学习(RLHF)。虽然RLHF在大型语言模型方面已经展现了令人印象深刻的结果,但可以追溯到发布的首个GPT,而首个GPT应用程序并不是用于自然语言处理。

以下是人们需要了解的关于RLHF以及它如何应用于大型语言模型的知识。

一、什么是RLHF?

强化学习(RL)是机器学习的一个领域,其中代理通过与环境的交互来学习策略。代理采取行动(包括什么都不做)。这些行动会影响代理所处的环境,而环境进而转换到新的状态并返回奖励。奖励是使强化学习代理能够调整其行动策略的反馈信号。当代理进行训练时,它会调整自己的策略,并采取一系列行动,使其回报最大化。

设计正确的奖励系统是强化学习的关键挑战之一。在某些应用中,奖励将会延迟很久。考虑一个用于下国际象棋的强化学习代理,只有在击败对手后才能获得积极的奖励,这可能需要下数十步棋才获得。在这种情况下,代理将会浪费大量的初始训练时间随机移动,直到它偶然发现获胜的组合。在其他应用程序中,奖励甚至不能用数学或逻辑公式来定义(当讨论语言模型时,将会详细讨论这一点)。

来自人类反馈的强化学习通过将人类纳入训练过程来增强强化学习代理的训练,这有助于解释奖励系统中无法衡量的元素。

为什么不总是用RLHF?首先,其扩展性很差。一般来说,机器学习的一个重要优势是它能够随着计算资源的可用性进行扩展。随着计算机发展得越来越快,数据变得越来越可用,因此能够以更快的速度训练更大的机器学习模型,而依赖人类训练强化学习系统成为瓶颈。

因此,大多数RLHF系统依赖于自动化系统和人工提供的奖励信号的组合。计算奖励系统为强化学习代理提供主要反馈。人类管理者或者偶尔提供额外的奖励/惩罚信号,或者提供训练奖励模型所需的数据。

RLHF的示例

假设创造一个烹饪披萨饼的机器人,可以将一些可测量的元素整合到自动奖励系统中(例如,披萨饼的厚度、酱汁和奶酪的数量等)。但为了确保披萨美味可口,需要人类品尝,并在训练过程中为机器人烹饪的披萨饼打分。

二、语言作为强化学习问题

大型语言模型已被证明非常擅长于多种任务,包括文本摘要、问题回答、文本生成、代码生成、蛋白质折叠等等。在非常大的范围内,大型语言模型可以进行零样本和小样本学习,完成它们没有受过训练的任务。Transformer模型(大型语言模型中使用的架构)的一大成就是它能够通过无监督学习进行训练。

然而,尽管大型语言模型取得了令人着迷的成就,但它们与其他机器学习模型有着共同的基本特征。它们的核心是非常大的预测机器,旨在猜测序列中的下一个令牌(提示符)。在一个非常大的文本语料库上训练,大型语言模型开发了一个数学模型,可以产生(大部分)连贯和一致的长文本。

语言的最大挑战在于,在很多情况下,提示有很多正确答案。但是,根据大型语言模型的用户、应用程序和场景的不同,并不是这些方法都是可取的。不幸的是,大型文本语料库上的无监督学习并不能使模型与它将用于的所有不同应用程序保持一致。

幸运的是,强化学习可以帮助大型语言模型朝着正确的方向前进。但首先把语言定义为强化学习问题:

  • 代理:语言模型是强化学习代理,必须学习创建最佳文本输出。
  • 动作空间:动作空间是大型语言模型可以生成的可能语言输出的集合(非常大)。
  • 状态空间:环境的状态包括用户提示和大型语言模型的输出(非常大)。
  • 奖励:奖励衡量大型语言模型的响应与应用程序场景和用户意图的一致性。

上述强化学习系统中的所有元素都是微不足道的,除了奖励系统。与下国际象棋、围棋甚至机器人问题不同,奖励语言模型的规则并没有很好地定义。幸运的是,在RLHF的帮助下,可以为语言模型创建良好的奖励系统。

三、用于语言模型的RLHF

语言模型的RLHF由三个阶段组成。首先,从一个预先训练好的语言模型开始,这是非常重要的,因为大型语言模型需要大量的训练数据。用人类的反馈从零开始训练它们几乎是不可能的。通过无监督学习预训练的大型语言模型已经有了坚实的语言模型,并将创建连贯的输出,尽管其中一些或许多可能与用户的目标和意图不一致。

在第二阶段,为强化学习系统创建了一个奖励模型。在这个阶段,训练另一个机器学习模型,它接受主要模型生成的文本,并生成质量分数。第二个模型通常是另一个大型语言模型,它已被修改为输出标量值而不是文本标记序列。

为了训练奖励模型,必须创建一个由大型语言模型生成的文本标记为质量的数据集。为了组成每个训练示例,给主要的大型语言模型一个提示,并让它生成几个输出。然后,让评估人员对生成的文本进行从最好到最差的排序。然后,训练奖励模型来预测大型语言模型文本的分数。通过训练大型语言模型的输出和排名分数,奖励模型创建了人类偏好的数学表示。

在最后阶段,创建了强化学习循环。主要大型语言模型的副本成为强化学习代理。在每个训练集中,大型语言模型从训练数据集中获取几个提示并生成文本。然后,它的输出被传递给奖励模型,奖励模型提供一个分数来评估其与人类偏好的一致性。大型语言模型随后被更新,以创建在奖励模型中得分更高的输出。

虽然这是RLHF用于语言模型的通用框架,但不同的实现也会进行修改。例如,由于更新主要的大型语言模型的成本非常昂贵,机器学习团队有时会冻结它的许多层以降低训练成本。

RLHF对语言模型的另一个考虑是保持奖励优化和语言一致性之间的平衡。奖励模式是对人类偏好的不完美近似。像大多数强化学习系统一样,代理大型语言模型可能会找到一条捷径,在违反语法或逻辑一致性的同时最大化奖励。为了防止发生这种情况,机器学习工程团队在强化学习循环中保留了原始大型语言模型的副本。原始大型语言模型输出与强化学习训练的大型语言模型输出的输出之间的差异(也称为KL散度)作为负值集成到奖励信号中,以防止模型与原始输出偏离太多。

四、ChatGPT如何使用RLHF

OpenAI公司还没有公布ChatGPT的技术细节。但是可以从有关ChatGPT博客文章和InstructGPT的详细信息中了解很多内容,而InstructGPT也使用RLHF。

ChatGPT使用以上描述的通用RLHF框架,并进行了一些修改。在第一阶段,工程师们对预先训练好的GPT-3.5模型进行了“监督微调”。他们雇佣了一组人类作家,并要求他们对一系列提示给出答案。他们使用提示答案对数据集来微调大型语言模型。据报道,OpenAI公司在这些数据上花费了大量资金,这也是ChatGPT优于其他类似大型语言模型的部分原因。

在第二阶段,OpenAI公司根据标准程序创建了奖励模型,对提示生成多个答案,并由人工注释器对其进行排序。

在最后阶段,使用近端策略优化(PPO) 强化学习算法来训练主要的大型语言模型。OpenAI公司没有提供进一步的细节,例如它是否冻结了模型的任何部分,或者它如何确保强化学习训练的模型不会偏离原始分布太多。

ChatGPT的训练流程

五、RLHF对语言模型的限制

虽然RLHF是一种非常有效的技术,但它也有一些局限性。人工劳动总是成为机器学习管道的瓶颈。人工标记数据缓慢成本昂贵,这就是无监督学习一直是机器学习研究人员长期追求的目标的原因。

在某些情况下,可以从机器学习系统的用户那里获得免费标签。这就是在ChatGPT和其他类似的大型语言模型界面中看到的赞成/反对投票按钮的作用。另一种技术是从在线论坛和社交网络中获取标记数据。例如,许多Reddit帖子都是以问题形式发布的,最佳的答案会得到更高的支持率。然而,这样的数据集仍然需要清理和修改,但这样做成本昂贵并且缓慢,而且也不能保证所需要的数据在一个在线来源中就能得到。

大型科技公司和资金雄厚的实验室(例如OpenAI和DeepMind)有能力投入巨资创建特殊的RLHF数据集。但规模较小的企业将不得不依赖开源数据集和网络抓取技术。

RLHF也不是完美的解决方案。人类的反馈可以帮助大型语言模型避免产生有害或错误的结果,但人类的偏好并不是明确的,永远不可能创造符合所有社会和社会结构的偏好和规范的奖励模式。

然而,RLHF提供了一个框架,可以更好地将大型语言模型与人类保持一致。到目前为止,已经看到RLHF与ChatGPT等通用模型结合在一起工作,而RLHF将成为一种非常有效的技术,用于优化特定应用的大型语言模型。

原文标题:What is reinforcement learning from human feedback (RLHF)?,作者:Ben Dickson


相关领域拓展:(技术前沿)

扯个嗓子!关于目前低代码在技术领域很活跃!

低代码是什么?一组数字技术工具平台,能基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务等。通过少量代码或不用代码实现数字化转型中的场景应用创新。它能缓解甚至解决庞大的市场需求与传统的开发生产力引发的供需关系矛盾问题,是数字化转型过程中降本增效趋势下的产物。

这边介绍一款好用的低代码平台——JNPF快速开发平台。近年在市场表现和产品竞争力方面表现较为突出,的是最新主流前后分离框架(SpringBoot+Mybatis-plus+Ant-Design+Vue3。代码生成器依赖性低,灵活的扩展能力,可灵活实现二次开发。

以JNPF为代表的企业级低代码平台为了支撑更高技术要求的应用开发,从数据库建模、Web API构建到页面设计,与传统软件开发几乎没有差异,只是通过低代码可视化模式,减少了构建“增删改查”功能的重复劳动,还没有了解过低代码的伙伴可以尝试了解一下。

应用:https://www.jnpfsoft.com/?csdn

有了它,开发人员在开发过程中就可以轻松上手,充分利用传统开发模式下积累的经验。所以低代码平台对于程序员来说,有着很大帮助。

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

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

相关文章

数据可视化——根据提供的数据,将数据经过处理后以折线图的形式展现

文章目录 前言处理数据获取数据筛选数据将JSON数据转换为Python数据筛选出横坐标数据和纵坐标数据 根据处理后的数据绘制折线图整体代码展示 前言 前面我们学习了如何使用 pyecharts 模块绘制简单的折线图,那么今天我将为大家分享,如何根据提供的数据将…

【JavaScript 03】语句 变量 变量提升 标识符 注释 区块 作用域 条件语句 循环语句 break continue 标签

JS 语句变量变量提升标识符注释区块条件语句ifif...elseswitch三元运算符 ?: 循环语句whilefordo...whilebreak语句 and continue语句标签 语句 JS程序的执行单位是行(line) **语句(statement)**是为了完成特定任务而进行的操作…

STM32(HAL库)驱动SHT30温湿度传感器通过串口进行打印

目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 软件IIC引脚配置 2.3 串口外设配置 2.4 项目生成 3、KEIL端程序整合 3.1 串口重映射 3.2 SHT30驱动添加 3.3 主函数代 3.4 效果展示 1、简介 本文通过STM32F103C8T6单片机通过HAL库…

【25】SCI易中期刊推荐——神经网络科学(中科院4区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

Docker 基本管理与应用

目录 一、Docker介绍 1、docker概述 2、容器优势 3、Docker与虚拟机的区别 4、Docker核心概念 二&#xff1a; 安装 Docker 1、环境准备、安装依赖包 2、 设置阿里云镜像源&#xff0c;安装 Docker-CE并设置为开机自动启动 3、信息查看 ​三&#xff1a;Docker 镜像操作…

【数据结构常见七大排序(三)上】—交换排序篇【冒泡排序】And【快速排序】

目录 前言 1.冒泡排序 1.1冒泡排序动图 1.2冒泡排序源代码 1.3冒泡排序的特性总结 2.快速排序&#x1f451; 2.1hoare版本实现思想 排序前 排序中 排序后 2.2hoare版本快排源代码 2.3分析先走 情况1&#x1f947; 情况2&#x1f948; 前言 交换类排序两个常见的排…

包的使用及其创建

文章目录 前言类名冲突完整的类路径创建包导入类包总结 前言 java语言中&#xff0c;包在整个管理过程中发挥了重要的作用。使用包&#xff0c;可以有效地管理繁多的类文件&#xff0c;解决了类名重复的问题。在类中应用包和权限修饰符&#xff0c;可以控制他人对类成员的方法的…

【Jenkins】Jenkins构建前端流水线

目录 一、前言二、新建前端流水线1、点击新建任务2、填写流水线名称&#xff08;这里我选择的是自由风格的软件项目&#xff09;&#xff0c;任务名称一般格式为&#xff1a;项目名称-前后端3、创建成功后的结果 三、配置前端流水线1、进入刚创建好的任务页面中&#xff0c;点击…

Grafana_数据可视化工具

目录 一、简介 二、安装部署 1、下载 2、安装 3、启用 三、使用简介 1、添加数据源 2、创建DashBoard 3、查看dashboard 4、选择查看的时间段 5、阈值颜色控制 源码等资料获取方法 一、简介 Grafana是一个跨平台开源的纯html/js编写的度量分析和可视化工具&#x…

Meta提出全新参数高效微调方案,仅需一个RNN,Transformer模型GPU使用量减少84%!

近来&#xff0c;随着ChatGPT和GPT-4模型的不断发展&#xff0c;国内外互联网大厂纷纷推出了自家的大语言模型&#xff0c;例如谷歌的PaLM系列&#xff0c;MetaAI的LLaMA系列&#xff0c;还有国内公司和高校推出的一些大模型&#xff0c;例如百度的文心一言&#xff0c;清华的C…

Linux——认识Linux的目录结构 常用命令 vim命令 权限及其控制

目录 linux的目录结构常用linux的命令ls(list)和llcd 切换目录mkdir 创建文件夹touch命令&#xff1a;创建普通文本文件pwd 显示路径whoamisu&#xff1a;普通--超级账号man&#xff1a;查看手册rm&#xff1a;删除网络命令ifconfig重定向 >>cat 查看文本文件clear清屏hi…

kubernetes中特定域名使用自定义DNS服务器出现的解析异常

故障发生背景&#xff1a; 租户反馈生产业务服务连接到中间件的时候&#xff0c;偶尔会有连接失败的情况&#xff0c;然后我们查看对应组件服务正常&#xff0c;手动请求组件服务也显示正常&#xff0c;让租户查看业务服务日志发现报错无法解析对应的域名&#xff0c;我们手动是…

MySQL高阶语句

文章目录 一.常用查询1.按关键字排序&#xff08;ORDER BY 语句&#xff09;1.1 语法格式1.2 ASC和DESC的排序概念1.3 举例1.3.1 数据库有一张info表&#xff0c;记录了学生的id&#xff0c;姓名&#xff0c;分数&#xff0c;地址和爱好1.3.2 按分数排序&#xff0c;默认不指定…

springmvc @RequestMapping注解中produces以及consumes属性的含义(转载请删除括号里的内容)

http协议基础知识 首先需要了解什么叫MediaType&#xff08;媒体类型&#xff09;&#xff1f; 通俗来说&#xff0c;在http协议中&#xff0c;用来表示传输内容的格式就是MediaType&#xff0c;比如text/html&#xff0c;application/json等&#xff0c;其中text代表介质&am…

Python调用ImageMagick生成PDF文件缩略图

使用Python调用ImageMagick生成PDF文件缩略图 Imagemagick使用Ghostscript作为其依赖项之一&#xff0c;以便能够处理和转换PDF相关的图像。 准备 安装Ghostscript&#xff0c;网站安装ImageMagick&#xff0c;网站 安装完毕后&#xff0c;需要自行配置环境路径 脚本 使用示…

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升

专题一 空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二 ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化&#xff1a;地图符号与注…

vue-cli多页面配置(vue2.0)

目录 概述 多页面的配置 步骤1&#xff1a;编写配置文件 vue.config.js 步骤2&#xff1a;在src目录下创建目录pages 步骤3&#xff1a;创建HTML文件&#xff08;主组件挂载点&#xff09; 测试 完毕&#xff0c;总结 概述 我们知道使用vue脚手架vue-cli创建的项目默认是…

1haclon 简单操作

文章目录 *读取图片 read_image(Image,claudia) *转换为灰度 rgb1_to_gray(Image,GrayImage)阈值分割 区域连接 获取最衣服 *读取图片 read_image(Image,claudia) *转换为灰度 select_shape (Connection, SelectedRegions, area, and, 40963.3, 44724.8) rgb1_to_gray(Image,Gr…

Redis远程字典服务

目录 前言 1.NoSQL 1.1NOSQL和关系型数据库比较 1.2非关系型数据库的优势 1.3关系型数据库的优势 ​编辑 2.主流的NOSQL产品 键值(Key-Value)存储数据库 列存储数据库 文档型数据库 图形(Graph)数据库 3.Redis简介 redis的应用场景 4.命令操作 4.1字符串类型 s…

zabbix监控自己

目录 一、实验环境准备 二、server端 1、配置阿里云yum源 2、部署lamp环境 3、启动lamp对应服务 4、准备java环境 5、源码安装zabbix 6、mariadb数据库授权 7、创建zabbix程序用户并授权防止权限报错 8、修改zabbix配置文件 9、配置php与apache 10、web安装zabbix …