阐释人类反馈强化学习(RLHF)
人类反馈强化学习(RLHF)是一种用于使在通用文本语料库上训练的大型语言模型(LLM)与复杂的人类价值观和偏好保持一致的方法。该过程使模型能够超越简单的下一个标记预测,生成基于主观人类标准的有帮助、真实或富有创意的文本。
RLHF 的三步流程
RLHF 是一个多阶段的训练流水线,涉及多个模型和不同的部署阶段。该过程分为预训练、奖励建模和强化学习微调三个阶段。
1. 语言模型的预训练
该过程从使用经典目标预训练的语言模型开始。该基础模型必须能够响应多样的指令。作为起始点的模型示例包括用于 InstructGPT 的较小版本 GPT-3、Anthropic 研究中参数规模从 1000 万到 520 亿的 Transformer 模型,以及 DeepMind 的 2800 亿参数 Gopher 模型。
虽然并非严格必要,但一些组织会使用增强数据进一步细化基础模型。OpenAI 在“更可取”的人类生成文本上进行微调,而 Anthropic 则通过上下文线索蒸馏原始语言模型,以满足“有帮助、诚实且无害”的标准。
2. 奖励模型训练
奖励模型(RM)或偏好模型旨在接受一段文本并返回表示人类偏好的标量奖励。该标量输出对于与强化学习算法的结合至关重要。
数据收集与排序
为了训练 RM,从数据集中抽取提示并通过初始 LM 生成多个文本输出。随后由人工标注者对这些输出进行排序。由于人类直接给出标量评分往往噪声大且未校准,采用排序(例如使用 Elo 系统的对决)来构建更为规整的数据集。
模型架构
奖励模型可以是微调的 LM,也可以是从头训练的模型。例如,Anthropic 使用偏好模型预训练(PMP)提升样本效率。奖励模型的规模因实现而异;OpenAI 为 175B LM 使用了 6B 的奖励模型,而 DeepMind 为 LM 和奖励模型均使用了 70B 的 Chinchilla 模型。
3. 使用强化学习进行微调
最后阶段使用策略梯度强化学习算法,通常为近端策略优化(PPO),根据奖励模型的反馈对初始 LM 的副本进行优化。
强化学习公式化
- 策略(Policy): 接受提示并返回文本序列的语言模型。
- 动作空间(Action Space): 语言模型的词汇表(通常约 5 万个标记)。
- 观察空间(Observation Space): 可能的输入标记序列的分布。
- 奖励函数(Reward Function): 偏好模型的标量奖励 ($r_{\theta}$) 与对策略偏移的惩罚 ($r_{\text{KL}}$) 的组合。
KL 散度惩罚
为防止模型生成“欺骗”奖励模型的胡言乱语(奖励黑客),基于 Kullback–Leibler(KL)散度施加惩罚。如果 RL 策略偏离初始预训练模型过远,则受到惩罚,从而确保输出保持连贯。
最终奖励计算为:$r = r_{\theta} - \lambda r_{\text{KL}}$。
更新规则
PPO 被用作信任域优化算法,以确保梯度更新不会破坏学习过程。虽然 PPO 很常见,DeepMind 在类似设置中也使用了同步优势演员-评论家(A2C)。
RLHF 的开源工具
多个基于 PyTorch 的仓库帮助实现 RLHF:
- TRL(Transformers Reinforcement Learning): 旨在使用 PPO 在 Hugging Face 生态系统中微调预训练的 LM。
- TRLX: CarperAI 对 TRL 的分支,针对更大模型(目前最高 33B 参数,目标 200B)进行优化,并支持隐式语言 Q 学习(ILQL)。
- RL4LMs: AllenAI 提供的库,提供各种 RL 算法(PPO、NLPO、A2C、TRPO)和可自定义奖励函数的构建块。
限制与未来方向
尽管取得了成功,RLHF 仍面临若干技术和运营挑战:
- 数据成本: 收集人类偏好数据成本高。高质量的人类生成文本尤其昂贵,尽管偏好标签(约 5 万样本)相对可控。
- 人类差异: 标注者常常意见不一致,导致训练数据中出现方差且缺乏真实标签。
- 模型不完美: 模型仍可能生成有害或事实不准确的文本,且不会表达不确定性。
潜在改进
未来研究聚焦于改进 RL 优化器。由于奖励模型对每段生成文本都需要昂贵的前向传播,离线 RL 与诸如隐式语言 Q 学习(ILQL)等算法正被探索,以实现更高效的策略优化。