主题
高频面试题
预训练 / SFT / RLHF / DPO
这道题常用来判断你是否理解“会续写文本”和“能按用户意图安全完成任务”之间差了哪些训练与对齐步骤,以及应用开发什么时候不该微调。
面试官角度分析,想考什么
预训练、SFT、RLHF、DPO 分别解决什么问题?
考你能否把训练阶段说成能力形成、指令跟随和偏好对齐的链路,而不是背名词。Base、Instruct、Chat、Reasoning Model 的差异从哪来?
考机制差异:同一个基础模型经过不同后训练和推理策略,会呈现不同交互能力。应用开发什么时候该微调,什么时候该 RAG 或 Prompt?
考工程边界:知识更新、行为风格、成本、数据质量、评估和回滚。
可直接抄走的 30 秒参考答案
text
预训练让模型学会语言、知识和基本推理,得到 Base Model;SFT 用指令和标准答案让模型更会按任务要求回答;RLHF 或 DPO 用偏好数据让模型更符合人类期待和安全规范。应用开发里通常直接用对齐好的 instruct/chat 模型。微调更适合稳定行为、格式和风格,RAG 更适合接入可更新、可追溯、要权限控制的知识;LoRA/QLoRA 能降低微调成本,但仍然离不开高质量数据和评估。面试回答详解,知其所以然
这道题的核心不是讲 GPU 集群怎么训,而是知道模型能力从哪里来,以及应用开发者该如何判断“调 prompt、做 RAG、微调模型”三者的边界。
1. 训练阶段解决的问题不同
预训练通常用海量文本做 next token prediction,让模型学会语言规律、事实关联、推理模式和代码结构。
text
大规模文本 -> 预测下一个 token -> Base ModelBase Model 能力很强,但不一定听指令,也不一定安全。
SFT 用“指令 - 理想回答”样本训练模型,让它学会摘要、问答、改写、分类、代码解释等任务格式。
text
用户指令 + 标准答案 -> 监督微调 -> Instruct / Chat ModelAI 应用开发通常直接使用 instruct/chat 模型,而不是 base model。
SFT 能教模型“怎么答”,但不一定知道哪种回答更好。偏好对齐会利用人类或模型标注的偏好数据,让模型更倾向安全、有帮助、少废话、符合规范的回答。
- RLHF:训练 Reward Model,再用强化学习优化策略。
- DPO:直接用偏好样本优化模型,流程更简单。
面试里不必深入 PPO 细节,但要能说清它们都在处理“偏好选择”。
2. 这些阶段解释了模型形态差异
- Base Model:更像续写器,适合继续训练、研究和少数可控场景,不适合直接做面向用户的 ChatBot。
- Instruct Model:经过指令微调,能更稳定理解任务和约束。
- Chat Model:进一步围绕多轮对话、安全拒答和人类偏好优化。
- Reasoning Model:通常在训练、后训练和推理策略上强化复杂推理、规划和自检能力,适合高难任务但成本和延迟更高。
LoRA / QLoRA 解决的是微调成本问题。
全量微调成本高、显存大、风险也大。LoRA 冻结原模型权重,只训练少量低秩适配参数;QLoRA 再结合量化,进一步降低显存。
适合:
- 固定格式输出
- 领域分类
- 特定风格
- 小模型蒸馏
- 大量重复任务降成本
但低成本不代表低风险。微调仍然可能带来灾难性遗忘、输出风格漂移、安全能力下降和评估不足。
3. 应用开发要会判断微调、RAG 和 Prompt 的边界
不要一遇到效果不好就说“微调一下”。更稳的判断是:
- Prompt:适合改任务说明、输出格式、语气、简单约束。
- RAG:适合接入经常更新、需要引用、需要权限控制的外部知识。
- Fine-tuning:适合稳定行为模式、领域表达风格、复杂分类边界、固定格式抽取、工具调用习惯。
- 继续预训练:适合大量领域语料注入底层语言分布,但成本高、风险高,应用团队很少直接做。
微调前要先问四个问题:有没有足够高质量样本;是否能用规则或 prompt 解决;知识是否需要频繁更新;有没有离线评估和线上回滚。没有评估集的微调,很容易只是把模型调得“看起来更像”,但真实质量下降。
应用开发里的判断可以这样说:想让模型知道最新业务知识,优先 RAG;想让模型稳定遵循某种格式或风格,再考虑微调;想降低成本,可以评估蒸馏或微调小模型;想提升安全性,需要对齐、评估和 guardrail 一起做。
面试官追问3个问题
追问一:RLHF 和 DPO 最大区别是什么?
- 考察点:偏好优化理解。
- 回答方向:RLHF 通常先训练奖励模型,再用强化学习优化模型策略,流程更复杂、调参更多;DPO 直接利用偏好对优化模型,让被选答案概率更高、被拒答案概率更低,流程更简单。面试里说清它们都解决“人类更偏好哪个回答”,就够应用开发岗位用了。
追问二:微调可以替代 RAG 吗?
- 考察点:知识更新和权限边界。
- 回答方向:通常不能。频繁更新、需要引用、需要权限隔离、需要删除或纠错的知识更适合 RAG;微调更适合行为模式、格式稳定、语气风格和领域任务边界。把最新业务知识写进模型参数里,不仅更新慢,也难追溯来源和控制权限。
追问三:LoRA 为什么省资源?
- 考察点:参数高效微调。
- 回答方向:LoRA 冻结大部分原模型参数,只训练少量低秩适配参数,所以显存、训练时间和存储成本都更低。QLoRA 进一步把基础模型量化后再训练适配参数。但它们省的是训练资源,不是自动保证数据质量、泛化能力和安全性。
扩展知识
从模型形态看训练阶段
text
预训练 -> Base Model
SFT -> Instruct / Chat Model
RLHF / DPO -> 更符合人类偏好
LoRA / QLoRA -> 面向具体任务低成本适配相关资料
OpenAI Fine-tuning 可以帮助理解 API 侧微调流程;Hugging Face TRL 覆盖 SFT、DPO、GRPO 等训练流程;Hugging Face PEFT 适合了解 LoRA/QLoRA 这类参数高效微调。面试中引用这些资料时,重点不是复述训练代码,而是讲清应用边界。