Q1054训练与微调真题解析LLM 训练AgentAlpha 社区真题库约 8 分钟更新 2026-09-29

什么场景下用SFT,什么场景下用RL

什么场景下用SFT,什么场景下用RL

P1 · llm_training

📊 考点:sft · llm-training · alignment

🏷 标签:rl

1️⃣ 考察意图

面试官想看你是否真正理解SFT和RL在LLM训练中的本质差异,而非死记硬背“SFT是模仿,RL是偏好”。考察类型是工程取舍,刁钻点在于:很多人只会说“SFT用于指令微调,RL用于对齐”,但答不出何时必须用RL、何时SFT足够。答好了能展示你对训练范式的底层理解——知道损失函数定义决定了任务边界,以及如何用混合策略(如SFT冷启动+RL优化)解决实际部署中的长尾问题。

2️⃣ 标准答

核心判断标准:任务是否有可定义的“正确答案”和“可微损失函数”。

  • SFT(监督微调)适用场景:任务输出有明确、可枚举的正确标签,且能直接计算交叉熵损失。封闭式任务:文本分类(情感分析、意图识别)、信息抽取(NER、关系抽取)、翻译(源语言到目标语言一对多但可接受)。例如,用SFT微调LLaMA做中文情感分类,数据量5000条即可达到90%+准确率。
  • 指令遵循:当你有高质量人工标注的“指令-回答”对(如ShareGPT数据),SFT能高效教会模型输出格式和风格。工程取舍:SFT依赖数据质量,低质量数据会导致模型“死记硬背”而非泛化;但SFT训练稳定、成本低(单卡A100可微调7B模型)。
  • 实际落地的坑:SFT容易过拟合到数据分布,导致在开放域生成中重复或僵化。解法:用数据增强(如回译、模板替换)或early stopping(验证集loss不再下降时停止)。 RL(强化学习)适用场景:任务没有明确正确答案,但有一个可计算的奖励信号(可以是人工反馈、规则或模型评分)。
  • 偏好对齐:如RLHF(PPO算法),奖励模型(Reward Model)打分替代人工标注。典型场景:对话生成(避免有害内容、提升有用性)、创意写作(风格控制)。为什么RL而非SFT:SFT无法直接优化“安全性”这类非可微指标;RL通过奖励信号间接引导,能处理长尾case(如拒绝回答敏感问题)。
  • 长期奖励任务:游戏(AlphaGo)、代码生成(编译通过率作为奖励)、数学推理(最终答案正确性)。工程取舍:RL训练不稳定,需要调参(PPO的clip范围、KL惩罚系数),且奖励模型可能被“hack”(模型学会讨好奖励模型而非真正对齐)。解法:使用GRPO(Group Relative Policy Optimization) 减少奖励模型依赖,或DPO(Direct Preference Optimization) 直接优化偏好数据,避免显式奖励模型。
  • 实际落地的坑:RL容易导致“奖励过度优化”(reward hacking),模型输出看似高分但实际质量差。例如,在对话任务中,模型学会说“对不起”来获取高安全性分数,但回答空洞。解法:引入KL散度惩罚(PPO中常用)或多样性奖励(如entropy bonus)。

混合使用策略:SFT是基础,RL是进阶。

  • 冷启动:先用SFT在高质量数据上训练,让模型学会基本输出格式和知识。
  • 对齐优化:再用RL(如DPO或PPO)在偏好数据上微调,提升安全性和有用性。
  • 案例:DeepSeek-R1在数学推理任务中,先用SFT在推理链数据上训练,再用GRPO优化最终答案正确性,效果优于纯SFT。

总结:SFT适合“有标准答案”的任务,RL适合“有奖励信号”的任务。如果任务输出可枚举(如分类),SFT足够;如果输出开放且需要长期优化(如对话),RL是必选项。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从任务类型、损失函数、训练成本三个层面回答。第一,SFT适用于有明确正确答案的封闭任务(如分类、翻译),因为交叉熵损失直接可算;RL适用于开放任务(如对话、游戏),需要奖励信号引导。第二,SFT训练稳定但依赖数据质量,RL能优化非可微指标但容易reward hacking。第三,实际中常用SFT冷启动+RL对齐的混合策略。总结一句:SFT是基础,RL是进阶,根据任务是否有可枚举的正确答案选择。”

