基于人类反馈的强化学习(RLHF) 理论

gpt 进程

  • GPT-1 用的是无监督预训练 + 有监督微调,只有简单的单向语言模型任务;
  • GPT-2用的是纯无监督预训练,使用更多的数据,更大的模型,又新增了几个辅助的训练任务;
  • GPT-3 沿用了 GPT-2 的纯无监督预训练,但是数据大了好几个量级。它使用45TB的超大规模数据,175B的超大参数量模型。另外加入了Meta-learning的训练任务,提高了Few shotZero-shot任务上的表现;
  • InstructGPT加入了近两年流行的prompt-learning。另外更重要的是,加入了强化学习,即RLHF(Reinforcement Learning from Human Feedback),基于人工反馈机制的强化学习,也是后面着重介绍的模块。
  • ChatGPT:目前没有开源代码或论文参考,从网上的推测来看,应该是在InstructGPT的基础上,进一步优化了多轮对话效果。与其前身InstructGPT相比,ChatGPT试图减少有害和误导性的回复。

ChatGPT的训练过程有三步,RLHF技术主要涉及第二步和第三步的内容:

  1. 利用gpt自回归式的语言模型在大规模的语料上进行无监督的预训练,得到生成模型;
  2. 然后人工对用户提示文本后,GPT生成句子的结果进行打分。产生形式为(提示文本,GPT生成句子,得分)的数据集,训练打分模型;
  3. 最后利用强化学习的方式 让打分模型去优化生成模型的效果。

chatgpt效果如此好,主要可以归结于两个原因:

  1. 训练语料的质量、多样性。openai搭建了40多人的团队去收集和标注数据。而且训练一个gpt3.5大约要花1000多w美刀,所以数据和算力不容忽视。
  2. 基于强化学习的训练方式。其中训练的2、3步被学术界叫做 Reinforcement Learning From Human Feedback 。其实就利用人类的反馈去优化 你的目标模型,让模型输出更符合人类直觉的结果。chatgpt 采用PPO算法利用打分模型去进一步优化生成模型。

强化学习背景知识

1 基础概念

强化学习需要一个交互的过程,而且要解决的是序列决策问题。这里如果要展开还会涉及到马尔科夫决策过程。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
强化学习有许多在游戏上的应用。用熟悉的super mario来举个例子,我们可以操纵的游戏角色mario是可以交互的智能体agent,游戏中每一帧的画面中要交互的场景即enviroment,游戏角色依据当前环境做出新的动作,而环境会对角色的每个动作作出反馈,例如吃到了金币会有加成,而被击中则不是一个好消息,这样的反馈可以量化为奖励reward,这种奖励值可以帮助学习如何选择最合适的动作,也就是在交互中学习。

特点

