LLM - RLHF人类对齐的简单总结
本篇完全参考 大语言模型综述 ,学习完大模型学习笔记 - InstructGPT中的微调与对齐 之后 再看书中的这一章节,对InstructGPT的RLHF理解的可以更透彻一些。
1. RLHF(Reinforcement Learning from Human Feedback, RLHF),基于人类反馈的强化学习
- RLHF首先需要收集人类对于不同模型输出的偏好,然后使用收集到的人类反馈数据训练奖励模型,最后基于奖励模型使用强化学习算法(Proximal Policy Optimization,PPO)微调大语言模型。 这是人类对齐的主要途径之一。
- RLHF 关键步骤:
- 监督微调: 指令微调(有监督的训练)为了指令遵循能力。
- 奖励模型:第二步是使用人类反馈数据训练奖励模型。首先使用语言模型针对任务指令生成一定数量的后选输出,随后标注员进行偏好标注,进一步使用人工标注好的数据进行奖励模型训练,使其能够建模人类偏好。
- 强化学习训练:这一步骤中,语言模型对齐被转化为一个强化学习问题,具体来说,待对齐语言模型担任策略实施者的角色(策略模型),它接受提示作为输入并返回输出文本,其动作空间是词汇表中的所有词元,状态指的是当前已生成的词元序列。奖励模型则根据当前语言模型的状态提供相应的奖励分数,用于指导策略模型的优化。为了避免当前训练轮次的语言模型明显偏离初始(强化学习训练之前)的语言模型,通常会在原始优化目标中加一个惩罚性(如KL散度)比如InstructGPT使用PPO算法来优化待对齐语言模型以最大化奖励模型的奖励,对于每个输入提示,InstructGPT 计算当前语言模型与初始语言模型生成结果之间的KL 散度作为惩罚项。KL 散度越大,意味着当前语言模型越偏离初始语言模型。这个对齐过程可以进行多次迭代,从而更好地对齐大语言模型。
2 奖励模型训练
-
训练方式:
- 打分式: 会有标注人员主观bias误差
- 对比式: 一对pair 正负关系。降低标注难度和减少标注不一致性误差
- 排序式:(考虑两两偏序关系)
-
训练策略:为了进一步增强奖励模型对于人类偏好的拟合能力,可以通过修改目标函数、选取合适的基座模型和设置合理的奖励计算形式等方式俩优化奖励模型的训练过程。
-
目标函数的优化:为了避免奖励模型的过拟合问题,可以将最佳的模型输出所对应的语言模型损失作为正则项,从而缓解奖励模型在二元分类任务上的过拟合问题。因此可以在对比式方法的损失函数的基础上添加模仿学习的损失函数,即奖励模型在学习最大化正负例分数差距的同时也学习基于输入x生成正例y+.
L = − E x , y + , y − D [ l o g ( σ ( r θ ( x , y + ) − r θ ( x , y − ) ) ) ] − β E x , y + D [ ∑ t = 1 T l o g ( y t + ∣ x , y < t + ) ] L = -E_{x,y+,y-}~D[log(\sigma(r_\theta(x,y+)-r_\theta(x,y-)))]-\beta E_{x,y+}~D[\sum_{t=1}^T log(y^+_t|x,y^+_{<t})] L=−Ex,y+,y− D[log(σ(rθ(x,y+)−rθ(x,y−)))]−βEx,y+ D[t=1∑Tlog(yt+∣x,y<t+)]
具体解释可以参考:大模型学习笔记 - InstructGPT中的微调与对齐
- 基座模型选取:尽管InstructGPT使用了一个较小的奖励模型(6B参数的GPT3模型),使用更大的奖励模型(例如与原始模型尺寸相等或更大的模型)通常能够更好地判断模型输出质量,提供更准确的反馈信号。LLaMA-2在训练过程中使用相同的checkpoint来初始化待对齐语言模型和奖励模型,由于奖励模型与待对齐模型拥有相同的预训练知识,这方面可以有效地减少两者之间的信息不匹配问题,加强模型对齐效果。
- 奖励计算形式:由于对齐存在多个标准(比如有用性和诚实性),单一奖励模型很难满足所有对齐标准,因此可以针对不同对齐标准训练多个特定的奖励模型 r i ( x , y ) i = 1 n {r_i(x,y)}^n_{i=1} ri(x,y)i=1n,然后使用特定的组合策略(如加权平均)计算基于这些奖励模型的最终奖励。 如其中一种加和组合策略:$ r(x,y) = \sum_{i=1}^n \lambda_i * r_i(x,y) ,其中 r ( ∗ ) 表第 i 种对齐标准的奖励函数, ,其中r(*)表第i种对齐标准的奖励函数, ,其中r(∗)</
-