4️⃣ 高频追问 & 应对

追问 1:如果任务有明确答案,但数据量很大(比如100万条),SFT和RL哪个更好?

仍然选SFT。因为SFT的交叉熵损失在大量数据下收敛稳定,且计算成本低(单次前向传播即可)。RL需要采样多个动作并计算奖励,100万条数据下训练时间可能增加10倍以上。但要注意数据质量:如果数据噪声大,SFT会放大错误,此时可先用RL做偏好过滤(如用奖励模型筛选高置信度数据),再用SFT微调。例如,在代码生成任务中,先用编译通过率作为奖励筛选数据,再用SFT训练。

追问 2:RL的奖励模型怎么设计?有没有通用方法?

通用方法是训练一个Reward Model(通常基于LLaMA或BERT),用人类偏好数据(A vs B)训练,输出标量分数。但注意:奖励模型容易过拟合到训练数据,导致reward hacking。解法:使用DPO直接优化偏好数据,避免显式奖励模型;或使用GRPO,通过组内相对分数(如多个输出中选最优)减少奖励模型依赖。实际落地中,建议先用DPO快速验证,再切换到PPO提升上限。

追问 3:SFT和RL可以同时训练吗?比如多任务学习?

可以,但需要精心设计损失函数。例如,混合训练:在同一个batch中,一部分数据用SFT的交叉熵损失,另一部分用RL的PPO损失。但工程上挑战大:RL的采样策略和SFT的静态数据不兼容,容易导致梯度冲突。更实用的做法是两阶段训练:先SFT收敛,再RL微调。如果必须同时训练,可尝试PPO+KL惩罚(让RL不偏离SFT太远),但需要调参。

5️⃣ 避坑 · 常见错误答法

  • ❌ “SFT用于所有任务,RL只用于对话生成。” → ✅ “SFT适用于有明确正确答案的任务(如分类、翻译),RL适用于需要长期奖励的任务(如游戏、代码生成)。对话生成只是RL的典型场景,不是唯一场景。”
  • ❌ “RL比SFT好,因为能优化非可微指标。” → ✅ “RL能优化非可微指标,但训练不稳定、成本高。SFT在数据质量高时效果足够,且更易部署。选择取决于任务:如果任务有标准答案,SFT更优;如果任务开放且需要对齐,RL是必选项。”
  • ❌ “SFT和RL是互斥的,只能选一个。” → ✅ “实际中常用混合策略:SFT冷启动+RL对齐。例如,DeepSeek-R1先用SFT在推理链数据上训练,再用GRPO优化最终答案。”

6️⃣ 简历呼应

  • 如果你有RAG项目:从“SFT用于优化检索结果排序(如分类相关性),RL用于优化生成质量(如奖励模型打分)”切入。举例:在RAG中,先用SFT微调生成器,再用RL(如DPO)优化答案的忠实度。
  • 如果你只做过传统NLP:用“SFT类似传统分类任务的微调(如BERT分类),RL类似序列决策(如序列标注中的CRF)”类比。强调:SFT依赖标注数据,RL依赖奖励函数,两者互补。
  • 如果你是校招无项目:聚焦论文复现,如“复现DeepSeek-R1的SFT+GRPO流程,在数学推理任务上对比效果”。展示对训练范式的理解,而非项目经验。

7️⃣ 延伸阅读

  • 《Training language models to follow instructions with human feedback》(InstructGPT论文,RLHF经典)
  • 《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》(DPO论文,无显式奖励模型)
  • 《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》(GRPO+推理链)
  • 《Scaling Laws for Reward Model Overoptimization》(奖励过度优化分析)
  • 《The Llama 3 Herd of Models》(Meta的SFT+RL训练实践)

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。