ChatGPT 背后的“功臣”——RLHF 技术详解

OpenAI 推出的 ChatGPT 对话模型掀起了新的 AI 热潮,它面对多种多样的问题对答如流,似乎已经打破了机器和人的边界。这一工作的背后是大型语言模型 (Large Language Model,LLM) 生成领域的新训练范式:RLHF (Reinforcement Learning from Human Feedback) ,即以强化学习方式依据人类反馈优化语言模型。

过去几年里各种 LLM 根据人类输入提示 (prompt) 生成多样化文本的能力令人印象深刻。然而,对生成结果的评估是主观和依赖上下文的,例如,我们希望模型生成一个有创意的故事、一段真实的信息性文本,或者是可执行的代码片段,这些结果难以用现有的基于规则的文本生成指标 (如 BLUE 和 ROUGE) 来衡量。除了评估指标,现有的模型通常以预测下一个单词的方式和简单的损失函数 (如交叉熵) 来建模,没有显式地引入人的偏好和主观意见。

如果我们 用生成文本的人工反馈作为性能衡量标准,或者更进一步用该反馈作为损失来优化模型,那不是更好吗?这就是 RLHF 的思想:使用强化学习的方式直接优化带有人类反馈的语言模型。RLHF 使得在一般文本数据语料库上训练的语言模型能和复杂的人类价值观对齐。

看看 ChatGPT 是如何解释 RLHF 的:

ChatGPT 解释的很好,但还没有完全讲透;让我们更具体一点吧!

RLHF 技术分解

RLHF 是一项涉及多个模型和不同训练阶段的复杂概念,这里我们按三个步骤分解:

  1. 预训练一个语言模型 (LM) ;

  2. 聚合问答数据并训练一个奖励模型 (Reward Model,RM) ;

  3. 用强化学习 (RL) 方式微调 LM。

Step 1. 预训练语言模型

首先,我们使用经典的预训练目标训练一个语言模型。对这一步的模型,OpenAI 在其第一个流行的 RLHF 模型 InstructGPT 中使用了较小版本的 GPT-3; Anthropic 使用了 1000 万 ~ 520 亿参数的 Transformer 模型进行训练;DeepMind 使用了自家的 2800 亿参数模型 Gopher。

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

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

Step 2. 训练奖励模型

RM 的训练是 RLHF 区别于旧范式的开端。这一模型接收一系列文本并返回一个标量奖励,数值上对应人的偏好。我们可以用端到端的方式用 LM 建模,或者用模块化的系统建模 (比如对输出进行排名,再将排名转换为奖励) 。这一奖励数值将对后续无缝接入现有的 RL 算法至关重要。

关于模型选择方面,RM 可以是另一个经过微调的 LM,也可以是根据偏好数据从头开始训练的 LM。例如 Anthropic 提出了一种特殊的预训练方式,即用偏好模型预训练 (Preference Model Pretraining,PMP) 来替换一般预训练后的微调过程。因为前者被认为对样本数据的利用率更高。但对于哪种 RM 更好尚无定论。

