抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文

66922f3e018dcc012820733c54da9016.jpeg

文 | 卖萌酱

大家好,我是卖萌酱。

前几天,抱抱脸公司(HuggingFace)发表了一篇博客[1],详细讲解了ChatGPT背后的技术原理——RLHF。

笔者读过之后,觉得讲解的还是蛮清晰的,因此提炼了一下核心脉络,希望给对ChatGPT技术原理感兴趣的小伙伴带来帮助。

此外,文末整理了几篇关于 RLHF 最热门的12篇必读论文,卖萌酱打包好挂在公众号后台了,感兴趣的小伙伴可以在公众号“夕小瑶的卖萌屋”后台回复【1212】领取。

在过去几年里,基于prompt范式的AI生成模型取得了巨大的成功,诞生了不少有意思的AI应用,例如AI写小说,AI写代码,AI画图甚至AI做视频等。

但其实这种生成模型很难训练。以语言模型为例,大多是采用“自回归生成”的方式,通过循环解码的方式来逐字或逐词生成内容。训练时往往简单的基于上下文信息去预测下一个词,然后用交叉熵来计算每个词的loss。显然这种token-level的loss不能很好的从整体输出的层面去指导模型优化方向。

为了能刻画模型输出的整体质量(而不是单个词),人们往往用BLEU或ROUGH等评价指标来刻画模型输出与人类偏好的相近程度,但这也仅仅是在评价的层面,模型在训练的时候是见不到这些人类真实的偏好的。

因此,训练阶段,如果直接用人的偏好(或者说人的反馈)来对模型整体的输出结果计算reward或loss,显然是要比上面传统的“给定上下文,预测下一个词”的损失函数合理的多。基于这个思想,便引出了本文要讨论的对象——RLHF(Reinforcement Learning from Human Feedback):即,使用强化学习的方法,利用人类反馈信号直接优化语言模型

RLHF也是最近大火的ChatGPT背后的训练方法。

97661b0c4ef9144c906c112e8fd477c5.png

ChatGPT的表现与以往的对话系统(或者聊天机器人)差异太大了,给大家留下了深刻的印象。下面就来详细讲解RLHF的技术原理。

RLHF原理

RLHF的训练过程可以分解为三个核心步骤:

  • 预训练语言模型(LM)

  • 收集数据并训练奖励模型

  • 通过强化学习微调 LM

首先,我们将了解第一步——预训练语言模型。

阶段1:预训练语言模型

首先,我们需要选一个经典的预训练语言模型作为初始模型。例如,OpenAI 在其第一个RLHF 模型 InstructGPT 中用的小规模参数版本的 GPT-3;DeepMind 则使用了2800 亿参数的 Gopher 模型。这些语言模型往往见过大量的 [Prompt,Text] 对,输入一个prompt(提示),模型往往能输出还不错的一段文本。

预训练模型可以在人工精心撰写的语料上进行微调,但这一步不是必要的。例如,OpenAI在人工撰写的优质语料上对预训练模型进行了微调;Anthropic将他们的语言模型在“有用、真实、无害”价值观导向的语料上做了一步模型蒸馏。不过,这种人工撰写的优质语料一般成本是非常高的。

总结一下,这个步骤,可以用如下图所示:

70e8e1ae4a373aaf12044558642568d0.png

此外,到底哪个预训练模型版本是RLHF热启的最优选择?这其实没有一个定论,仍是一个开放问题。

再之后,我们需要基于这个初始语言模型产出的数据来训练一个 奖励模型(reward model,简称RM)。接下来,就会引入人类的反馈信号了。

阶段2:奖励模型的训练

一个奖励模型(RM)的目标是刻画模型的输出是否在人类看来表现不错。即,输入 [提示(prompt),模型生成的文本] ,输出一个刻画文本质量的标量数字。

用于训练奖励模型的Prompt数据一般来自于一个预先富集的数据集,比如Anthropic的Prompt数据主要来自Amazon Mechanical Turk上面的一个聊天工具;OpenAI的Prompt数据则主要来自那些调用GPT API的用户。这些prompts会被丢进初始的语言模型(第一阶段的模型)里来生成文本。

整体流程如图所示:

4e97297dd9719e6e943b7b57ba2c326f.png

奖励模型可以看做一个判别式的语言模型,因此我们可以用一个预训练语言模型热启,而后在 [x=[prompt,模型回答], y=人类满意度] 构成的标注语料上去微调,也可以直接随机初始化,在语料上直接训练。

