ChatGPT 技术原理与 RLHF
1. 什么是 ChatGPT
OpenAI 训练的 ChatGPT 以对话方式与用户交互。对话格式使其能够回答后续问题、承认错误、质疑不正确的前提并拒绝不当请求。ChatGPT 是 InstructGPT 的同系列模型,经过训练后可根据 Prompt 中的指令生成详细响应。
2. 技术原理概述
ChatGPT 使用基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)进行训练,其数据收集方式与 InstructGPT 略有不同。
整体训练流程分为以下阶段:
- 监督微调(Supervised Fine-Tuning,SFT):由人类标注员提供对话数据,他们同时扮演用户和 AI 助手角色,并可参考模型生成的建议来撰写回复。
- 奖励模型(Reward Model,RM)训练:收集比较数据,包含两个或多个按质量排序的模型响应。研究者从标注员与聊天机器人的对话中随机选取模型生成的消息,采样多个候选回复,由标注员对其排序。
- 强化学习微调:基于奖励模型,使用近端策略优化(Proximal Policy Optimization,PPO)对模型进行进一步微调。
ChatGPT 以 GPT-3.5 大规模语言模型为基础,通过 RLHF 持续微调预训练模型。其核心目标有二:一是让 LLM 理解人类指令的含义,例如生成类、知识问答类、头脑风暴类等不同类型的指令;二是让 LLM 判断对于给定 Prompt,什么样的回答是优质的,例如信息丰富、对用户有帮助、无害、不含歧视信息等。
3. 第一阶段:冷启动监督策略模型
GPT-3.5 本身虽然强大,但难以理解不同类型指令中蕴含的意图,也难以判断生成内容的质量。为使其初步具备指令理解能力,研究者从测试用户提交的 Prompt 中随机抽取一批,由专业标注人员给出高质量答案,并用这些 <prompt, answer> 数据对 GPT-3.5 进行微调。
经过此阶段,模型初步具备了理解人类 Prompt 意图并给出相对高质量回答的能力,但仅靠此步骤远远不够。
4. 第二阶段:训练奖励模型
本阶段的目标是通过人工标注数据训练奖励模型。
具体流程如下:
- 随机抽取一批用户 Prompt(大部分与第一阶段相同),使用第一阶段微调后的模型对每个 Prompt 生成
个不同回答,形成 <prompt, answer1>, <prompt, answer2>, \ldots, <prompt, answerK>数据。 - 标注人员综合相关性、信息丰富性、有害信息等多项标准,对
个回答进行排序。 - 利用排序数据训练奖励模型,采用 Pair-wise Learning to Rank 模式。对
个排序结果两两组合,形成 个训练数据对。
奖励模型接收 <prompt, answer> 输入,输出质量评分。对于一对训练数据,若人工排序中 answer1 优于 answer2,则损失函数鼓励 RM 对 <prompt, answer1> 的打分高于 <prompt, answer2>。
总结而言,本阶段由冷启动模型为每个 Prompt 生成 <prompt, answer>,输出质量得分,得分越高表示回答质量越好。
5. 第三阶段:强化学习增强预训练模型
本阶段无需人工标注数据,而是利用上一阶段训练好的奖励模型来更新预训练模型参数。
具体流程如下:
- 从用户 Prompt 中随机采样一批新指令(与前两阶段不同,这对提升模型的指令泛化能力至关重要)。
- 以冷启动模型初始化 PPO 模型参数。
- 对随机抽取的 Prompt,PPO 模型生成回答,RM 模型给出质量评分作为整体 Reward。
- 将每个 Token 视为一个时间步,Reward 由后向前传递,产生的策略梯度更新 PPO 模型参数。
这是标准的强化学习过程,目标是训练 LLM 生成高 Reward 的回答。
不断重复第二和第三阶段可形成正向循环:第二阶段增强 RM 的评估能力,第三阶段利用增强后的 RM 对新 Prompt 的回答打分更准确,并通过强化学习鼓励模型学习高质量内容。两个阶段相互促进,持续迭代可带来持续增强效果。
关于第三阶段是否必须采用强化学习,作者认为这未必是 ChatGPT 效果突出的主要原因。一种替代方案是:类似第二阶段,冷启动模型产生 <prompt, answer> 来微调 LLM。这种方式虽不如强化学习精巧,但效果未必差太多。两种方式的本质都是利用 RM 扩充 LLM 的高质量训练数据。
以上训练流程主要参考 InstructGPT 论文。ChatGPT 是 InstructGPT 的改进版本,改进点主要在数据收集方法上,模型结构和训练流程基本沿用 InstructGPT。
可以预见,RLHF 技术将快速扩展到其他内容生成领域。但在 NLP 具体子领域再单独采用此技术的价值有限,因为 ChatGPT 本身已覆盖多样化任务类型。将该技术应用于图片、音频、视频等其他模态的生成领域可能更值得探索。
另一个值得关注的相关工作是 DeepMind 的 Sparrow,其技术框架与 InstructGPT 的三阶段基本类似,但人工标注的质量和工作量不及 InstructGPT。不过,Sparrow 将奖励模型拆分为两个不同 RM 的思路优于 InstructGPT。
6. 局限性
ChatGPT 有时会生成看似合理但不正确或荒谬的答案。解决此问题面临以下挑战:
- RL 训练期间缺乏真实来源(Ground Truth)。
- 过度谨慎的训练导致模型拒绝本可正确回答的问题。
- 监督训练存在误导,因为理想答案取决于模型已知信息,而非标注员已知信息。
ChatGPT 对输入措辞的微调或同一 Prompt 的多次尝试较为敏感。例如,某种措辞下模型声称不知道答案,稍作改写即可正确回答。
模型通常过于冗长,且过度使用特定短语,如反复声明自己是 OpenAI 训练的语言模型。这源于训练数据偏差(标注员偏好更长、看似更全面的回答)和过度优化问题。
理想情况下,面对模棱两可的查询,模型应提出澄清问题。但当前模型通常直接猜测用户意图。
虽然已努力使模型拒绝不当请求,但它有时仍会响应有害指令或表现出偏见行为。OpenAI 使用 Moderation API 来警告或阻止不安全内容,但目前仍存在漏报。