基于人类反馈的强化学习(RLHF)在LLM领域是如何运作的?

news2024/11/25 2:59:13

基于人类反馈的强化学习在LLM领域是如何运作的?

  • 为什么需要强化学习
  • RLHF
    • Pre-training model
    • Reward Model
    • Fine-tune with RL
  • 参考

为什么需要强化学习

指标无法衡量。在过去的nlp任务中,词性标注、机器翻译、语义判别等任务是nlp任务的主力军,然而这些任务基于规则的评估指标(如 BLEU 和 ROUGE)不能与在问答系统中人类想要的结果做对齐。

顺序决策是必要的。我们在寻求一个答案或者一个决策的时候,枉枉不可能一蹴而就,需要一步一步来(把大象装进冰箱需要几步),与CoT的观点不谋合。
但是当我们与聊天机器人去一步步互动(agent与环境)的时候,我们不知道什么样的答案是最好的,但是可以用一些学习的策略,去验证它是好是坏,比如说agent与环境交互(我们像chatgpt提问),agent反馈了一个action(next token 或者 下一组tokens),然后通过奖励模型(也可以是LLM),得到一个好坏的评分,强化学习的目标就是最大化这个奖励。

其实上述步骤也可以用SFT的步骤代替,但是有一些局限性,以监督学习的方式去微调大模型,本质上就是让大模型去学习标注者标注的内容的风格,这是缺乏多样性、创造性的。而且与视觉标注信息不同,不是单单的‘画个框’那么简单,更像是给labeler做一个阅读理解类型的问题,也大大增加了标注的成本。

RLHF

rlhf是一项具有挑战性的工作,因为它涉及了多个模型的训练过程。

Pre-training model

这个阶段与InstructGPT的SFT阶段对应,OpenAI 在使用了较小版本的 GPT-3,Anthropic 使用了 10M到52B参数的Transformer进行训练,DeepMind是用来280B参数模型Gopher。
在这里插入图片描述

具体细节参照:InstrcutGPT

Reward Model

奖励模型的输入是agent的action(chatgpt回答的内容),然后返回一个标量,这个标量的数值代表人的偏好程度。这个奖励模型可以是端到端的语言模型,也可以是模块化的系统。关于选择什么结构的奖励模型、通过什么数据微调,至今没有一个最好的选择。

在InstructGPT中,作者采用了一个小型的GPT3,在模型的最后一层接上一个linear层,输出维度为一。

在训练RM的时候,它的训练数据作者起初是让labeler直接为数据标注标注得分,但是由于labeler的价值观各不相同,导致数据噪声较大。
于是作者后来让labeler标注文本的排名,文本可能来自于相同prompt不同模型的输出,或者来自相同prompt相同模型通过beam search的方法得到不同的输出,然后把排名通过EIO机制转换成标量分数,归一化后,得到训练数据。
在这里插入图片描述

Fine-tune with RL

把一个微调问题转换成一个强化学习问题,首先定义策略(也叫智能体),它其实就是一个大语言模型,输入prompt,输出一系列文本,或者文本的概率分布。行动空间vocabulary txt,观察空间是input sequence,奖励模型就是之前训练的偏好模型,用来约束策略参数优化。

奖励模型把之前所有的概念都联系在了一起,给定一个prompt、x,生成两个text:y1、y2,一个来自SFT后的模型,一个来自于当前策略的输出。把当前策略输出的模型输入奖励模型,得到一个标量偏好分数 r θ r_\theta rθ。然后比较这两个text y1、y2的差距,也是比较y1的概率分布与y2概率分布,计算惩罚,这个惩罚在OpenAI、Anthropic和DeepMind的文献中,这种惩罚被设计为两者规范化后的KL散度 r K L r_{KL} rKL。这个KL散度用来惩罚当前策略在每个batch中与原始模型的偏离程度,以确保输出不改变太多。如果没有这个限制,模型会生成一些胡乱写的文本,但是也可以欺骗奖励函数去得到一个不错的分数。最终奖励模型被定义为:
在这里插入图片描述

一些RLHF系统在奖励功能中添加了额外的条款。例如,OpenAI通过将额外的预训练梯度(来自人类注释集)混合到PPO的更新规则中,成功地在InstructGPT上进行了实验。随着RLHF的进一步研究,这个奖励函数的公式可能会继续演变。
在这里插入图片描述

参考

https://huggingface.co/blog/zh/rlhf
https://blog.replit.com/llm-training

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

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

相关文章

Hytrix原理

这里写目录标题 Hytrix容错机制熔断资源隔离线程池隔离信号量隔离 服务降级请求缓存请求合并 Hystrix流程图 Hytrix容错机制 熔断 在一个统计时间窗口(HYST rixCommandProperties.metricsRollingStatisticalWindowInMilliseconds())内,处理…

转化率双倍暴涨——客户自助服务门户

近年来,社交媒体的兴起使客户负责品牌对话。随着电子商务和在线帮助需求的扩大,公司必须满足并超越新的期望,以保持客户满意度。 通过SaleSmartly(ss客服)自动化流程功能建立客户自助服务是一种双赢的决策&#xff0c…

Ajax XHR响应

文章目录 AJAX 服务器 响应服务器响应responseText 属性responseXML 属性 AJAX 服务器 响应 服务器响应 如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。 属性描述responseText获得字符串形式的响应数据。responseXML…

2015年下半年软件设计师下午试题

试题一 【说明】 某慕课教育平台欲添加在线作业批改系统,以实现高效的作业提交与批改,并进行统计。学生和讲师的基本信息已经初始化为数据库中的学生表和讲师表。系统的主要功能如下: 提交作业。验证学生标识后,学生将电子作业通…

Ajax 数据库