如上图所示,标注人员的任务则是对初始语言模型生成的文本进行排序。有人可能会奇怪,为啥不直接让标注人员对文本进行打分呢?

这是因为研究人员发现不同的标注员,打分的偏好会有很大的差异(比如同样一段精彩的文本,有人认为可以打1.0,但有人认为只能打0.8),而这种差异就会导致出现大量的噪声样本。若改成标注排序,则发现不同的标注员的打分一致性就大大提升了。

那具体怎么操作呢?一种比较有效的做法是“pair-wise”,即给定同一个prompt,让两个语言模型同时生成文本,然后比较这两段文本哪个好。最终,这些不同的排序结果会通过某种归一化的方式变成标量信号(即point-wise)丢给模型训练。

一个比较有趣的观测是,奖励模型的大小最好是跟生成模型的大小相近,这样效果会比较好。一种比较直观的解释就是,要理解生成模型的输出内容,这份理解能力所需要的模型参数规模就得恰好是跟生成模型相近才能做到(当然,如果奖励模型规模更大那应该更没问题,但理论上没必要)。

至此,我们有了一个初始的语言模型来生成文本,以及一个奖励模型(RM)来判断模型生成的文本是否优质(迎合人类偏好)。接下来会讲解如何使用强化学习(RL)来基于奖励模型来优化初始的语言模型。

阶段3:基于 RL 进行语言模型优化

我们将初始语言模型的微调任务建模为强化学习(RL)问题,因此需要定义策略(policy)、动作空间(action space)和奖励函数(reward function)等基本要素。

显然,策略就是基于该语言模型,接收prompt作为输入,然后输出一系列文本(或文本的概率分布);而动作空间就是词表所有token在所有输出位置的排列组合(单个位置通常有50k左右的token候选);观察空间则是可能的输入token序列(即prompt),显然也相当大,为词表所有token在所有输入位置的排列组合;而奖励函数则是基于上一章节我们训好的RM模型,配合一些策略层面的约束进行的奖励计算。

然后我们来看一下具体怎么计算得到奖励(reward)。

首先,基于前面提到的预先富集的数据,从里面采样prompt输入,同时丢给初始的语言模型和我们当前训练中的语言模型(policy),得到俩模型的输出文本y1,y2。然后用奖励模型RM对y1、y2打分,判断谁更优秀。显然,打分的差值便可以作为训练策略模型参数的信号,这个信号一般通过KL散度来计算“奖励/惩罚”的大小。显然,y2文本的打分比y1高的越多,奖励就越大,反之惩罚则越大。这个reward信号就反映了文本整体的生成质量。

有了这个reward,便可以根据 Proximal Policy Optimization (PPO) 算法来更新模型参数了。

该阶段流程如下图所示:

752d369468c6de8ee06e9fa93348242e.png

通过以上过程不难想到,完全可以迭代式的更新奖励模型(RM)和策略模型(policy),让奖励模型对模型输出质量的刻画愈加精确,策略模型的输出则愈能与初始模型拉开差距,使得输出文本变得越来越符合人的认知。Anthropic就曾经在论文里讨论了这种做法,并命名为 "Iterated Online RLHF" ,感兴趣的小伙伴可以看下面这篇论文,这里就不展开了:

https://arxiv.org/abs/2204.05862

RLHF 的下一步是什么?

虽然ChatGPT为代表的RLHF技术非常有影响力,引发了巨大的关注,但仍然存在若干局限性:

  1. RLHF 范式训练出来的这些模型虽然效果更好,但仍然可能输出有害或事实上不准确的文本。这种不完美则是 RLHF 的长期挑战和优化目标。

  2. 在基于 RLHF 范式训练模型时,人工标注的成本是非常高昂的,而 RLHF 性能最终仅能达到标注人员的知识水平。此外,这里的人工标注主要是为RM模型标注输出文本的排序结果,而若想要用人工去撰写答案的方式来训练模型,那成本更是不可想象的。

  3. RLHF的流程还有很多值得改进的地方,其中,改进 RL 优化器显得尤为重要。PPO 是一种基于信赖域优化的相对较旧的RL算法,但没有其他更好的算法来优化 RLHF 了。

延伸阅读

以下是迄今为止关于 RLHF 的几篇经典论文和近期热门论文。卖萌酱打包好挂在公众号后台了,感兴趣的小伙伴可以在公众号“夕小瑶科技说”后台回复【1212】领取。

 研究测试传送门(不需要梯):

  • ChatGPT(GPT-3.5-Turbo):
    • https://hujiaoai.cn
  • GPT-4:
    • ​​​​​​https://gpt4test.com

