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

news/2024/5/3 11:38:06/文章来源:https://blog.csdn.net/xixiaoyaoww/article/details/128367726

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的技术原理。

ad6fee05c83e6466712341b7aa718c9f.pngRLHF原理dc1a243a08caa1f064d520712e36ad34.png

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

69650f7095c9043822eb4c23087193da.pngRLHF 的下一步是什么?a1f86a9004d73296c05e645886a6a097.png

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

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

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

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

1c91fcf781b4378b324bbad55ef973db.png延伸阅读0766c4993b63b1dfe578ef3adf9f9fb5.png

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

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.

f071937745e656e258457c4f8f183256.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

58ddaae1436ac834ffb1abe29898011a.png

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

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

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

相关文章

工具 | VSCode+ChatGPT 编程利器

本文首发微信公众号:全副武装的大师兄(一个分享前沿技术,生活感受的公众号,关注我,率先了解好玩的工具) 托了GPT同学的福,最近编程时,常会在ChatGPT中说明自己的需求以生成代码&…

Java调用ChatGPT(基于SpringBoot),实现可连续对话和流式输出的ChatGPT API(可自定义实现AI助手)

目录1. 配置阶段1.1 依赖引入1.2 配置application.yml文件1.3 注解添加2 使用2.1 生成回答2.1.1 测试2.2 生成图片2.2.1 测试2.3 下载图片2.3.1 测试2.4 生成流式回答2.4.1 流式回答输出到IDEA控制台2.4.2 流式回答输出到浏览器页面3 AI助手展示本文Demo地址:https:…

奇舞周刊第486期:ChatGPT 的狂飙之路

记得点击文章末尾的“ 阅读原文 ”查看哟~下面先一起看下本期周刊 摘要 吧~奇舞推荐■ ■ ■ChatGPT 的狂飙之路最近随着 ChatGPT 爆火出圈,网络上各种关于 ChatGPT 的争论声也不断;有些人把它当成一个更高级的聊天机器人,有人兴奋地看到了创…

阿里巴巴达摩院通义千问【附申请链接】阿里版ChatGPT

🥑 Welcome to Aedream同学 s blog! 🥑 文章目录报名测试实际体验效果阿里云作为数一数二的全球云平台,阿里的大语言模型通义千问还是值得期待的,凭借强大的算力支持还是有机会赶上人工智能发展浪潮。 早前阿里巴巴达摩院关于人工…

如何在QQ群中接入ChatGPT机器人