关于训练文本方面,RM 的提示 - 生成对文本是从预定义数据集中采样生成的,并用初始的 LM 给这些提示生成文本。Anthropic 的数据主要是通过 Amazon Mechanical Turk 上的聊天工具生成的,并在 Hub 上可用 (https://huggingface.co/datasets/Anthropic/hh-rlhf),而 OpenAI 使用了用户提交给 GPT API 的 prompt。

关于训练奖励数值方面,这里需要人工对 LM 生成的回答进行排名。起初我们可能会认为应该直接对文本标注分数来训练 RM,但是由于标注者的价值观不同导致这些分数未经过校准并且充满噪音。通过排名可以比较多个模型的输出并构建更好的规范数据集。

对具体的排名方式,一种成功的方式是对不同 LM 在相同提示下的输出进行比较,然后使用 Elo 系统建立一个完整的排名。这些不同的排名结果将被归一化为用于训练的标量奖励值。

这个过程中一个有趣的产物是目前成功的 RLHF 系统使用了和生成模型具有 不同 大小的 LM (例如 OpenAI 使用了 175B 的 LM 和 6B 的 RM,Anthropic 使用的 LM 和 RM 从 10B 到 52B 大小不等,DeepMind 使用了 70B 的 Chinchilla 模型分别作为 LM 和 RM) 。一种直觉是,偏好模型和生成模型需要具有类似的能力来理解提供给它们的文本。

接下来是最后一步:利用 RM 输出的奖励,用强化学习方式微调优化 LM。

Step 3. 用强化学习微调

长期以来出于工程和算法原因,人们认为用强化学习训练 LM 是不可能的。而目前多个组织找到的可行方案是使用策略梯度强化学习 (Policy Gradient RL) 算法、近端策略优化 (Proximal Policy Optimization,PPO) 微调初始 LM 的部分或全部参数。因为微调整个 10B~100B+ 参数的成本过高 (相关工作参考低秩适应 LoRA 和 DeepMind 的 Sparrow LM) 。PPO 算法已经存在了相对较长的时间,有大量关于其原理的指南,因而成为 RLHF 中的有利选择。

事实证明,RLHF 的许多核心 RL 进步一直在弄清楚如何将熟悉的 RL 算法应用到更新如此大的模型。

让我们首先将微调任务表述为 RL 问题。首先,该策略 (policy) 是一个接受提示并返回一系列文本 (或文本的概率分布) 的 LM。这个策略的行动空间 (action space) 是 LM 的词表对应的所有词元 (一般在 50k 数量级) ,观察空间 (observation space) 是可能的输入词元序列,也比较大 (词汇量 ^ 输入标记的数量) 。奖励函数是偏好模型和策略转变约束 (Policy shift constraint) 的结合。

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

最后根据 PPO 算法,我们按当前批次数据的奖励指标进行优化 (来自 PPO 算法 on-policy 的特性) 。PPO 算法是一种信赖域优化 (Trust Region Optimization,TRO) 算法,它使用梯度约束确保更新步骤不会破坏学习过程的稳定性。DeepMind 对 Gopher 使用了类似的奖励设置,但是使用 A2C (synchronous advantage actor-critic) 算法来优化梯度。

作为一个可选项,RLHF 可以通过迭代 RM 和策略共同优化。随着策略模型更新,用户可以继续将输出和早期的输出进行合并排名。Anthropic 在他们的论文中讨论了迭代在线 RLHF,其中策略的迭代包含在跨模型的 Elo 排名系统中。这样引入策略和 RM 演变的复杂动态,代表了一个复杂和开放的研究问题。


RLHF 的未来

尽管 RLHF 取得了一定的成果和关注,但依然存在局限。这些模型依然会毫无不确定性地输出有害或者不真实的文本。这种不完美也是 RLHF 的长期挑战和动力 —— 在人类的固有领域中运行意味着永远不会到达一个完美的标准。

收集人类偏好数据的质量和数量决定了 RLHF 系统性能的上限。RLHF 系统需要两种人类偏好数据:人工生成的文本和对模型输出的偏好标签。生成高质量回答需要雇佣兼职人员 (而不能依赖产品用户和众包) 。另一方面,训练 RM 需要的奖励标签规模大概是 50k 左右,所以并不那么昂贵 (当然远超了学术实验室的预算) 。目前相关的数据集只有一个基于通用 LM 的 RLHF 数据集 (来自 Anthropic) 和几个较小的子任务数据集 (如来自 OpenAI 的摘要数据集) 。另一个挑战来自标注者的偏见。几个人类标注者可能有不同意见,导致了训练数据存在一些潜在差异。

除开数据方面的限制,一些有待开发的设计选项可以让 RLHF 取得长足进步。例如对 RL 优化器的改进方面,PPO 是一种较旧的算法,但目前没有什么结构性原因让其他算法可以在现有 RLHF 工作中更具有优势。另外,微调 LM 策略的一大成本是策略生成的文本都需要在 RM 上进行评估,通过离线 RL 优化策略可以节约这些大模型 RM 的预测成本。最近,出现了新的 RL 算法如隐式语言 Q 学习 (Implicit Language Q-Learning,ILQL) 也适用于当前 RL 的优化。在 RL 训练过程的其他核心权衡,例如探索和开发 (exploration-exploitation) 的平衡也有待尝试和记录。探索这些方向至少能加深我们对 RLHF 的理解,更进一步提升系统的表现。


参考资料

首先介绍一些相关的开源工作:

关于 RLHF 的第一个项目,来自 OpenAI:
https://github.com/openai/lm-human-preferencesy

一些 PyTorch 的 repo:

  • https://github.com/lvwerra/trl

  • https://github.com/CarperAI/trlx

  • https://github.com/allenai/RL4LMs

此外,Huggingface Hub 上有一个由 Anthropic 创建的大型数据集:
https://huggingface.co/datasets/Anthropic/hh-rlhf

相关论文包括在现有 LM 前的 RLHF 进展和基于当前 LM 的 RLHF 工作:

  • TAMER: Training an Agent Manually via Evaluative Reinforcement (Knox and Stone 2008)

  • Interactive Learning from Policy-Dependent Human Feedback (MacGlashan et al. 2017)

  • Deep Reinforcement Learning from Human Preferences (Christiano et al. 2017)

  • Deep TAMER: Interactive Agent Shaping in High-Dimensional State Spaces (Warnell et al. 2018)

  • Fine-Tuning Language Models from Human Preferences (Zieglar et al. 2019)

  • Learning to summarize with human feedback (Stiennon et al., 2020)

  • Recursively Summarizing Books with Human Feedback (OpenAI Alignment Team 2021)

  • WebGPT: Browser-assisted question-answering with human feedback (OpenAI, 2021)

  • InstructGPT: Training language models to follow instructions with human feedback (OpenAI Alignment Team 2022)

  • GopherCite: Teaching language models to support answers with verified quotes (Menick et al. 2022)

  • Sparrow: Improving alignment of dialogue agents via targeted human judgements (Glaese et al. 2022)

  • ChatGPT: Optimizing Language Models for Dialogue (OpenAI 2022)

  • Scaling Laws for Reward Model Overoptimization (Gao et al. 2022)

  • Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback (Anthropic, 2022)

  • Red Teaming Language Models to Reduce Harms: Methods, Scaling Behaviors, and Lessons Learned (Ganguli et al. 2022)

  • Dynamic Planning in Open-Ended Dialogue using Reinforcement Learning (Cohen at al. 2022)

  • Is Reinforcement Learning (Not) for Natural Language Processing?: Benchmarks, Baselines, and Building Blocks for Natural Language Policy Optimization (Ramamurthy and Ammanabrolu et al. 2022)

本文翻译自 Hugging Face 官方博客 (https://huggingface.co/blog/rlhf)
参考资料部分链接请点击阅读原文到博客上查看。你也可以查看我们的直播活动回放了解更多: RLHF: From Zero to ChatGPT

本文译者:

李泺秋,浙江大学计算机科学硕士,主要研究 NLP 领域。

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

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

相关文章

NBA球星生涯数据集分析

源码链接: https://download.csdn.net/download/qq_58012062/87541713?spm1001.2014.3001.5501 数据提取:链接:https://pan.baidu.com/s/1kcttx000FfaLBk1QAJbBAw 提取码:jbbk 1 实验背景 NBA 作为世界上水平最高的篮球联赛…

近10年NBA球队常规赛排名变化——tableau 实现bump chart

上一篇文章「一个案例入门tableau——NBA球队数据可视化实战解析」我们学习了tableau的基本使用方法,本篇中我们继续深入,仍然通过实战案例来学习tableau制作bump chart。 本文目录如下: 案例引入可视化效果和数据结论西部联盟东部联盟 制作过…

如何开发微信礼品卡-服务端

微信礼品的官方文档,请戳微信礼品卡。 官方咨询邮箱:weixincardtencent.com。 本文仅记录微信礼品卡后端开发相关: 1.设计礼品卡数据库表结构 请仔细阅读微信礼品卡官方文档,再进行数据库表结构设计。 确保调用微信接口返回成…

文心千帆:PPT 制作、数字人主播一键开播等数十种应用场景惊艳到我了,下面给出简介和使用指南,快去使用起来吧

文心千帆:PPT 制作、数字人主播一键开播等数十种应用场景惊艳到我了,下面给出简介和使用指南,快去使用起来吧 文心千帆大模型平台是面向企业开发者的一站式大模型开发及服务运行平台。文心千帆不仅提供了包括文心一言底层模型(ER…

Linux随记(四)

一、记录ping不通,与处理方法。 问题描述: 对端链路 交换机地址IP:192.168.1.101笔记本网线直连对端交换机。配置ip192.168.1.102。 此时去Ping 192.168.1.101是通的.但是新的三层交换机连接对端交换机,vlan90 配置ip 192.168.1…

崩坏三 - 武器 - 童谣 NPR渲染分析(水体)

崩坏三 - 武器 - 童谣 NPR渲染分析(水体) 水体效果演示视频链接Shader 源码 水体效果 演示视频链接 https://www.bilibili.com/video/av68650714 Shader 源码 Shader "Water" {Properties{_WaterNormal("Water Normal", 2D) &qu…

旋转正方形怎么做html,p5.js绘制旋转的正方形_童谣_前端开发者

使用p5. 要还原的效果图 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持前端开发者。 首先建立画布大小,按照比例应该是5:3 function setup() { createCanvas(500, 300); } 设定矩形绘制格式,以…

崩坏三 - 武器 - 童谣 NPR渲染分析

崩坏三 - 武器 - 童谣 NPR渲染分析 童谣 NPR渲染演示视频链接大致想法Ramp高光效果边缘光效果镰刀刃部效果截图完整代码镰刀身体部分镰刀刃部分 童谣 NPR渲染 演示视频链接 https://www.bilibili.com/video/av68650714 大致想法 镰刀身体部分: 描边 Ramp多阶色 …

python啤酒童谣新手求助

为什么循环语句无法生效

chatgpt赋能python:Python高端玩法

Python高端玩法 如果你已经掌握了Python的基础知识,那么它还有许多高端玩法等着你去探索。在这篇文章中,我们将介绍一些Python高端玩法,包括函数式编程、元编程、异步编程、科学计算和机器学习。 函数式编程 Python是一门支持函数式编程范…

用于 LLM 应用开发的 LangChain 中文版

用于 LLM 应用开发的 LangChain 中文版 1. 模型、提示词和输出解析器1-1. 获取您的 OpenAI API 密钥1-2. Chat API : OpenAI1-3. Chat API : LangChain1-3-1. 模型1-3-2. 提示词模板 1-4. 输出解析器1-4-1. 将 LLM 输出字符串解析为 Python 字典 2. 记忆2-1. 会话缓冲区内存(Co…

MiniGPT4,开源了。

大家好,我是 Jack。 一个月前,我发布过一篇文章,讲解了 GPT4 的发布会。 ChatGPT 的对话能力,想必大家也早已体验过了,无论是文本生成能力,还是写代码的能力,甚至是上下文的关联对话能力&#…

飞书API调用尝试,实现飞书文档对于咨询的收集和实时的更新

摘要:主要就是记录一下自己从零开始做自己需要使用的脚本的过程,其中使用到chatgpt工具,也需要有记录作用,可以记录自己每天的工作进程,CSDN的是基于Markdown的方式,所以这个可以恰好植入到我的学习笔记的网…

恐怖的挥霍速度,每年烧上百亿美元,元宇宙大梦“压垮”Meta,苹果出手能否改写颓局...

点击上方“Python与机器智能”,选择“星标”公众号 第一时间获取价值内容 大数据文摘授权转载自AI前线 作者:刘燕,核子可乐 元宇宙玩家,似乎很擅长“画大饼”。 身为社交媒体巨头的掌门人,扎克伯格已经在虚拟现实之梦上…

GPT-4,大增长时代的序幕

作者|成诚 虽然我们早在 2017 年就预测了超大模型的到来,因此才搞了分布式深度学习框架 OneFlow(github.com/Oneflow-Inc/oneflow/),且 2020 年的 GPT-3 也掀起了大模型热潮(OneFlow——让每一位算法工程师…

ChatGPT4功能大全,附上一些官网推荐的例子

例子 探索一些示例应用程序的可能性 所有类别 问答 根据现有知识回答问题。 语法修正 将句子改成标准英语。 给二年级学生总结 将困难的文本翻译成更简单的概念。 自然语言到 OpenAI API 创建代码以使用自然语言指令调用 OpenAI API。 命令文本 将文本转换为编程命令。 英语到其…

《花雕学AI》34:用13种Prompt玩转AI聊天机器人—揭秘ChatGPT模型

引言: 聊天机器人是一种能够通过自然语言进行交流的智能系统,它可以模仿人类的对话方式,提供各种信息、服务或娱乐。随着人工智能技术的发展,聊天机器人的应用越来越广泛,从电商、教育、医疗、旅游等领域,到…

数字人入门文章速览

语音驱动三维人脸方法 OPPO 数字人语音驱动面部技术实践 【万字长文】虚拟人漫谈 Blendshape学习笔记 人脸重建速览,从3DMM到表情驱动动画 功能强大的python包(四):OpenCV 从Blendshapes到Animoji 3D人脸重建算法汇总 一、3D人脸重…

戴上脑机接口头盔,他用大脑跟别人「说话」

梅宁航 发自 凹非寺 量子位 报道 | 公众号 QbitAI 高位截瘫,全身器官失能,大脑还正常,却已口不能言。 怎么办? 现在最新研究进展来了——利用脑机接口,让别人跟患者的大脑直接对话。 近期,俄勒冈健康与科学…

如何用subtitle edit 将英文字幕转换成中文字幕

如何下载Subtitle edit和英文字幕转成中文字幕 Subtitle Edit是一个免费、中文化、使用方便、功能强大的影片字幕制作、同步、翻译与修改软件。这个软件内建影片即时预览功能,可以汇入与辨识字幕,支持SubRib、MicroDVD、Advanced Sub Station Alpha、Su…