RLHF论文列表:

  • Deep Reinforcement Learning from Human Preferences (Christiano et al. 2017): RLHF applied on preferences between Atari trajectories.

  • Fine-Tuning Language Models from Human Preferences (Zieglar et al. 2019): An early paper that studies the impact of reward learning on four specific tasks.

  • Learning to summarize with human feedback (Stiennon et al., 2020): RLHF applied to the task of summarizing text. Also, Recursively Summarizing Books with Human Feedback (OpenAI Alignment Team 2021), follow on work summarizing books.

  • WebGPT: Browser-assisted question-answering with human feedback (OpenAI, 2021): Using RLHF to train an agent to navigate the web.

  • InstructGPT: Training language models to follow instructions with human feedback (OpenAI Alignment Team 2022): RLHF applied to a general language model [Blog post on InstructGPT].

  • GopherCite: Teaching language models to support answers with verified quotes (Menick et al. 2022): Train a LM with RLHF to return answers with specific citations.

  • Sparrow: Improving alignment of dialogue agents via targeted human judgements (Glaese et al. 2022): Fine-tuning a dialogue agent with RLHF

  • ChatGPT: Optimizing Language Models for Dialogue (OpenAI 2022): Training a LM with RLHF for suitable use as an all-purpose chat bot.

  • Scaling Laws for Reward Model Overoptimization (Gao et al. 2022): studies the scaling properties of the learned preference model in RLHF.

  • Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback (Anthropic, 2022): A detailed documentation of training a LM assistant with RLHF.

  • Red Teaming Language Models to Reduce Harms: Methods, Scaling Behaviors, and Lessons Learned (Ganguli et al. 2022): A detailed documentation of efforts to “discover, measure, and attempt to reduce [language models] potentially harmful outputs.”

  • Dynamic Planning in Open-Ended Dialogue using Reinforcement Learning (Cohen at al. 2022): Using RL to enhance the conversational skill of an open-ended dialogue agent.

参考文献:

[1]"HuggingFace Blog" https://huggingface.co/blog/rlhf

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

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

相关文章

ChatGPTAI画图-微信小程序 Robot Buddy

同时拥有ChatGPT的聊天功能和AI画图功能的微信小程序,欢迎大家体验: 微信搜索小程序“Robot Buddy”或者扫描下方二维码即可使用:

Midjourney 能识图了,这是个好事儿吗?

进化 前些日子,有人发了这样一张图,揶揄现在的 AI 检测器。说是「魔法战胜了魔法」。 这张图,是用 AI 生成的。但是 AI 检测器显然没有发现。在它看来,这张图片「天然成分」有93%;人工智能生成的可能性,只有…

OpenAI无意间发现了一个有史以来最赚钱的商业模式

正如这些论文所说那样,引发人工智能革命的论文有个朗朗上口的标题:注意力就是你的全部所需(Attention is All You Need.)。 这篇论文的作者是 Google Brain 的一支团队,发表于 2017 年,里面介绍了现在已经十…

我决定给 ChatGPT 做个缓存层 >>> Hello GPTCache

🌟 写在前面 黄老板的一句【AI 的 iPhone 时刻已至】震撼了半个科技圈。或许,应该把这句话再扩展一下:AI 的 iPhone 时刻早已势不可挡,它不是平静随和地跟大家 say hi,而是作为一个强悍的巨人携着一把名为 ChatGPT 的斧…

ModaHub魔搭社区:我决定给 ChatGPT 做个缓存层GPTCache

目录 由一次午饭时闲聊开始的项目…… LLM 缓存层的可行性到底有多少? 为什么不是 Redis? 从零搭建 GPTCache

修改几行代码就让LLM应用提速100多倍!这个团队两周搭建ChatGPT缓存层,曾被老黄OpenAI点赞...