在这里插入图片描述
这张图说明了强化学习与我们熟悉的监督学习、无监督学习的关系。强化学习是和监督学习,非监督学习并列的第三种机器学习方法。
与熟悉的监督学习比较,来说明强化学习的一些特点:

  1. 强化学习处理的大多数是序列数据,其很难像监督学习的样本一样满足独立同分布。在强化学习的训练过程中,时间非常重要。因为我们得到的是有时间关联的数据(sequential data),而不是独立同分布的数据。在机器学习中,如果观测数据有非常强的关联,会使得训练非常不稳定。这也是为什么在监督学习中,我们希望数据尽量满足独立同分布,这样就可以消除数据之间的相关性。
  2. 在强化学习过程中,没有非常强的监督者(supervisor),只有奖励信号(reward signal)。并且奖励信号是延迟的.
  3. 强化学习智能体会从环境中获得延迟的奖励,即环境会在很久以后才告诉我们之前所采取的动作到底是不是有效的。因为我们没有得到即时反馈,所以智能体使用强化学习来学习就非常困难。当我们采取一个动作后,如果使用监督学习,就可以立刻获得一个指导,比如,我们现在采取了一个错误的动作,正确的动作应该是什么。而在强化学习中,环境可能会告诉我们这个动作是错误的,但是它并不会告诉我们正确的动作是什么。而且更困难的是,它可能是在一两分钟过后才告诉我们这个动作是错误的。所以这也是强化学习和监督学习不同的地方。
  4. 强化学习会试错探索,它通过探索环境来获取对环境的理解。学习器并没有告诉我们每一步正确的动作应该是什么,学习器需要自己去发现哪些动作可以带来最多的奖励,只能通过不停地尝试来发现最有利的动作。智能体获得自己能力的过程,其实是不断地试错探索(trial-and-error exploration)的过程。探索(exploration)和利用(exploitation)是强化学习中非常核心的问题。其中,探索指尝试一些新的动作,这些新的动作有可能会使我们得到更多的奖励,也有可能使我们“一无所有”;利用指采取已知的可以获得最多奖励的动作,重复执行这个动作,因为我们知道这样做可以获得一定的奖励。因此,我们需要在探索和利用之间进行权衡,这也是在监督学习中没有的情况。
  5. 智能体的动作会影响它随后得到的数据,这一点是非常重要的。在训练智能体的过程中,很多时候我们也是通过正在学习的智能体与环境交互来得到数据的。所以如果在训练过程中,智能体不能保持稳定,就会使我们采集到的数据非常糟糕。我们通过数据来训练智能体,如果数据有问题,整个训练过程就会失败。所以在强化学习中一个非常重要的问题就是,怎么让智能体的动作一直稳定地提升。用下棋来举个形象的例子,在监督学习中,棋手的上限往往取决于老师的上限,也就是俗话说的”和臭棋篓子下棋,越下越臭“;而在强化学习的设置下,即使有着资质平平甚至有些笨的起点,也有自己和自己下,有朝一日悟道飞升的可能性。

强化学习和非监督学习的区别:
也还是在奖励值这个地方。非监督学习是没有输出值也没有奖励值的,它只有数据特征。同时和监督学习一样,数据之间也都是独立的,没有强化学习这样的前后依赖关系。

总结:

  • 监督学习是从外部监督者提供的带标注训练集中进行学习,也就是由任务驱动型;
  • 非监督学习是一个典型的寻找未标注数据中隐含结构的过程,也就是数据驱动型;
  • 强化学习则更偏重于智能体与环境的交互, 这带来了一个独有的挑战 ——“试错(exploration)”与“开发(exploitation 利用)”之间的折中权衡,智能体必须开发(利用)已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间,也就是说可以从错误中学习。

文本生成中的强化学习

文本生成的问题,可以建模为一个token空间上的序列决策问题(选择一个token后继续选择另一个token)

  • State:对话上下文
  • Action:回复的token space上的token
  • Reward:生成的质量判别
  • Episode:一次完整的解码生成回复的过程
    在这里插入图片描述

强化学习的分类

强化学习可以分为基于值的方法、基于策略的方法和actor-critic方法这三类。

  • 基于值函数的学习方法要学习一个价值函数, 去计算每个动作在当前环境下的价值,目标就是获取最大的动作价值,即我每一步采取回报最大的动作和环境进行互动。Value-Based的方法输出的是动作的价值,选择价值最高的动作。适用于非连续的动作。常见的方法有Q-learning、Deep Q Network和Sarsa。其基础网络结构如下图所示,在编码网络之后,直接用一个全连接层来为每个状态输出一个分数。在这里插入图片描述

  • 基于策略梯度的学习方法去学习策略函数,去计算当前前环境下每个动作的概率,目标是获取最大的状态价值,即该动作发生后期望回报越大越好。Policy-Based的方法直接输出下一步动作的概率,根据概率来选取动作。但不一定概率最高就会选择该动作,还是会从整体进行考虑。适用于非连续和连续的动作。常见的方法有Policy gradients。从图中可以看出来,在全连接层之后还有一个softmax层,从而将打分转化成概率。在这里插入图片描述

  • Actor-Critic 融合了上述两种方法,价值函数和策略函数一起进行优化。价值函数负责在环境学习并提升自己的价值判断能力,而策略函数则接受价值函数的评价,尽量采取在价值函数那可以得到高分的策略。在这里插入图片描述

