赞
踩
最近ChatGPT大火,简单整理了一些文章和帖子。
ps.此时ChatGPT还没公布相应的论文,所有以下内容为官网发布内容,以及一些合理的推测。
相比于GPT,2022年初推出的InstructGPT在某种程度上更像是ChatGPT的“直系前辈”。因为InstructGPT大量的使用到了人类反馈与指导,在大力出奇迹的GPT3的基础上,更加的进一步精调,使得InstructGPT的输出更加的可控,也就是跟人类习惯更加贴近了。
对于这项工作,OpenAI 表示:“我们成功训练出了在遵守用户意图方面比 GPT-3 显著更强的新语言模型,并且同时确保这些模型更加诚实,减少了有害结果的生成。具体来说,我们采用了在对齐 (alignment) 研究当中掌握的技术,使得这些训练结果成为可能”。
新的模型名为 InstructGPT(instruct 是指导的意思),意即和一般模型训练的自我监督模式不同,这次在新模型的训练当中,OpenAI 重度使用了人类作为“教师”的身份,对模型训练进行反馈和指导。从人类反馈中进行强化学习的过程,称为reinforcement learning from human feedback,简称 RLHF。这个也是使ChatGPT变得特殊的秘密武器(也许~)。
人类的监督即为,每一次GPT的反馈都会交由数据标记员评估,他们对不同 GPT模型版本生成的结果进行打分并优化参数,最后训练得到的即为InstructGPT。
在通过语言模型实现下游任务的过程中,如生成对话任务,在使用token级别的loss以外,我们还会使用评估整体文段输出的指标,人们往往用BLEU或ROUGH等评价指标来刻画模型输出与人类偏好的相近程度,但这也仅仅是在评价的层面,模型在训练的时候是见不到这些人类真实的偏好的。因此,训练阶段,如果直接用人的偏好(或者说人的反馈)来对模型整体的输出结果计算reward或loss,显然是要比上面传统的“给定上下文,预测下一个词”的损失函数合理的多。基于这个思想,便引出了本文要讨论的对象——RLHF(Reinforcement Learning from Human Feedback):即,使用强化学习的方法,利用人类反馈信号直接优化语言模型。
RLHF的训练过程可以分解为三个核心步骤:
如上图所示,标注人员的任务则是对初始语言模型生成的文本进行排序。有人可能会奇怪,为啥不直接让标注人员对文本进行打分呢?这是因为研究人员发现不同的标注员,打分的偏好会有很大的差异(比如同样一段精彩的文本,有人认为可以打1.0,但有人认为只能打0.8),而这种差异就会导致出现大量的噪声样本。若改成标注排序,则发现不同的标注员的打分一致性就大大提升了。一种比较有效的做法是“pair-wise”,即给定同一个prompt,让两个语言模型同时生成文本,然后比较这两段文本哪个好。奖励模型的训练流程:
计算得到奖励reward:首先,基于前面提到的预先富集的数据,从里面采样prompt输入,同时丢给初始的语言模型和我们当前训练中的语言模型(policy),得到俩模型的输出文本y1,y2。然后用奖励模型RM对y1、y2打分,判断谁更优秀。显然,打分的差值便可以作为训练策略模型参数的信号,这个信号一般通过KL散度来计算“奖励/惩罚”的大小。显然,y2文本的打分比y1高的越多,奖励就越大,反之惩罚则越大。这个reward信号就反映了文本整体的生成质量。
以上摘自:https://mp.weixin.qq.com/s/hm_bbVebSF4JudctCsiRcA
此外,ChatGPT 的强大还依赖于一项秘密武器 —— 一种名为 RLHF(人类反馈强化学习)的训练方法。
大家可以看到ChatGPT的官方示意图跟InstructGPT非常相似。在一定程度上也证明了InstructGPT与之的关系,其实就是一脉相承的,只是在一些细节上进行了修改。
所以当然训练数据的变化应该更大更有影响力。
根据 OpenAI 官方公布的资料,这种训练方法主要也有三个阶段:
关于RLHF在整个训练过程中到底起了多大作用,我个人比较喜欢张俊林老师的这段话“尽管如此,我觉得第三阶段采用强化学习策略,未必是ChatGPT模型效果特别好的主要原因。假设第三阶段不采用强化学习,换成如下方法:类似第二阶段的做法,对于一个新的prompt,冷启动模型可以产生k个回答,由RM模型分别打分,我们选择得分最高的回答,构成新的训练数据<prompt,answer>,去fine-tune LLM模型。假设换成这种模式,我相信起到的作用可能跟强化学习比,虽然没那么精巧,但是效果也未必一定就差很多。第三阶段无论采取哪种技术模式,本质上很可能都是利用第二阶段学会的RM,起到了扩充LLM模型高质量训练数据的作用。”
实际上我的理解是,无论收敛是否用的是强化学习,其目的是为了引入忍得评价作为一种loss来干预模型的精调,那么无论是一般的token级的比对,还是对每一个输出进行排序打分,亦或是使用RLHF,都不过是一种实现方法,希望后续能有陆续的研究对该内容进行消融实验看看效果。别是消融试验一做,发现如transform一般,很多设置都是帮助不大的,改成MLP is all you need 也可以 \笑。
参考文章,部分内容截取自:
【1】OpenAI 拾回初心?总爱乱讲话的GPT-3终于懂事了
【2】台大資訊 深度學習之應用 | ADL 17.2: OpenAI InstructGPT 從人類回饋中學習 ChatGPT 的前身
【3】抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文
【4】张俊林:由ChatGPT反思大语言模型(LLM)的技术精要
【5】ChatGPT的前世今生
【6】张俊林:ChatGPT会成为下一代搜索引擎吗
【7】前沿重器[31] | 理性聊聊ChatGPT
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。