从AI学渣的角度理解ChatGPT,站在学术大佬肩膀上整活,咱就一学术界小裁缝,缝缝补补各路大佬最好理解的技术解说,如需深入理解请前往文末观看正统大佬的学术造纸。
全文阅读时长:15min
背景介绍
ChatGPT太牛批引起了全球关注,不光卷AI圈内人,还连带卷了圈外人。
发展现状
ChatGPT和去年公布的InstructGPT是一对姊妹模型,有时候也被叫做GPT-3.5,是在GPT-4之前发布的预热模型,据传还未发布的GPT-4是一个多模态模型,那时ChatGPT可能不光只会理解文本回复文本,还能理解其他模态,如视频、图片、语音,让回复内容更加生动活泼。
GPT进化史
模型架构
ChatGPT和InstructGPT在模型结构、训练方式上都完全一致,即都使用了指令学习(Instruction Learning)和人工反馈强化学习(RLHF)来进行模型的训练,不同的仅仅是采集数据的方式上有所差异。但目前ChatGPT论文及代码细节尚未公布,但我们完全可以通过InstructGPT来理解ChatGPT模型及训练细节。
核心技术
指令学习(Instruct learning):其实就是prompt learningRLHF(Reinforcement Learning from Human Feedback):基于人工反馈的强化学习
训练步骤
InstructGPT/ChatGPT的训练可以分成3步,分别是SFT、RM、PPO,下面分别介绍。
InstructGPT/ChatGPT模型架构
1.SFT
我们都知道ChatGPT是一个对话模型,它是如何能给出答案的呢?实现对话的第一步就需要依赖SFT,全称为Supervised FineTune,技术上是对GPT-3进行有监督的微调,本质目的是「对数据集进行优化」,用人类喜欢的答案作为训练数据,机器才能生成人类更喜欢的内容。
GPT原本是使用互联网海量语料库训练的大模型,但互联网上的语料非常杂乱,不一定是人类想要的答案,GPT依靠此数据生成的答案正确性和有用性不能保证。在此基础上,对数据集优化,把人们喜欢的答案喂给已经训练好的GPT再次微调,这样模型可以对齐人的思考模式得到提升。可以理解成升级后的模型只订阅人们喜欢的内容。对话机器人的雏形已经生成,它可以根据问题生成一系列的答案,但是缺陷是它不具备人的判断能力。机器生成了答案A,B,C,D,但哪个是想要的呢的答案呢?由此,引入RM奖励模型。
SFT工作流
2.RM
强化学习RM全称是Reinforcement Learning,引入RM技术可以告诉模型生成的内容好不好,而不是告诉模型怎么才能变好,这种方式能给予模型更大的探索自由,训练出来的模型更具有泛化能力。具体步骤如下:
首先,模型根据问题生成多个答案。人工对给定的答案进行排序和打分。机器通过人工打分的数据训练奖励模型,可以预测用户更喜欢哪个模型输出。
RM工作流
一个更通俗的例子,讲解SFT和RM的工作方式和区别:
SFT用「人工标注」的问题回答数据,并用监督性学习技术训练的自动回答问题的模型。RM用「人工打分」的问题回答数据,并用强化学习技术训练的自动给回答打分的模型,SFT是通过「人工标注」解决答案「有没有」的问题,RM则通过「人工打分」来解决答案「好不好」的问题。
SFT和RM的工作方式和区别
3.PPO
该阶段将前面训练好的SFT和RM两个模型结合起来,利用PPO(Proximal Policy Optimization)算法微调SFT训练出来的生成模型,再把生成出来的答案喂给RM打分模型,基于RM的loss持续迭代生成模型。具体步骤如下:
由第一步fine-tune后的SFT模型来初始化PPO策略模型,由第二部生成的RM模型初始化价值函数。从PPO数据集中随机采样一个prompt,并通过第一步的PPO策略模型生成输出结果answer。对prompt和answer,带入RM模型计算奖励值reward。利用reward来更新PPO策略模型参数。重复2~4步,直至PPO策略模型收敛。
强化学习和预训练模型是最近两年最为火热的AI研究方向,之前不少科研工作者说强化学习并不是非常适合应用到预训练模型中,因为很难通过模型的输出内容建立奖励机制。而InstructGPT/ChatGPT反直觉的做到了这点,它通过结合人工标注,将强化学习引入到预训练语言模型中是这个算法最大的创新点。
PPO工作流
参考文献
65.0 chatGPT – 钱爽的博客
ChatGPT是怎样被训练出来的?
https://arxiv.org/pdf/2203.02155.pdf
https://zhuanlan.zhihu.com/p/590311003