PPO算法

PG算法之前,主流的基于价值的强化学习算法,在给定一个状态下,计算采取每个动作的价值,我们选择在所有状态下具有最大的期望奖励的行动。如果我们省略中间的步骤,即直接根据当前的状态来选择动作,也就引出了强化学习中的另一种很重要的算法,即策略梯度(Policy Gradient, PG)。也就是说,其目的是是直接建模与优化Policy
策略梯度它通过观测信息选出一个行为直接进行反向传播,利用reward奖励直接对选择行为的可能性进行增强和减弱,好的行为会被增加下一次被选中的概率,不好的行为会被减弱下次被选中的概率。
PG算法,我们有一个agent,他与环境互动,然后学习更新,这个过程中的policy都是同一个。因此,当我们更新参数之后,之前计算的策略的所有概率就都不对了,这时候就需要重新去采样。之前采样出来的数据都不能用了,换句话说,过程中的数据都只能用一次。这就造成了policy gradient会花很多时间在采样数据上,因为所有的数据都只能更新一次,更新一次之后就要重新采样。
PPO算法的改进原因。我们希望可以用一个旧策略收集到的数据来训练新策略,这意味着我们可以重复利用这些数据来更新策略多次,效率上可以提升很多。具体来说,PPO算法利用重要性采样的思想,在不知道策略路径的概率p的情况下,通过模拟一个近似的q分布,只要p同q分布不差的太远,通过多轮迭代可以快速参数收敛。

近线策略优化算法PPO 即属于AC框架下的算法,在采样策略梯度算法训练方法的同时,重复利用历史采样的数据进行网络参数更新,提升了策略梯度方法的学习效率。PPO重要的突破就是在于对新旧策略器参数进行了约束,希望新的策略网络和旧策略网络的越接近越好。近线策略优化的意思就是:新策略网络要利用到旧策略网络采样的数据进行学习,不希望这两个策略相差特别大,否则就会学偏。

文本摘要+RLHF, NIPS 2020

在这里插入图片描述
涉及:

  • 论文:Learning to summarize from human feedback
  • ChatGPT技术精要,RLHF相关论文笔记(一)——Learning to summarize from human feedback

这篇论文解决的问题聚焦在不合理的评价指标上,在文本生成领域这同样是一个棘手的问题。随着语言模型变得越来越强大,训练和评估越来越受到用于特定任务的数据和指标的限制。例如,摘要任务训练模型使用ROUGE等一些自动化指标进行评估,但这些指标都不能完全刻画我们对摘要质量的需求。传统的通过监督学习和最大化对数似然并不是一个好的方法。因为在摘要、翻译等任务中,可能同时有几个相差很大的输出文本都是高质量的输出,而最大化对数似然只会迫使模型输出去接近训练集reference里的那个版本的文本。这篇文章专注于英文摘要任务,不采用极大化词的对数似然损失,而是利用收集到的human feedback数据通过监督学习专门训练一个打分模型来直接捕获人类的偏好,然后再使用这个模型通过强化学习来训练生成模型。
在这里插入图片描述

ChatGPT中的RLHF

在这里插入图片描述
第一步是花钱招人给问题(prompt)写回答(demonstration),使用经典的预训练目标训练一个语言模型GPT3。这一步大家都懂,就不用说了。这一步可以多训几个版本,第二步会用到。

这一步里比较值得说的就是预训练模型的选择。首先,我们。对这一步的模型,OpenAI 在其第一个流行的 RLHF 模型 InstructGPT 中使用了较小版本的 GPT-3; Anthropic 使用了 1000 万 ~ 520 亿参数的 Transformer 模型进行训练;DeepMind 使用了自家的 2800 亿参数模型 。

这里可以用额外的文本或者条件对这个 LM 进行微调,例如 OpenAI 对 “更可取” (preferable) 的人工生成文本进行了微调,而 Anthropic 按 “有用、诚实和无害” 的标准在上下文线索上蒸馏了原始的 LM。这里或许使用了昂贵的增强数据,但并不是 RLHF 必须的一步。由于 RLHF 还是一个尚待探索的领域,对于” 哪种模型” 适合作为 RLHF 的起点并没有明确的答案。

