M5-020M5: NLP & Large Language ModelsInstruction Tuning & Supervised Fine-TuningEasy
Mastery:

Instruction Tuning & Supervised Fine-Tuning: 解释 SFT 的目标与数据构造要点。

📐 Mathematical Definition
LSFT=−∑t∈responselog⁡pθ(yt∣x,y<t)\mathcal{L}_{\text{SFT}}=-\sum_{t\in\text{response}}\log p_\theta(y_t|x,y_{<t})
⚡ Executive Summary
Core Concept: SFT 用(指令,回答)对做监督微调,教会模型'按指令作答'的格式与风格;数据需多样、高质量、格式一致。

📌 Key Takeaways

  • •
    目标:学会'指令→回答'的映射(格式、风格、任务)
  • •
    只对回答部分算损失(指令部分掩码)
  • •
    数据要点:多样性、质量、难度分布、格式一致性

📐 Mathematical Derivations

数学机理:<strong>SFT(Supervised Fine-Tuning)</strong> 用(指令 x,回答 y)对,以<strong>自回归交叉熵</strong>微调模型:L_SFT=−Σ_{t∈response} log p_θ(y_t|x, y_{<t})。<strong>注意损失只算在回答部分</strong>(指令部分被 mask 掉)——因为目标是'学会生成回答',而非'学会生成指令';若对指令也算损失,会让模型倾向于'生成指令'(与推理时的行为不一致)。<strong>SFT 的作用</strong>:(a) <strong>格式对齐</strong>——教会模型'按指令组织回答'(如'先分析后结论'、markdown 格式、角色扮演);(b) <strong>任务激活</strong>——把预训练学到的知识'引导'到目标任务上(预训练是'续写',SFT 是'遵循指令');(c) <strong>风格与安全</strong>——学会礼貌、拒绝有害请求、承认不确定性。<strong>数据构造要点</strong>:(a) <strong>多样性</strong>——覆盖任务类型(问答/摘要/代码/翻译/推理)、难度、长度、语言、领域;多样性比数量更关键(少量多样数据常优于大量单一数据,如 LIMA 的'1000 条'发现);(b) <strong>质量</strong>——回答应正确、完整、格式规范;低质量数据会教会模型'胡说';(c) <strong>难度分布</strong>——混合简单与困难样本(全简单则学不到能力,全难则学不稳);(d) <strong>格式一致性</strong>——用统一的 chat template(否则模型学到矛盾的格式);(e) <strong>规模</strong>——从数千条(LIMA 风格)到数百万条(工业界);关键不是量而是'覆盖度与质量'。<strong>其他要点</strong>——(f) <strong>去重与污染检查</strong>(避免测试集泄漏);(g) <strong>长度控制</strong>(避免过长/过短);(h) <strong>拒绝样本</strong>(教模型拒绝不当请求)。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'少量高质量 > 大量低质量'</strong>——LIMA(Zhou 等 2023)用 1000 条精心构造的数据达到与大量数据相当的效果;这说明 SFT 的主要作用是<strong>'激活与对齐格式'</strong>,而非'注入知识'(知识来自预训练)。故数据<strong>质量与多样性</strong>优先于数量。② <strong>只对回答算损失的实现</strong>——需用 chat template 与 label masking(把指令部分的 label 设为 −100 忽略);这是 SFT 实现的标准做法(若实现错误会导致模型学会'生成用户指令',表现为'自问自答')。③ <strong>SFT 与 RLHF 的分工</strong>——SFT 教'格式与基本行为'(模仿),RLHF/DPO 教'偏好与质量'(优化);SFT 是 RLHF 的<strong>前提</strong>(RLHF 需要一个'会说人话'的起点),但 SFT 本身不能超越'演示数据的质量上限'(模仿学习的天花板)。④ <strong>数据来源</strong>——(a) <strong>人工标注</strong>(高质量但贵);(b) <strong>强模型蒸馏</strong>(便宜、可扩展,但同质化风险);(c) <strong>开源数据集</strong>(便利但质量参差);(d) <strong>合成 + 验证</strong>(对可验证任务质量可控)。⑤ <strong>多轮对话的构造</strong>——需构造多轮历史(含上下文依赖),且损失通常只算<strong>最后一轮或所有 assistant 轮</strong>;这影响模型的多轮能力。⑥ <strong>面试要点</strong>——被问'SFT 怎么做',应给出'<strong>只对回答算损失 + 数据四要点(多样/质量/难度/格式)</strong>'与'<strong>少量高质量可优于大量低质量(LIMA)</strong>';能说明'SFT 是模仿学习、有演示数据上限'与'它是 RLHF 的前提'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    对指令部分也算损失(导致模型自问自答)
  • ✕
    认为 SFT 数据越多越好(质量与多样性更关键)
🎯 Interviewer Follow-ups
  • ?
    为什么只对回答算损失?
  • ?
    SFT 数据量需要多少?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM5-019: Scaling Laws & Compute Allocation: 解释后训练阶段的 scaling(RL/推理算力)与预训练 scaling 的差异。📋Back to BankNext →M5-021: Instruction Tuning & Supervised Fine-Tuning: 解释损失掩码与序列打包(packing)的作用。