Can you describe the typical three stages of the RLHF process
P0 · llm_training
📊 考点:rlhf · sft · ppo
🏷 标签:training-pipeline, reward-modeling
1️⃣ 考察意图
面试官想确认你是否真正理解RLHF的工程本质,而非仅背诵“SFT→RM→PPO”的流程。考察类型是系统设计+工程取舍,刁钻点在于:你是否能解释每个阶段为什么必须存在、数据瓶颈在哪、以及如何避免训练崩溃。答好了能展示你对大模型对齐技术的整条链路掌控力,包括数据质量、奖励信号稀疏性、KL散度调参等硬核细节。
2️⃣ 标准答
RLHF(Reinforcement Learning from Human Feedback)标准三阶段是:SFT(监督微调)→ 奖励建模 → PPO强化学习。每个阶段解决一个核心问题,且环环相扣。
阶段一:监督微调(SFT)
- 目标:在高质量人类演示数据上微调预训练模型(如GPT-3),使其学会基本的对话格式和任务指令遵循能力。
- 数据:通常需要10k-100k条人工编写的“理想回答”样本,例如Anthropic HH-RLHF数据集中的chosen回答。
- 工程取舍:SFT阶段不能过度训练,否则模型会过拟合演示数据,丧失多样性。实践中,训练1-3个epoch即可,学习率设为预训练阶段的1/10(如1e-5)。坑点:如果SFT数据包含噪声(如不一致的偏好),后续RL阶段会放大错误,所以必须做数据清洗和一致性校验。
阶段二:奖励模型训练
- 目标:训练一个奖励模型(Reward Model, RM)来预测人类偏好,为RL阶段提供标量信号。
- 数据:收集人类对模型输出的偏好比较数据(如“回答A比B好”),通常需要50k-200k对样本。训练时,RM对chosen回答输出高分数,对rejected回答输出低分数,损失函数为Pairwise Ranking Loss(如Bradley-Terry模型)。
- 工程取舍:RM的参数量通常与策略模型相同或略小(如6B RM用于7B策略模型),因为RM需要足够容量来捕捉偏好,但过大则导致过拟合。坑点:RM对输入顺序敏感,训练时需随机打乱chosen/rejected顺序,否则模型会学到位置偏差。实际落地中,RM的泛化能力是关键——在分布外数据上(如新领域)容易失效,需要定期用人类评估校准。
阶段三:强化学习微调(PPO)
- 目标:使用PPO(Proximal Policy Optimization)算法,以RM为奖励信号优化语言模型,同时加入KL散度惩罚防止偏离SFT模型太远。
- 流程:策略模型生成回答 → RM打分 → PPO更新策略。关键超参数:KL散度系数β(通常0.01-0.1),控制对齐强度;PPO clip范围(0.2),防止策略更新过大。
- 工程取舍:PPO训练不稳定,需要同时维护4个模型(策略模型、参考模型、RM、价值模型),显存开销大。实际解法:使用LoRA微调策略模型,冻结大部分参数,减少显存占用。坑点:奖励信号稀疏——RM只对完整回答打分,导致中间步骤无反馈。解法:引入过程奖励(Process Reward),对每个token或句子片段打分,但需要额外标注成本。
总结:RLHF三阶段是数据驱动的对齐流水线,SFT提供初始化,RM提供偏好信号,PPO优化策略。变体如DPO(Direct Preference Optimization)跳过RM,直接优化偏好,但牺牲了对奖励信号的显式建模能力。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从数据、模型、训练三个层面回答。数据层面:SFT需要10k-100k演示样本,RM需要50k-200k偏好对,PPO依赖在线生成。模型层面:SFT微调预训练模型,RM用Pairwise Loss训练,PPO维护4个模型。训练层面:SFT防过拟合,RM防位置偏差,PPO用KL散度防偏离。总结一句:RLHF三阶段是数据驱动的对齐流水线,每个阶段解决一个核心瓶颈。”
4️⃣ 高频追问 & 应对
追问 1:为什么PPO中要加KL散度惩罚?不加会怎样?
不加KL散度,策略模型会快速收敛到RM的高分区域,但RM是近似函数,存在对抗样本——模型可能生成语法正确但无意义的回答(如重复“好”字)来欺骗RM。KL散度惩罚模型输出分布与SFT模型的差异,防止策略偏离太远。实践中,β值需要调参:β太大,对齐效果差;β太小,模型崩溃。经验值:β=0.02(基于InstructGPT论文)。
追问 2:DPO相比RLHF有什么优缺点?
DPO(Direct Preference Optimization)跳过RM,直接优化偏好数据,训练更简单(只需SFT模型+偏好对)。优点:省去RM训练和PPO的4模型开销,训练稳定。缺点:无法利用在线生成数据(RLHF中策略模型生成新样本,RM打分),导致泛化能力弱。适用场景:数据量小、计算资源有限时用DPO;追求对齐效果时用RLHF。
追问 3:如何评估RLHF训练是否成功?
核心指标:① 奖励模型得分(但需警惕过拟合);② 人类评估(如Chatbot Arena的Elo评分);③ 安全基准(如TruthfulQA、BBQ);④ KL散度值(应保持稳定,不突然增大)。坑点:奖励模型得分上升不代表真实质量提升,必须结合人类评估。实际做法:每轮PPO后采样1000个回答,人工标注偏好,计算与RM的一致性。
5️⃣ 避坑 · 常见错误答法
- ❌ 说“RLHF三阶段是SFT、RM、RL,顺序可以互换” → ✅ 顺序固定:SFT提供初始化,RM依赖SFT模型的输出,PPO依赖RM信号。调换顺序会导致训练崩溃。
- ❌ 说“RM训练用交叉熵损失” → ✅ RM用Pairwise Ranking Loss(如Bradley-Terry),因为偏好数据是相对比较,不是绝对标签。交叉熵适用于分类任务,不适用于排序。
- ❌ 说“PPO训练时策略模型和RM参数一起更新” → ✅ PPO中RM参数冻结,只更新策略模型。同时更新会导致奖励信号漂移,训练不稳定。
6️⃣ 简历呼应
- 如果你有RLHF项目:从“数据质量对RM泛化能力的影响”切入,举例你如何清洗偏好数据(如去除矛盾对、平衡领域分布),并展示RM在分布外数据上的得分下降曲线。
- 如果你只做过传统NLP:用“排序学习(Learning to Rank)”类比RM训练,说明Pairwise Loss在搜索排序中的应用,再迁移到RLHF的偏好建模。
- 如果你是校招无项目:聚焦InstructGPT论文复现,用Hugging Face TRL库在Anthropic HH-RLHF数据集上跑通三阶段,记录训练损失和KL散度变化,面试时展示代码和结果图。
7️⃣ 延伸阅读
- InstructGPT论文:Training language models to follow instructions with human feedback
- DPO论文:Direct Preference Optimization: Your Language Model is Secretly a Reward Model
- Hugging Face TRL库文档:RLHF with PPO and DPO
- Anthropic HH-RLHF数据集:A dataset for training helpful and harmless assistants
- 博客:The Nuts and Bolts of RLHF (by John Schulman)