接下来,我们会基于 LM 来生成训练奖励模型的数据,并在这一步引入人类的偏好信息。

在这里插入图片描述
在第二部中,针对问题的多个回答,我们可以使用多个模型来产生,包括初始模型、finetune模型和人工模型等,然后使用奖励模型/偏好模型来对这些回答进行打分。这个奖励模型接收prompt和response两个文本作为输入,输出一个标量奖励。奖励模型的训练是RLHF流程中非常重要的一个环节,实际上是一个监督学习过程。

在RM的训练过程中,我们可以从Prompt数据集中选取一些数据作为训练集,在输入初始模型后,可以产生多个response,这些response可以是多个语言模型生成的,也可以是generate之后采样得到的,只要保证这些response是针对同一个prompt生成的即可。接下来,我们需要对这些response进行排名,人工对这些回答进行排序,按照一些标准(比如可读性、正确性等)进行排序。这里需要注意,我们不直接对文本标注分数来训练RM,因为标注者的价值观不同会导致标注分数不准确且存在噪音。相反,我们使用排名来比较多个模型的输出,并构建更好的规范数据集。

对于排名方式,一种成功的方式是对不同模型在相同提示下的输出进行比较,并使用Elo系统建立一个完整的排名。使用pair-wise loss将rank计算为具体的分数,然后归一化为标量奖励值。InstructGPT论文使用的是pair-wise loss,也可以使用经典的ELO算法来实现。通过这些排名结果,我们可以得到针对同一个prompt的response的分数,这些分数将被用于训练RM模型。需要注意的是,这些训练数据集可以从预定义数据集中采样生成,也可以通过Amazon Mechanical Turk等渠道获得。

最后,这一奖励模型的训练对于RLHF算法的无缝接入非常重要。我们可以用端到端的方式使用LM来建模,也可以使用模块化的系统建模。这一奖励数值对于后续的RL算法来说至关重要。
在这里插入图片描述
接下来是最后一步:利用 RM 输出的奖励,用强化学习方式微调优化 LM。

最后一阶段是强化学习微调阶段。在这一步中,数据集规模更大,且不再需要人工参与。这一步的方法可以概括为以下四个部分:

首先,使用第一阶段监督模型的参数来初始化PPO模型的参数。接着,使用PPO模型生成回答,并使用第二阶段的RM模型对回答进行评估和打分。最后,通过打分,更新训练PPO模型的参数。

让我们将微调任务表述为强化学习问题。我们认为输入的prompt是状态(state),输出的response是动作(action),想要得到的策略(policy)就是怎么从prompt生成action能够得到最大的reward,也就是拟合人类的偏好。

这个策略的行为空间(action space)是语言模型(LM)的词表对应的所有词元,通常在50k数量级左右。所有的状态是可能的输入词元序列,也比较大(词汇量 ^ 输入标记的数量)。奖励函数是偏好模型和策略转变约束(Policy shift constraint)的组合。

PPO算法确定的奖励函数具体计算如下:将prompt输入初始LM和当前微调的LM,分别得到了输出文本。将来自当前策略的文本传递给RM,得到一个标量的奖励。将两个模型生成的文本进行比较,计算差异的惩罚项。在来自OpenAI、Anthropic和DeepMind的多篇论文中,该惩罚项被设计为输出词分布序列之间的KL散度的缩放。这一项被用于惩罚RL策略在每个训练批次中生成大幅偏离初始模型的文本,以确保模型输出合理连贯的文本。如果去掉这一惩罚项,可能会导致模型在优化中生成乱码文本来愚弄奖励模型提供高奖励值。此外,OpenAI在InstructGPT上实验了在PPO添加新的预训练梯度,以保证RL模型能够保留好的语言模型能力。可以预见到,随着RLHF研究的进展,奖励函数的公式会继续进化。

