一文读懂chatGPT模型原理(无公式)
开发者(KaiFaX)
面向全栈工程师的开发者专注于前端、Java/Python/Go/PHP的技术社区(本文是chatGPT原理介绍,但没有任何数学公式,可以放心食用)
前言这两天,chatGPT模型真可谓称得上是狂拽酷炫D炸天的存在了。一度登上了知乎热搜,这对科技类话题是非常难的存在。不光是做人工智能、机器学习的人关注,而是大量的各行各业从业人员都来关注这个模型,真可谓空前盛世。
我赶紧把openai以往的GPT-n系列论文又翻出来,重新学习一下,认真领会大规模预训练语言模型(LargeLanguageModel)的强大之处。
可能很多深度学习相关从业人员的感受和我一样,大家之前对LLM的感受依然是,预训练+finetune,处理下游任务,依然需要大量的标注数据和人工干预,怎么突然间,chatGPT就智能到如此地步?
接下来,我简要梳理一下openai的GPT大模型的发展历程。
一、还得从Bert说起2018年,自然语言处理NLP领域也步入了LLM时代,谷歌出品的Bert模型横空出世,碾压了以往的所有模型,直接在各种NLP的建模任务中取得了最佳的成绩。
Bert做了什么,主要用以下例子做解释。
请各位做一个完形填空:___________和阿里、腾讯一起并成为中国互联网BAT三巨头。
请问上述空格应该填什么?有的人回答“百度”,有的人可能觉得,“字节”也没错。但总不再可能是别的字了。
不论填什么,这里都表明,空格处填什么字,是受到上下文决定和影响的。
Bert所作的事就是从大规模的上亿的文本预料中,随机地扣掉一部分字,形成上面例子的完形填空题型,不断地学习空格处到底该填写什么。所谓语言模型,就是从大量的数据中学习复杂的上下文联系。
二、GPT初代与此同时,openai早于Bert出品了一个初代GPT模型。
他们大致思想是一样的。都基于Transformer这种编码器,获取了文本内部的相互联系。
Transformer结构编解码的概念广泛应用于各个领域,在NLP领域,人们使用语言一般包括三个步骤:
接受听到或读到的语言->大脑理解->输出要说的语言。
语言是一个显式存在的东西,但大脑是如何将语言进行理解、转化和存储的,则是一个目前仍未探明的东西。因此,大脑理解语言这个过程,就是大脑将语言编码成一种可理解、可存储形式的过程,这个过程就叫做语言的编码。
相应的,把大脑中想要表达的内容,使用语言表达出来,就叫做语言的解码。
在语言模型中,编码器和解码器都是由一个个的Transformer组件拼接在一起形成的。
Transformer编码器组成的Encoder-decoder模型这里不展开讲Transformer里的内部结构,仅仅讲一下Bert和GPT 的区别。
两者最主要的区别在于,Bert仅仅使用了encoder也就是编码器部分进行模型训练,GPT仅仅使用了decoder部分。两者各自走上了各自的道路,根据我粗浅的理解,GPT的decoder模型更加适应于文本生成领域。
GPT初代其实个人认为(当然普遍也都这么认为)略逊色于Bert,再加上宣传地不够好,影响力也就小于Bert。
我相信很多的NLP从业者对LLM的理解也大都停留在此。即,本质上讲,LLM是一个非常复杂的编码器,将文本表示成一个向量表示,这个向量表示有助于解决NLP的任务。
三、GPT-2自从Bert炸街后,跟风效仿的改进模型也就越来越多了,比如albert、roberta、ERNIE,BART、XLNET、T5等等五花八门。
最初的时候,仅仅是一个完形填空任务就可以让语言模型有了极大进步,那么,给LLM模型出其它的语言题型,应该也会对模型训练有极大的帮助。
想要出语言题型不是很简单么,什么句子打乱顺序再排序、选择题、判断题、改错题、把预测单字改成预测实体词汇等等,纷纷都可以制定数据集添加在模型的预训练里。很多模型也都是这么干的。
既然出题也可以,把各种NLP任务的数据集添加到预训练阶段当然也可以。
这个过程也和人脑很像,人脑是非常稳定和泛化的,既可以读诗歌,也可以学数学,还可以学外语,看新闻,听音乐等等,简而言之,就是一脑多用。
我们一般的NLP任务,文本分类模型就只能分类,分词模型就只能分词,机器翻译也就只能完成翻译这一件事,非常不灵活。
GPT-2主要就是在GPT的基础上,又添加了多个任务,扩增了数据集和模型参数,又训练了一番。
GPT-2学习效果图既然多个任务都在同一个模型上进行学习,还存在一个问题,这一个模型能承载的并不仅仅是任务本身,“汪小菲的妈是张兰”,这条文字包含的信息量是通用的,它既可以用于翻译,也可以用于分类,判断错误等等。也就是说,信息是脱离具体NLP任务存在的,举一反三,能够利用这条信息,在每一个NLP任务上都表现好,这个是元学习(meta-learning),实际上就是语言模型的一脑多用。
四、GPT-3大模型中的大模型首先,GPT-3的模型所采用的数据量之大,高达上万亿,模型参数量也十分巨大,学习之复杂,计算之繁复不说了,看图吧。
GPT-3里的大模型计算量是Bert-base的上千倍。统统这些都是在燃烧的金钱,真就是allyouneedismoney。如此巨大的模型造就了GPT-3在许多十分困难的NLP任务,诸如撰写人类难以判别的文章,甚至编写SQL查询语句,React或者JavaScript代码上优异的表现。
首先GPT-n系列模型都是采用decoder进行训练的,也就是更加适合文本生成的形式。也就是,输入一句话,输出也是一句话。也就是对话模式。
对话我们是如何学会中文的?通过从0岁开始,听,说,也就是对话。
我们是如何学外语的?看教材,听广播,背单词。唯独缺少了对话!正是因为缺少了对话这个高效的语言学习方式,所以我们的英语水平才如此难以提高。
对于语言模型,同理。
对话是涵盖一切NLP任务的终极任务。从此NLP不再需要模型建模这个过程。比如,传统NLP里还有序列标注这个任务,需要用到CRF这种解码过程。在对话的世界里,这些统统都是冗余的。
其实CRF这项技术还是蛮经典的,在深度学习这块,CRF这也才过去没几年。sigh……
in-contextlearning以往的预训练都是两段式的,即,首先用大规模的数据集对模型进行预训练,然后再利用下游任务的标注数据集进行finetune,时至今日这也是绝大多数NLP模型任务的基本工作流程。
GPT-3就开始颠覆这种认知了。它提出了一种in-context学习方式。这个词没法翻译成中文,下面举一个例子进行解释。
用户输入到GPT-3:你觉得JioNLP是个好用的工具吗?
GPT-3输出1:我觉得很好啊。
GPT-3输出2:JioNLP是什么东西?
GPT-3输出3:你饿不饿,我给你做碗面吃……
GPT-3输出4:Doyouthinkjionlpisagoodtool?
按理来讲,针对机器翻译任务,我们当然希望模型输出最后一句,针对对话任务,我们希望模型输出前两句中的任何一句。显然做碗面这个输出句子显得前言不搭后语。
这时就有了in-context学习,也就是,我们对模型进行引导,教会它应当输出什么内容。如果我们希望它输出翻译内容,那么,应该给模型如下输入:
用户输入到GPT-3:请把以下中文翻译成中文:你觉得JioNLP是个好用的工具吗?
如果想让模型回答问题:
用户输入到GPT-3:模型模型你说说,你觉得JioNLP是个好用的工具吗?
OK,这样模型就可以根据用户提示的情境,进行针对性的回答了。
这里,只是告知了模型如何做,最好能够给模型做个示范:
用户输入到GPT-3:请把以下中文翻译成中文:苹果=>apple;你觉得JioNLP是个好用的工具吗?=>
其中苹果翻译成apple,是一个示范样例,用于让模型感知该输出什么。只给提示叫做zero-shot,给一个范例叫做one-shot,给多个范例叫做few-shot。
范例给几个就行了,不能再给多了!一个是,咱们没那么多标注数据,另一个是,给多了不就又成了finetune模式了么?
在GPT-3的预训练阶段,也是按照这样多个任务同时学习的。比如“做数学加法,改错,翻译”同时进行。这其实就类似前段时间比较火的prompt。
这种引导学习的方式,在超大模型上展示了惊人的效果:只需要给出一个或者几个示范样例,模型就能照猫画虎地给出正确答案。注意啊,是超大模型才可以,一般几亿参数的大模型是不行的。(我们这里没有小模型,只有大模型、超大模型、巨大模型)
这个表格彷佛在嘲讽我:哎,你没钱,你就看不着这种优质的效果,你气不气?
五、chatGPT终于说到了主角,能看到这里的,可以关注一下JioNLP公众号吗?我写的也够累的。
charGPT模型上基本上和之前都没有太大变化,主要变化的是训练策略变了。
强化学习几年前,alphaGO击败了柯洁,几乎可以说明,强化学习如果在适合的条件下,完全可以打败人类,逼近完美的极限。
强化学习非常像生物进化,模型在给定的环境中,不断地根据环境的惩罚和奖励(reward),拟合到一个最适应环境的状态。
NLP+强化学习强化学习之所以能比较容易地应用在围棋以及其它各种棋牌游戏里,原因就是因为对莫alphaGo而言,环境就是围棋,围棋棋盘就是它的整个世界。
而几年前知乎上就有提问,NLP+强化学习,可以做吗?怎么做呢?
底下回答一片唱衰,原因就是因为,NLP所依赖的环境,是整个现实世界,整个世界的复杂度,远远不是一个19乘19的棋盘可以比拟的。无法设计反馈惩罚和奖励函数,即reward函数。除非人们一点点地人工反馈。
哎,open-ai的chatGPT就把这事给干了。
不是需要人工标反馈和奖励吗?那就撒钱,找40个外包,标起来!
这种带人工操作的reward,被称之为RLHF(ReinforcementLearningfromHumanFeedback)。
具体操作过程就是下图的样子,采用强化学习的方式来对模型进行训练。已经抛弃了传统的LM方式。
这里重点是第二部中,如何构建一个reward函数,具体就是让那40名外包人员不断地从模型的输出结果中筛选,哪些是好的,哪些是低质量的,这样就可以训练得到一个reward模型。
通过reward模型来评价模型的输出结果好坏。
讲真,这个reward模型,《黑客帝国》的母体matrix既视感有木有??!!
只要把预训练模型接一根管子在reward模型上,预训练模型就会开始像感知真实世界那样,感知reward。
由此,我们就可以得到这个把全世界都震碎的高音!(误,模型)
chatGPT功能一览能回答知乎上的问题
你别想耍它
能回答困难的问题
能理解乱序文本
会做高数
知道自己是程序,不会做你女票
还能处理程序bug
六、影响NLP领域的影响个人认为,NLP领域的一些里程碑性的技术重要性排序如下:
chatGPT>word2vec>Bert(纯个人看法)
chatGPT的关注度已经很大程度让人们感觉到,什么天猫精灵、小爱同学等等人工智障的时代似乎过去了。只要模型足够大,数据足够丰富,reward模型经过了更多的人迭代和优化,完全可以创造一个无限逼近真实世界的超级openai大脑。
当然,chatGPT依然是存在回答不好的情况的,比如会重复一些词句,无法分清楚事实等等。
而且,chatGPT目前看,它是没有在推理阶段连接外部信息的。
模型知道自己的回答边界,知道自己只是一个没有情感的回答工具。那么,试想openai把外部信息也导入到chatGPT里。
另一些影响我看到chatGPT居然可以写代码,还能帮我改代码,debug,作为程序员,我不禁深深陷入了沉思。
据说,debug程序员网站stackoverflow,已经下场封杀chatGPT了。
当然,完全不仅仅是程序界。据说GPT-4正在做图文理解,那么,对于教师、医生、咨询师、等等等等,各行各业,是不是都是一个巨大的冲击?所谓专业领域的知识门槛,也将被模型一步踏平。到时候,可能人类真的要靠边站了,除了某些高精尖的行业精英。
1. 回复“m”可以查看历史记录;
2. 回复“h”或者“帮助”,查看帮助;
开发者已开通多个技术群交流学习,请加若飞微信:1321113940 (暗号k)进开发群学习交流
说明:我们都是开发者。视频或文章来源于网络,如涉及版权或有误,请您与若飞(1321113940)联系,将在第一时间删除或者修改,谢谢!
开发者:KaiFaX面向全栈工程师的开发者专注于前端、Java/Python/Go/PHP的技术社区
深入浅出!ChatGPT背后的原理详解
作者|MarcoRamponi编译|机器之心
大家好,这里是NewBeeNLP。ChatGPT发布以来,已经吸引了无数人一探究竟。但ChatGPT实际上是如何工作的?尽管它内部实现的细节尚未公布,我们却可以从最近的研究中一窥它的基本原理。
ChatGPT是OpenAI发布的最新语言模型,比其前身GPT-3有显著提升。与许多大型语言模型类似,ChatGPT能以不同样式、不同目的生成文本,并且在准确度、叙述细节和上下文连贯性上具有更优的表现。它代表了OpenAI最新一代的大型语言模型,并且在设计上非常注重交互性。
OpenAI使用监督学习和强化学习的组合来调优ChatGPT,其中的强化学习组件使ChatGPT独一无二。OpenAI使用了「人类反馈强化学习」(RLHF)的训练方法,该方法在训练中使用人类反馈,以最小化无益、失真或偏见的输出。
本文将剖析GPT-3的局限性及其从训练过程中产生的原因,同时将解释RLHF的原理和理解ChatGPT如何使用RLHF来克服GPT-3存在的问题,最后将探讨这种方法的局限性。
大型语言模型中的能力与一致性
「一致性vs能力」可以被认为是「准确性vs精确性」的更抽象的类比。
在机器学习中,模型的能力是指模型执行特定任务或一组任务的能力。模型的能力通常通过它能够优化其目标函数的程度来评估。例如,用来预测股票市场价格的模型可能有一个衡量模型预测准确性的目标函数。如果该模型能够准确预测股票价格随时间的变化,则认为该模型具有很高的执行能力。
一致性关注的是实际希望模型做什么,而不是它被训练做什么。它提出的问题是「目标函数是否符合预期」,根据的是模型目标和行为在多大程度上符合人类的期望。假设要训练一个鸟类分类器,将鸟分类为「麻雀」或「知更鸟」,使用对数损失作为训练目标,而最终目标是很高的分类精度。该模型可能具有较低的对数损失,即该模型的能力较强,但在测试集上的精度较差,这就是一个不一致的例子,模型能够优化训练目标,但与最终目标不一致。
原始的GPT-3就是非一致模型。类似GPT-3的大型语言模型都是基于来自互联网的大量文本数据进行训练,能够生成类似人类的文本,但它们可能并不总是产生符合人类期望的输出。事实上,它们的目标函数是词序列上的概率分布,用来预测序列中的下一个单词是什么。
但在实际应用中,这些模型的目的是执行某种形式的有价值的认知工作,并且这些模型的训练方式与期望使用它们的方式之间存在明显的差异。尽管从数学上讲,机器计算词序列的统计分布可能是建模语言的高效选择,但人类其实是通过选择最适合给定情境的文本序列来生成语言,并使用已知的背景知识和常识来辅助这一过程。当语言模型用于需要高度信任或可靠性的应用程序(如对话系统或智能个人助理)时,这可能是一个问题。
尽管这些基于大量数据训练的大模型在过去几年中变得极为强大,但当用于实际以帮助人们生活更轻松时,它们往往无法发挥潜力。大型语言模型中的一致性问题通常表现为:
提供无效帮助:没有遵循用户的明确指示。内容胡编乱造:虚构不存在或错误事实的模型。缺乏可解释性:人们很难理解模型是如何得出特定决策或预测的。内容偏见有害:一个基于有偏见、有害数据训练的语言模型可能会在其输出中出现这种情况,即使它没有明确指示这样做。但具体来说,一致性问题源自何处?语言模型的训练方式本身就容易产生不一致吗?
语言模型训练策略如何产生不一致?
Next-token-prediction和masked-language-modeling是用于训练语言模型的核心技术。在第一种方法中,模型被给定一个词序列作为输入,并被要求预测序列中的下一个词。如果为模型提供输入句子:
“Thecatsatonthe”
它可能会将下一个单词预测为「mat」、「chair」或「floor」,因为在前面的上下文中,这些单词出现的概率很高;语言模型实际上能够评估给定先前序列的每个可能词的可能性。
masked-language-modeling方法是Next-token-prediction的变体,其中输入句子中的一些词被替换为特殊token,例如[MASK]。然后,模型被要求预测应该插入到mask位置的正确的词。如果给模型一个句子:
“The[MASK]satonthe”
它可能会预测MASK位置应该填的词是「cat」、「dog」。
这些目标函数的优点之一是,它允许模型学习语言的统计结构,例如常见的词序列和词使用模式。这通常有助于模型生成更自然、更流畅的文本,并且是每个语言模型预训练阶段的重要步骤。
然而这些目标函数也可能导致问题,这主要是因为模型无法区分重要错误和不重要错误。一个非常简单的例子是,如果给模型输入句子:
"TheRomanEmpire[MASK]withthereignofAugustus."
它可能会预测MASK位置应该填入「began」或「ended」,因为这两个词的出现概率都很高。
一般来说,这些训练策略可能会导致语言模型在一些更复杂的任务中出现不一致,因为一个仅被训练来预测文本序列中的下一个词的模型可能不一定会学习其含义的某些更高级表征。因此,该模型很难推广到需要对语言更深入理解的任务。
研究人员正研究各种方法来解决大型语言模型中的一致性问题。ChatGPT基于最初的GPT-3模型,但为了解决模型的不一致问题,使用了人类反馈来指导学习过程,对其进行了进一步训练。所使用的具体技术就是前面提到的RLHF。ChatGPT是第一个将此技术用于实际场景的模型。
那ChatGPT是如何利用人类反馈来解决一致性问题的呢?
从人类反馈中进行强化学习
方法总体上包括三个不同步骤:
有监督的调优:预训练的语言模型在少量已标注的数据上进行调优,以学习从给定的prompt列表生成输出的有监督的策略(即SFT模型);模拟人类偏好:标注者们对相对大量的SFT模型输出进行投票,这就创建了一个由比较数据组成的新数据集。在此数据集上训练新模型,被称为训练回报模型(RewardModel,RM);近端策略优化(PPO):RM模型用于进一步调优和改进SFT模型,PPO输出结果是的策略模式。步骤1只进行一次,而步骤2和步骤3可以持续重复进行:在当前最佳策略模型上收集更多的比较数据,用于训练新的RM模型,然后训练新的策略。接下来,将对每一步的细节进行详述。
步骤1:监督调优模型
第一步是收集数据,以训练有监督的策略模型。
数据收集:选择一个提示列表,标注人员按要求写下预期的输出。对于ChatGPT,使用了两种不同的prompt来源:一些是直接使用标注人员或研究人员准备的,另一些是从OpenAI的API请求(即从GPT-3用户那里)获取的。虽然整个过程缓慢且昂贵,但最终得到的结果是一个相对较小、高质量的数据集(大概有12-15k个数据点),可用于调优预训练的语言模型。模型选择:ChatGPT的开发人员选择了GPT-3.5系列中的预训练模型,而不是对原始GPT-3模型进行调优。使用的基线模型是最新版的text-davinci-003(通过对程序代码调优的GPT-3模型)。为了创建像ChatGPT这样的通用聊天机器人,开发人员是在「代码模型」而不是纯文本模型之上进行调优。
由于此步骤的数据量有限,该过程获得的SFT模型可能会输出仍然并非用户关注的文本,并且通常会出现不一致问题。这里的问题是监督学习步骤具有高可扩展性成本。
为了克服这个问题,使用的策略是让人工标注者对SFT模型的不同输出进行排序以创建RM模型,而不是让人工标注者创建一个更大的精选数据集。
第二步:训练回报模型
这一步的目标是直接从数据中学习目标函数。该函数的目的是为SFT模型输出进行打分,这代表这些输出对于人类来说可取程度有多大。这强有力地反映了选定的人类标注者的具体偏好以及他们同意遵循的共同准则。最后,这个过程将从数据中得到模仿人类偏好的系统。
它的工作原理是:
选择prompt列表,SFT模型为每个prompt生成多个输出(4到9之间的任意值);标注者将输出从最佳到最差排序。结果是一个新的标签数据集,该数据集的大小大约是用于SFT模型的精确数据集的10倍;此新数据用于训练RM模型。该模型将SFT模型输出作为输入,并按优先顺序对它们进行排序。对于标注者来说,对输出进行排序比从头开始打标要容易得多,这一过程可以更有效地扩展。在实践中,所选择的prompt的数量大约为30-40k,并且包括排序输出的不同组合。
步骤3:使用PPO模型微调SFT模型
这一步里强化学习被应用于通过优化RM模型来调优SFT模型。所使用的特定算法称为近端策略优化(PPO),而调优模型称为近段策略优化模型。
什么是PPO?该算法的主要特点如下:
PPO是一种用于在强化学习中训练agent的算法。它被称为「on-policy」算法,因为它直接学习和更新当前策略,而不是像DQN的「off-policy」算法那样从过去的经验中学习。PPO根据agent所采取的行动和所获得的回报不断调整策略;PPO使用「信任区域优化」方法来训练策略,它将策略的更改范围限制在与先前策略的一定程度内以保证稳定性。这与其它策略使用梯度方法形成鲜明对比,梯度方法有时会对策略进行大规模更新,从而破坏策略的稳定性;PPO使用价值函数来估计给定状态或动作的预期回报。价值函数用于计算优势函数,它代表预期收益和当前收益之间的差异。然后使用优势函数通过比较当前策略采取的操作与先前策略将采取的操作来更新策略。这使PPO可以根据所采取行动的估计价值对策略进行更明智的更新。在这一步中,PPO模型由SFT模型初始化,价值函数由RM模型初始化。该环境是一个「banditenvironment」,它会产生随机prompt并期望对prompt做出响应。对于给定的prompt和响应,它会产生相应的回报(由RM模型决定)。SFT模型会对每个token添加KL惩罚因子,以尽量避免RM模型的过度优化。
性能评估
因为模型是根据人工标注的输入进行训练的,所以评估的核心部分也基于人工输入,即通过让标注者对模型输出的质量评分来进行。为避免训练阶段涉及的标注者的判断过拟合,测试集使用了来自其它OpenAI客户的prompt,这些prompt未出现在训练数据中。
该模型基于三个标准进行评估:
帮助性:判断模型遵循用户指示以及推断指示的能力。真实性:判断模型在封闭领域任务中有产生虚构事实的倾向。无害性:标注者评估模型的输出是否适当、是否包含歧视性内容。该模型还针对传统NLP任务(如解答问题、阅读理解和摘要)的零样本学习的性能进行了评估,开发人员发现在其中一些任务上模型的表现比GPT-3要差一些,这是一个「一致性税」(alignmenttax)的例子,其中基于人类反馈强化学习的一致性程序是以降低某些任务的性能为代价的。
这些数据集的性能回归可以通过称为预训练混合的技巧大大减少:在通过梯度下降训练PPO模型期间,通过混合SFT模型和PPO模型的梯度来计算梯度更新。
方法的缺点
该方法的一个非常明显的局限性是,在将语言模型与人类意图保持一致的过程中,用于fine-tuning模型的数据会受到各种错综复杂的主观因素的影响,主要包括:
生成demo数据的人工标注者的偏好;设计研究和编写标签说明的研究人员;选择由开发人员制作或由OpenAI客户提供的prompt;标注者偏差既包含在RM模型训练中,也包含在模型评估中。ChatGPT的作者也承认一个明显的事实,即参与训练过程的标注人员和研究人员可能并不能完全代表语言模型的所有潜在最终用户。
除了这一明显的「内生」限制之外,该方法还有的一些其它缺点和需要解决的问题:
缺乏对照研究:报告的结果以SFT模型为基准衡量最终PPO模型的性能。这可能会产生误导:如何知道这些改进是由于RLHF?因此对照研究非常有必要,包括投入与用于训练RM模型的标注工时数完全相同的时间,以创建具有高质量数据的更大的精选有监督调优的数据集。这样就可以客观地衡量RLHF方法与监督方法相比的性能改进。简单来说,缺乏这样的对照研究让一个基本问题完全悬而未决:RLHF在一致性语言模型方面真的做得很好吗?比较数据缺乏基本事实:标注者通常会对模型输出的排名持不同意见。技术上讲,产生的风险是在没有任何基本事实的情况下,向比较数据添加了很大的方差。人类的偏好并非同质:RLHF方法将人类的偏好视为同质和静态的。假设所有人都有相同的价值观,这明显是不准确的,虽然有大量的公共价值观,但在很多事务上人类还是存在许多不同的认知。RM模型prompt稳定性测试:没有实验表明RM模型在输入prompt变化方面的敏感性。如果两个prompt在句法上不同但在语义上是等价的,RM模型能否在模型输出的排名中显示出显著差异?即prompt的质量对RM有多重要?其它问题:在RL方法中,模型有时可以学会控制自己的RM模型以实现期望的结果,从而导致「过度优化的策略」。这可能会导致模型重新创建一些模式,因为某些未知的原因,这些模式使RM模型得分较高。ChatGPT通过使用RM函数中的KL惩罚项对此进行了修补。相关阅读:
关于用于ChatGPT的RLHF方法的相关的论文:Traininglanguagemodelstofollowinstructionswithhumanfeedback(https://arxiv.org/pdf/2203.02155.pdf),它实际上详细描述了一个名为InstructionGPT的模型,OpenAI称之为ChatGPT的「兄弟模型」。LearningtosummarizefromHumanFeedback(https://arxiv.org/pdf/2009.01325.pdf)描述了文本摘要上下文中的RLHF。PPO(https://arxiv.org/pdf/1707.06347.pdf):PPO算法论文。Deepreinforcementlearningfromhumanpreferences(https://arxiv.org/abs/1706.03741)DeepMind在Sparrow中提出了OpenAIRLHF的替代方案(https://arxiv.org/pdf/2209.14375.pdf)和GopherCite(https://arxiv.org/abs/2203.11147)文件。参考内容:
https://www.assemblyai.com/blog/how-chatgpt-actually-works/?continueFlag=1bafdcd5c034def869fecb4f3bdaed70