允中 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT爆火,为何大模型却依然没有得到广泛的应用? 原因无它,受制于性能和成本。 最近,有这样一个项目引发业内关注和讨论——GPTCache(https://github.com/zilliztech/GPTCac…

我决定给 ChatGPT 做个缓存层 Hello GPTCache

🌟 写在前面 黄老板的一句【AI 的 iPhone 时刻已至】震撼了半个科技圈。或许,应该把这句话再扩展一下:AI 的 iPhone 时刻早已势不可挡,它不是平静随和地跟大家 say hi,而是作为一个强悍的巨人携着一把名为 ChatGPT 的斧…

Prompt交易平台;ChatGPT构建自动化工作流;7万字ChatGPT学习笔记;大模型训练避坑指南 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 『ChatGPT 用户周留存稳定在 30% 左右』三分之一的用户习惯和需求被完全改变 🤖 『谷歌 | Bard开放公众测试』体验还行。f…

Chat GPT:软件测试人员的危机?

Chat GPT,作为一个引起科技巨头“红色警报”的人工智能语言模型,短期内便席卷全球,上线仅两个月活跃用户破亿。比尔盖茨更是如此评价“这种AI技术出现的重大历史意义,不亚于互联网和个人电脑的诞生。” 在各个行业备受关注的Chat …

chatgpt赋能python:Python程度加速方法

Python程度加速方法 Python是一种灵活且易于学习的编程语言,但它在处理大规模数据和执行计算密集型任务时可能会显得比较慢。幸运的是,有许多针对Python的加速程序,可以帮助你优化Python的运行速度。在本文中,我们将介绍几种加速…

chatgpt赋能python:Python加速:如何提升代码运行速度

Python加速:如何提升代码运行速度 作为一名有10年Python编程经验的工程师,我了解到Python是一门强大而灵活的语言,被广泛应用于Web开发、数据分析、机器学习等领域。然而,随着应用程序的复杂性增加,我们也需要考虑如何…

chatgpt赋能python:Python加速方法——提升运行效率的必修课

Python加速方法——提升运行效率的必修课 Python是一门被广泛应用于人工智能、机器学习、数据处理等领域的高级编程语言。虽然它易于学习和上手,但在处理大规模数据等复杂场景时,Python的运行效率往往成为了制约因素。为了避免因运行效率问题而影响产品…

程序员的未来属于「伪代码」!Nature专栏:用ChatGPT加速科研编程的三种姿势

视学算法报道 编辑:LRS 【导读】ChatGPT让科研编程不再难! 基于生成式人工智能工具,比如ChatGPT、Bard等聊天机器人的出现,以及如何将AI工具用于学术研究引发了巨大的争议,但与此同时,AI生成的代码用于科…

程序员的未来属于「伪代码」 Nature专栏:用ChatGPT加速科研编程的三种姿势

新智元报道 编辑:LRS 【新智元导读】ChatGPT让科研编程不再难! 基于生成式人工智能工具,比如ChatGPT、Bard等聊天机器人的出现,以及如何将AI工具用于学术研究引发了巨大的争议,但与此同时,AI生成的代码…

对话数字栩生宋震:ChatGPT加速了「数字人」迈向「西部世界」化

未来的数字人既要有好看的皮囊,又要有有趣的灵魂,就像美剧《西部世界》里的人一样,那就是人人幻想的世界。我们始终坚信未来数字人会朝着那个方向发展,而且现在速度会越来越快。 作者:王立新 出品:碳链价值…

GPT4来了!微软云能否反超亚马逊夺冠,就靠它了

文|光锥智能,作者|刘雨琦 “Azure(微软云)能否反超AWS(亚马逊云)夺冠,就靠ChatGPT了。” 今天凌晨,GPT4横空出世,支持图像输入和混合输入,多模态…

ChatGPT 标志着 AI 进入 iPhone 时刻 | 开谈

整理 | 禾木木 责编 | 梦依丹 出品 | CSDN(ID:CSDNnews) 5 天注册用户超 100 万,60 天用户破亿,引得国内外大厂纷纷追随 AIGC 步伐,史上增速最快的消费级应用程序 ChatGPT 更是引领 AI 在科技圈一路“狂…

ChatGPT 之后,B 端产品设计会迎来颠覆式革命吗?| Liga妙谈

近日,脑机接口公司 Neuralink 宣布,其植入式脑机接口设备首次人体临床研究已被准许启动。遥想当年,我们还嘲讽罗老师「动嘴做 PPT」,谁曾想不久后我们可能连嘴都不用动🙊。 脑机接口何时会引爆人机交互革命尚未可知&a…

马斯克要买地当「城主」/ 苹果手表引入ChatGPT/ 小鹏辟谣多名核心高管离职…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好,今天是3月10日星期五,想好明天去哪里嗨皮了嘛。 最近科技圈都发生了哪些新鲜事?一起来和日报君看看。 马斯克计划购地建城 马斯克已经买好土地,准备建城了?&#xff…

Python发送邮件(以QQ邮箱为例)

1.首先去QQ邮箱 设置-》账户 找到邮箱服务 2.打开smtp服务,生成授权码,这里需要QQ邮箱绑定手机号发送验证码发送一条短信进行验证。 发送后,复制授权码。稍后会用到。 3.编写程序 import ssl import requests import requests import json…