作为一个可选项,RLHF可以通过迭代RM和策略共同优化。随着策略模型的更新,用户可以继续将输出和早期的输出进行合并排名。Anthropic 在他们的论文中讨论了迭代在线 RLHF,其中策略的迭代包含在跨模型的 Elo 排名系统中。这样引入策略和 RM 演变的复杂动态,代表了一个复杂和开放的研究问题。
对这一部分,已经有许多非常优秀且深入的解析,例如以下两篇:

  • https://huggingface.co/blog/rlhf* 官方中文翻译:ChatGPT 背后的“功臣”——RLHF 技术详解
  • 从零实现ChatGPT——RLHF技术笔记

继续学习

强化学习一:基础部分
ChatGPT背后的技术-基于人类反馈的强化学习(RLHF) 理论篇
李宏毅 (Hung-yi Lee) 课程
李宏毅深度强化学习(国语)课程(2018) :bilibili
ChatGPT 背后的“功臣”——RLHF 技术详解

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

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

相关文章

【疑难杂症】overleaf公式显示异常并且被重复添加至正文内,正文内$符号消失,编译报错Missing $ inserted.inserted text。

问题描述 此问题困扰本人许久,搜索了许多相关情况都没有我这样的。每次编译后,overleaf中的公式会编译错误,并且被莫名其妙地添加到正文中,而且原来引用公式的dollar符号$$也异常消失。 问题举例 原始文本: 编译后…

【ChatGPT】从人类反馈 (RLHF) 中进行强化学习 | Illustrating Reinforcement Learning from Human Feedback (RLHF)

从人类反馈 (RLHF) 中进行强化学习 | Illustrating Reinforcement Learning from Human Feedback (RLHF) 目录

python 用 xlwings 处理 Excel 中的重复数据

xlwings 简介 xlwings 是一个 Python 库。简化了 Python 和 Excel 通信。 xlwings - 让Excel跑得飞快! 本文写作背景 & 需求 & 方案 因前几个月帮在医院工作的朋友现学现卖用VBA写了段程序,处理2个excel文档的数据到第3个Excel文档上,有模板数据…

解决Chrome网页编码显示乱码的问题

解决Chrome网页编码显示乱码的问题 记得在没多久以前,Google Chrome上面出现编码显示问题时,可以手动来调整网页编码问题,可是好像在Chrome 55.0版以后就不再提供手动调整编码,所以如果现在遇到big 5被误判为UTF8的网页问题时&…

全网最详细中英文ChatGPT-GPT-4示例文档-从0到1快速入门语法纠正应用——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

从0到1快速入门语法纠正应用场景 Introduce 简介setting 设置Prompt 提示Sample response 回复样本API request 接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例 其它资料下载 ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字&…

ChatGPT其实无法获得法学保研资格

ChatGPT通过了美国明尼苏达大学法学院4门课程的考试,95个选择题、12个论述题,平均分为C;也通过了宾夕法尼亚大学沃顿商学院的考试,成绩也不错。但是在当下内卷的情形下,ChatGPT的考试成绩不会获得保研资格,…

chatgpt赋能python:Python摄像头运用介绍

Python摄像头运用介绍 Python是一种广泛应用于各种领域的高级编程语言。其中,Python摄像头应用越来越受欢迎,尤其是在计算机视觉和机器学习领域。本文将介绍Python摄像头运用的相关知识。 什么是Python摄像头运用? Python摄像头运用是使用…

NAT技术之NAT server

技术背景: 在很多场景中,比如企业、学校、甚至家里都有一些对外访问的业务提供,比如门户网址、NAS、ERP等,在实际部署中,这些提供访问的服务器都属于内网内,配置的是内网地址,导致的情况是公网…

在群晖NAS上搭建导航页_通过Web Station搭建

一、业务需求 1.1、需求说明 我们在使用群晖NAS的过程中,随着时间的推移会安装各种各样的软件内容和管理工具,而这些内容又都是一些网页界面(特别是一些在Docker中搭建的工具)时间久了我们也记不住那么多工具的Web界面地址&#…

[NAS] QNAP/威联通 常用设置和操作