文章目录 AJAX Database 实例AJAX 数据库实例实例解释 showCustomer() 函数AJAX 服务器页面 AJAX Database 实例 AJAX 可用来与数据库进行动态通信。 AJAX 数据库实例 下面的例子将演示网页如何通过 AJAX 从数据库读取信息: 请在下面的下拉列表中选择一个客户&…

【wpf】转换器 Converter

今天积攒了一个转换器的用法,分享给各位。 我们经常会有这种需求: 某些控件有时需要显示,有时需要隐藏,比如: 那,我就想通过一个bool变量和是否显示绑定。 但是我们知道,是否显示,…

nssctf web

[BJDCTF 2020]easy_md5 测试发现输入的内容会通过get传递但是没有其他内容 观察一下响应头 我们看到了 select * from admin where passwordmd5($pass,true) 这里的md5(string,raw) 这里的string应该清楚就是字符串,是必选参数 raw是可选参数 默认不写为FA…

08 - Linux终端与进程

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中)Linux系统编程训练营 - 目录 文章目录 1. 详解控制台与终端1.1 问题1.2 历史回顾1.2.1 控制台(Console)1.2.2 终端(Terminal) 1.3 历史发展进程1.4 终端与…

【Springboot系列】项目启动时怎么给mongo表加自动过期索引

1、前言 在之前操作mongo的过程中,都是自动创建,几乎没有手动创建过表。 这次开发中有张表数据量大,并且不是特别重要,数据表维护一个常见的问题是过期数据没有被及时清理,导致数据量过大,查询变得缓慢。…

【操作系统】CPU 缓存一致性、MESI 协议

【操作系统】CPU 缓存一致性、MESI 协议 参考资料: CPU缓存一致性协议(MESI) 【JUC】Java并发机制的底层实现原理 CPU 缓存一致性 文章目录 【操作系统】CPU 缓存一致性、MESI 协议CPU Cache 的数据写入写直达写回 缓存一致性问题总线嗅探MESI 协议总结 CPU Cache …

电感知识大全

目录 一、电感的种类 1、共模电感 2、差模电感 3、工字电感 功率电感 4、磁珠 5、变压器 6、R棒电感、棒形电感、差模电感 二、电感符号 三、电感特性 前面在学习电容的时候,为了让大家更形象,更通俗的去理解这个元器件,都是拿水缸去…

IO多路复用——select函数

1.select函数原型和fd_set结构体说明 1.1 select函数原型 ​ 使用 select 这种 IO 多路转接方式需要调用一个同名函数 select,这个函数是跨平台的,Linux、Mac、Windows 都是支持的。程序员通过调用这个函数可以委托内核帮助我们检测若干个文件描述符的…

mybatisPlus·入门·贰

文章目录 1 简单CRUD接口1.1 根据id查询({id传参)1.1.1 接口类直接继承IService1.1.2 controller直接调用方法 1.2 根据ids查询1.3 新增1.3.1 接口类直接继承IService1.3.2 controller直接调用方法 1.4 修改状态(Query传参)1.4.1 …

GPT-4 IDEA神仙插件亲测帮助亿万用户解决痛点!

最近,Intellij IDEA的插件商店推出了一款新的插件——Bito,据说使用了GPT-4和ChatGPT来帮助开发人员编写代码,并且下载量已经达到了65K以上。 这款插件可以将GPT-4和ChatGPT引入IDE来大大提高开发人员的效率。它使用了OpenAI的模型&#xff0…

ESP32设备驱动-BMM150数字地磁传感器驱动

BMM150数字地磁传感器驱动 文章目录 BMM150数字地磁传感器驱动1、BMM150介绍2、硬件准备3、软件准备4、驱动实现1、BMM150介绍 BMM150 是一款低功耗、低噪声的 3 轴数字地磁传感器,用于罗盘应用。 具有 1.56 x 1.56 mm 和 0.60 mm 高度的 12 引脚晶圆级芯片级封装 (WLCSP) 为…

JavaEE 2(4/24)

目录 1.线程 2.前台线程和后台线程 3.run和start的区别 4.线程的终止 5.线程等待 6.获取当前线程的引用 1.线程 创建线程需要继承Thread方法 调用start方法就会生成一个新的线程,调用run方法会在老的线程继续跑 main也是个线程,他是自动调用的.线程休息了先唤醒main和thre…

【文章学习系列之模型】Informer

本章内容 文章概况总体结构重点结构self-attention distilling operation(自注意蒸馏操作)generative style decoder(生成式解码器)ProbSparse self-attention mechanism(概率稀疏自注意机制) 实验结果主要…

双向沟通写作法: 用妙记多 Mojidoc 快速写作的实践

在妙记多 Mojidoc,我们希望能够为用户提供快速开始生产力的工具,为此我们一直在加快完善用户使用中的需求和功能迭代,请查看妙记多更新日志,看看我们产品改进速度。 妙记多 Mojidoc 如何实践双向沟通写作法以及在双向写作的文档中…

自称是资深Android程序员的面试现场,结果被面试官吊打~

1背景 牛哥工作五年了,是一名“资深”程序员(嗯…至少他自己是这么认为的) 牛哥所在的公司已经两年没有涨过工资了(嗯…至少他是两年没涨过了) 牛哥坐不住了,这位“资深”程序员打算去“外面的世界”看看…

〖ChatGPT实践指南 - 零基础扫盲篇④〗- OpenAI API 相关介绍、提示-Prompt 与 完成-Completion

文章目录 ⭐ OpenAI API介绍⭐ 提示-Prompt 与 完成-Completion 介绍 这一章节将为各位小伙伴介绍一下 OpenAI 的 API 相关内容,以及在 ChatGPT 中两个经常被用来比较的名词:“提示-prompt” 与 “完成-completion”。 ⭐ OpenAI API介绍 OpenAI API 概…