在 InstructGPT ,ChatGPT(GPT-3.5) 和GPT-4 中,都用到了 SFT 和 RLHF 这两种技术,前者是有监督的微调(Supervised Fine-Tuning),后者指的是人类反馈强化学习(Reinforcement Learning From Human Feedback,RLHF)。
实际上 InstructGPT,GPT-3.5(GPT-4 未知)都是基于 GPT-3 的训练结果上进行完善的,他们的参数都在1750亿(GPT-3.5 或许会更多点,见GPT 模型系列对比 ),也就是说,2020年 GPT-3 出来的时候,其实已经能够进行区别于以往对话机器人的良好效果,但在对齐人类意图方面(而在对话方面和各类任务解决的能力,实际上源自于预训练的能力RLHF 似乎对 GPT-4 作用不大 ,RLHF 对效果「并没有太大提升」),还得是上面提到的这两项。
在 InstructGPT 的论文和 ChatGPT(GPT-3.5)的官方介绍中,已经用流程图的方式介绍了这两种技术:
InstructionGPT 的论文中展示的训练示意图
ChatGPT 官方训练示意图
两者几乎是一样的流程,而 SFT 就是图中的 Step 1。简单来讲,就是人工对 Prompt 标注一个相对标准的回复,或者说 Demonstration。
在得到大量这样的数据之后,再去微调整个模型,让模型理解对于什么样类型的 Prompt,需要什么样类型的 Demonstration。
RLHF 分为两步:
这种从“比较中”学习给出回答的奖励值,比过去编写繁琐的标准回答来的更有效果,一开始时让人写答案,不仅成本太高,更重要的是充满着编写者的主观性,如果改成让人来选答案,这样对标注员的能力要求稍微低一点,也可大幅减少主观性的偏差带来的噪音,可以迅速提升迭代和规模。基于打分再训练一个奖励模型,通过奖励模型自动评价模型的好坏,然后用强化学习开始迭代,这种方法可以大规模地把数据模型迭代给转起来,这是 OpenAI 做的 InstructGPT 逻辑,强化学习的人类反馈,这种方式能让模型能够自动学习出人类的喜好,强化模型意图驱动的能力。