3 most important points
- RLHF 的目的是确保模型生成的内容符合人类期望和需求
- 先以人工标注训练奖励模型,再训练策略模型
- 使用 SFT Model 作为参考,计算 KL 散度添加到奖励函数,防止策略偏离正常语言表达方式
5 thoughts
- 不直接使用人类的反馈作为 label 进行监督学习,可能是因为人类反馈的不是标准答案?毕竟人类的偏好也不一致
- 奖励模型有必要性吗?
Notes
LLM 训练流程
- 预训练:通过大规模数据集学习基本语言结构和知识,掌握语言规律
- 监督微调(SFT):使用带标签的数据对模型进行微调,提高在特定任务上的表现
- 基于人类反馈的强化学习(RLHF):结合人类反馈优化模型,确保生成的内容符合人类期望和需求
- 多种策略产生样本并收集人类反馈
- 训练奖励模型
- 训练强化学习策略,微调 LLM
- 奖励模型训练
- 起点:一个预训练语言模型,或经过监督微调的语言模型。
- 生成选项:模型接收一个提示,并生成多个模型输出(例如,对同一个问题的两种不同回答)。
- 人类评判:这些输出被送到人类标注者面前,由他们对输出进行排序,并选择更优的那个。这一步是“人类反馈”的核心。
- 模型训练:人类的偏好选择被构造成训练数据(即“比较对”),用于训练奖励模型。
- 产出:整个过程的最终产物就是一个训练好的奖励模型,它可以自动判断模型输出的好坏,并为后续的强化学习优化阶段提供奖励信号。
- 策略模型训练
- Critic:
- 不仅知道当前回答的即时奖励,还会预测未来可能获得的累计回报(Return)。这能更有效地指导演员,尤其是在生成长文本时。
- SFT Model:
- 是从监督微调得到的、初始的、表现稳定的策略模型
- 作为一个固定的参考基准,通过KL 散度惩罚项(添加在奖励函数里),来防止当前策略在优化过程中为了获得高奖励而过度偏离“正常”的语言表达方式(即“走火入魔”)
- 在整个 PPO 训练过程中,它不会被更新
- Critic:
flowchart TD subgraph A [采样与环境交互] direction LR A1[提示 Context] --> A2[策略模型 Actor] A2 --> A3[生成文本 Action] A8[SFT 参考模型] --> A4 A2 --> A4[计算KL散度惩罚] subgraph A5 [奖励计算] A6[奖励模型 RM] --> A7[计算总奖励] end A4 --> A7 end A7 --> B[经验回放池] subgraph C [模型优化与更新] C1[评论模型 Critic] --> C2[估计优势函数 Â] B -- 采样经验 --> C3[PPO-Clip 核心] C3 --> C4[策略梯度更新] end B -- 采样经验 --> C1 A2 -- 重要性采样 --> C3 C4 -.-> |更新| A2 C4 -.-> |更新| C1
- 常见强化学习算法
- Policy Gradient RL
- PPO
- RLHF 的局限性
- RLHF 范式训练出来的这些模型虽然效果更好,但仍然可能输出有害或事实上不准确的文本。这种不完美则是 RLHF 的长期挑战和优化目标。
- 在基于 RLHF 范式训练模型时,人工标注的成本是非常高昂的,而 RLHF 性能最终仅能达到标注人员的知识水平。此外,这里的人工标注主要是为 RM 模型标注输出文本的排序结果,而若想要用人工去撰写答案的方式来训练模型,那成本更是不可想象的。
- RLHF 的流程还有很多值得改进的地方,其中,改进 RL 优化器显得尤为重要。PPO 是一种基于信赖域优化的相对较旧的 RL 算法,但没有其他更好的算法来优化 RLHF 了。