🍁简介 QNap 产品是一种可扩展的数据存储解决方案。它们包括具有 1 到 30 个驱动器托架的设备,并提供 HDMI、Thunderbolt 2 和 USB 3.1 等连接选项,以及 802.11ac/a/n Wi-Fi 和高达每秒 40 Gb 的以太网。内置软件提供基本服务,例如…

详解央行数字货币和数字票据交易平台架构(多图)

独家披露:详解央行数字货币和数字票据交易平台架构(多图) 暴走时评:央行推动的基于区块链的数字票据交易平台已测试成功,由央行发行的法定数字货币已在该平台试运行。作为一种创新的货币和全新的支付体系架构,央行数字货币具有长远…

国家队入场,中国数字资产交易市场或将迎来新一轮“洗牌”

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 数字化已经成为中国文化产业的催化剂,一大批文化资源在数字技术的赋能下焕发了崭新的生机。 随着数字化的升级与科技进步,数字经济正在成为改变全球竞争格局的关键力量,各国家都争先出…

浅谈数字人民币什么时候正式推出DCEP钱包在哪里下载

11月23日,澎湃新闻从苏州一位知情人士处独家获悉,继深圳后,苏州将于双十二推出数字人民币红包测试。 上述知情人士告诉澎湃新闻记者,目前苏州相城区已有很多商家已经安装NFC(Near Field Communication,近场通信)二维码,只是支付载体还在测试员中,目前已有测试员体验过数字人民币…

Facebook 数字货币:缘起、意义和后果

来源 | 孟岩的区块链思考 作者 | 孟岩、邵青 出品 | 区块链大本营(blockchain_camp) 6 月 18日,Facebook 位于瑞士的子公司 Libra Network (天秤座网络)将发布其加密数字货币项目白皮书。此前 BBC 报道说这个数字货币叫做 GlobalC…

数字货币钱包基础

我在前面3篇文章讲了区块链基础知识、普通人如何购买以及如何在imtoken里参与ICO。一个核心的问题其实是没有讲到的,我们这些数字货币到底怎么保存,因为之前讲的都是在交易市场上购买比特币、以太币,这些货币被保存在交易市场,本质…

大家知道微信个人收款码限额多少吗

大家知道微信个人收款码限额多少吗 随着移动支付的普及,微信、支付宝等平台已经成为了人们日常生活中不可或缺的支付工具。二维码收款作为这些平台的重要功能之一,可以方便快捷地完成转账和付款操作,受到了越来越多用户的广泛关注和使用。 对…

用户授信额度管理中,会运用到哪些策略?

关注“金科应用研院”,回复“CSDN” 领取风控资料合集 01、授信额度与贷款额度 授信额度是指金融机构能够为借款人提供的最大贷款金额。贷款额度一般是指借款人在金融机构给予的最大贷款金额范围内,实际借贷的金额。 授信额度和贷款额度的主要区别是授…

ChatGPT在做什么?为什么它有效?

2023 年 2 月 14 日 它只是一次添加一个词 ChatGPT可以自动生成一些表面上看起来像人类书写文本的东西,这是非常了不起的,也是出乎意料的。但是它是怎么做到的呢?为什么它有效?我在这里的目的是粗略概述 ChatGPT 内部发生的事情&…

智能车浅谈——手把手让车跑起来(电磁篇)

文章目录 前言材料准备备赛组车模硬件 练习组车模硬件方案 整车原理赛道信息获取及转向原理工字电感运放模块转向原理元素判断 电机及舵机控制原理 代码实现效果欣赏总结17届完赛代码智能车系列文章汇总 前言 电磁寻迹小车 之前智能车系列已经做了一个比较详细的解析&#xff0…

基于蒙特卡洛模拟的大规模电动车充电模型构建——附代码

目录 摘要: 1电动车日行驶里程概率分布: 2.电动车充电起始时间概率分布: 3.大规模电动车充电行为蒙特卡洛建模: 3.1.日行驶里程 3.2.开始充电时间 3.3.耗电量 3.4.充电时间 …