最近ChatGPT很火,但是每次要在浏览器上输入显得很麻烦。那么能不能在我们日常使用的软件中接入它让我们能方便的使用它呢?下面为你介绍如何在QQ群中接入chatgpt。环境介绍今天我们的分享主要围绕着大部分用户Windows电脑。基于nodejs。所需工具nodejs(版…

InstructGPT论文详解(学习ChatGPT必看论文)

InstructGPT论文详解(Training language models to follow instructions with human feedback,学习ChatGPT必看论文)返回论文和资料目录 1.导读 继ChatGPT大火后,越来越多人想了解ChatGPT相关技术。OpenAI官网虽然没有给出ChatG…

解放生产力!chatGPT接入Excel与Word教程(需要魔法上网,不用的都是骗人的)

解放生产力!chatGPT接入Excel与Word教程(需要魔法上网,不用的都是骗人的)!!!默认你注册过openAI账号了并使用过chatGPT了,本文就不教如何注册GPT啦,网上全是教程&#xf…

已获得百度文心一言内测资格,和ChatGPT3.5简单对比测评

今日获得了百度刚发布的文心一言的内测资格。整体感觉还不错哟。 闲来无事,使用同样的问题,用文心一言和我们基于ChatGPT的GPT-3.5-Turbo接口开发的免费镜像网站作了一下对比。给各位同学提前做一下参考。 传送门:https://ai.bo-e.com/ 接口…

ChatGPT技术与市场动态

ChatGPT服务器,深度拆解(2023)ChatGPT发布之后,引发了全球范围的关注和讨论,国内各大厂商相继宣布GPT模型开发计划。据各公司官网,2023年2月7日,百度宣布将推出ChatGPT类似产品“文心一言”&…

PHP - ChatGpt 学习 仅供参考

由于最近ChatGpt 大火,但是门槛来说是对于大家最头疼的环节, 由此ChatGpt 有一个API 可以仅供大伙对接 让我来说下资质: 1:首先要搞得到一个 ChatGpt 的账户, 会获得一个KEY,该key为访问API核心&#xff0…

ChatGPT王炸更新!能联网获取新知识,可与5000+个应用交互,网友:太疯狂了

梦晨 杨净 发自 凹非寺量子位 | 公众号 QbitAI都说ChatGPT是AI的“iPhone时刻”,现在属于它的“应用商店”来了。OpenAI刚刚又甩出一个王炸——宣布推出插件功能,赋予ChatGPT使用工具、联网、运行计算的能力。例如在官方演示中,ChatGPT一旦接…

chatgpt的多种免费使用方式

很多朋友因为各种限制无法开通#ChatGPT Plus,而申请OpenAI的GPT-4 API也要慢慢排队(我的也还没下来)。于是在这里我搜集了X个可以免费使用的方法。 注:哪有什么真正免费,只不过有人在替你付钱。因此下述的方法都有限制…

ChatGPT带你轻松入门嵌入式,实现51、STM32、Arduino、树莓派、Linux各种点灯程序...

关注星标公众号,不错过精彩内容作者 | strongerHuang微信公众号 | strongerHuang最近两个月什么最火?我想 ChatGPT 必定算其中一个。这东西能有多火?我之前一直以为只有在互联网等技术领域比较火,直到前不久,我们当地政…

搭建个人专属ChatGPT(零成本且不需要XX)

本篇文章假定读者已经拥有OpenAPI帐号,并且已经获取了API访问的secret key。 本文部分内容由ChatGPT生成 ChatGPT网页版开发 本章节描述了如何从零开发一个私有化版本的 ChatGPT 网站,主要使用技术栈为 NextJS TailwindCSS chatgpt ,其中 …

6 个令人惊艳的 ChatGPT 项目,开源了!

公众号关注 “GitHubDaily”设为 “星标”,每天带你逛 GitHub!过去一周,技术圈的各个爆炸新闻,可以说是让我真正见证到了什么叫人间一日,AI 一年。首先是 New Bing 对所有用户放开,注册即可用,然…

关于 ChatGPT 必看的 10 篇论文

目录1 Transformer2 GPT-33 InstructGPT4 Sparrow5 RLHF6 TAMER7 PPO8 In-Context Learning8.1 Why Can GPT Learn In-Context8.2 What learning algorithm is in-context learning9 Prompt参考团队博客: CSDN AI小组 相关阅读 ChatGPT 简介从 ELMo 到 ChatGPT:历数…

前沿重器[31] | 理性聊聊ChatGPT

前沿重器栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经…

最强的数据增强--ChatGPT?

在许多自然语言处理(NLP)任务中,文本数据增强是克服样本量有限挑战的有效策略。 目前的文本数据增强方法要么不能保证生成数据的正确标记(缺乏可信度),要么不能保证生成数据的足够多样性(缺乏完整性),要么两者兼有。 ChatGPT在具有无与伦比…

chatgpt_academic学术优化(配置使用教学-保姆级)

一、Anaconda 下载及安装 1.官网下载链接 :www.anaconda.com/ 2.安装 (1)下载完成后,双击exe进行安装 (2)安装完成后,点击Anaconda Navigator,然后点击 CMD.exe Prompt &#xff0…

未来以来,可能是最好ChatGPT学习社群来了!

最近ChatGPT大火,但是大部分人都停留在入门级阶段。但有一点是毫无疑问的,ChatGPT带动的这波浪潮将会彻底改变我们的生活。我最近也一直在研究如何将ChatGPT与大数据结合起来,有进展会与大家分享。今天分享的这个社群也是自己抱有极高期望&am…