章节导航 第 9 章 / 共 16 章
监督微调(SFT)
从数据构造到训练策略——把预训练模型调教成有用的助手
从”补全机器”到”智能助手”
预训练模型本质上是一个自回归文本补全器——给定前文,预测下一个 token。它能写出流畅的文本,但不会”听话”:
用户:请把下面的句子翻译成英文:"今天天气很好"
预训练模型:请把下面的句子翻译成法文:"明天会下雨"
请把下面的句子翻译成德文...
预训练模型会把你的指令当作”待续的文本模式”来补全,而不是当作需要执行的任务。SFT(Supervised Fine-Tuning) 的目标就是教会模型理解并执行人类指令。
SFT 的核心原理
训练目标
SFT 的训练目标与预训练相同——下一个 token 预测——但有一个关键区别:只在 response 部分计算 loss。
对于一个 instruction-response 对 :
其中 是指令(instruction), 是期望的回复(response)。注意 部分不参与 loss 计算——这告诉模型”你需要根据指令生成回复”,而不是”你需要预测指令本身”。
为什么不在 instruction 部分算 loss?
实验表明,只在 response 部分计算 loss(masked loss)效果优于全文计算 loss(unmasked loss):
- 避免学习”生成指令”的能力——我们要的是回答能力,不是出题能力
- 更高效地利用梯度信号——将学习信号集中在回复质量上
- 避免过拟合到特定的指令格式——模型应该关注语义,而不是格式
LLaMA 2 的技术报告中明确提到使用 masked loss 进行 SFT,并观察到优于 unmasked loss 的效果。
SFT 数据构造
SFT 的核心壁垒在数据,而非算法。一个好的 SFT 数据集需要满足:
数据质量 > 数据数量
LIMA(Zhou et al., 2023)是一篇里程碑式的论文,标题就是 “Less Is More for Alignment”。他们仅用 1,000 条精选数据就训练出了和 GPT-4 可比的对话能力,揭示了一个深刻的道理:
对齐不需要教模型新知识——它只需要教模型用正确的方式展示已有的知识。
具体来说,LIMA 的数据来源:
| 来源 | 数量 | 特点 |
|---|---|---|
| Stack Exchange | 200 | 高票回答,信息密度高 |
| wikiHow | 200 | 结构化步骤指南 |
| 200 | 自然对话风格 | |
| 人工撰写 | 250 | 覆盖长尾能力 |
| Seed prompts | 150 | 引导式对话 |
数据格式
现代 SFT 数据通常使用对话格式(chat format):
{
"messages": [
{"role": "system", "content": "你是一个有帮助的助手..."},
{"role": "user", "content": "解释量子计算的基本原理"},
{"role": "assistant", "content": "量子计算利用量子力学的两个核心特性..."}
]
}
每个模型使用特定的 chat template 将对话格式化为 token 序列。比如 ChatML:
<|im_start|>system
你是一个有帮助的助手<|im_end|>
<|im_start|>user
解释量子计算<|im_end|>
<|im_start|>assistant
量子计算利用...<|im_end|>
数据多样性
好的 SFT 数据需要覆盖多种能力维度:
能力维度
├── 指令跟随:按要求完成特定任务
├── 知识问答:事实性问题、推理问题
├── 创意写作:故事、诗歌、营销文案
├── 代码生成:编程任务、调试
├── 数学推理:数学证明、计算题
├── 多轮对话:上下文理解、指代消解
├── 安全拒绝:识别并拒绝有害请求
├── 格式遵循:JSON、Markdown、表格等输出格式
└── 长文本:摘要、翻译、分析长文档
主要的开源 SFT 数据集
| 数据集 | 规模 | 特点 |
|---|---|---|
| OpenAssistant | 161K | 众包多轮对话,35 种语言 |
| Alpaca | 52K | GPT-3.5 生成,Self-Instruct 方法 |
| ShareGPT | 70K+ | 用户真实对话分享 |
| FLAN Collection | 15M+ | 1800+ NLP 任务的指令化 |
| UltraChat | 1.5M | 多轮对话,GPT-3.5 生成 |
| Magpie | 可变 | 自动从模型内部提取指令 |
| Magpie-Ultra | ~1M(filtered ~620K) | 从 Llama 3.1 405B 提取的超高质量指令,远超原版 Magpie |
| WildChat | 1M+ | 真实用户对话记录 |
| Tulu 3 SFT Mix | ~940K | OLMo 3 使用的混合 SFT 数据,含合成推理 |
| NuminaMath-CoT | ~860K | IMO 级数学推理数据,含详细 CoT |
| OpenMathInstruct-2 | ~14M | NVIDIA 合成的数学 SFT 数据 |
| LongCrafter | 合成生成 | 结构化长上下文 SFT 合成,32 种细粒度任务,证据图引导 |
Self-Instruct:用模型生成训练数据
Self-Instruct(Wang et al., 2022)提出了一种优雅的方法——让 LLM 自己生成 SFT 训练数据:
- 从少量种子指令(175 条)出发
- 让模型生成新的指令
- 让模型根据指令生成回复
- 过滤掉低质量数据
- 加入种子集,重复
这个方法后来演化为 Evol-Instruct(WizardLM 使用的方法),通过”指令进化”生成更复杂的训练数据:
简单指令: "写一首关于春天的诗"
↓ 深化
进化指令: "写一首关于春天的十四行诗,用拟人手法描述花朵的绽放,
每行不超过10个音节,且包含至少3个暗喻"
SFT 训练策略
学习率
SFT 的学习率通常比预训练小 1-2 个数量级:
| 阶段 | 典型学习率 | 原因 |
|---|---|---|
| 预训练 | 1e-4 ~ 3e-4 | 从随机初始化学习 |
| SFT | 1e-5 ~ 2e-5 | 微调已有知识 |
| DPO/RLHF | 1e-6 ~ 5e-7 | 精细调整偏好 |
过高的学习率会导致灾难性遗忘(catastrophic forgetting)——模型在学会指令跟随的同时丢失预训练积累的知识。
训练轮数
通常 SFT 只需要 1-3 个 epoch。过多的 epoch 会导致:
- 过拟合:模型记住训练数据的特定模式,泛化能力下降
- “鹦鹉学舌”效应:回复变得模板化,缺乏灵活性
- 多样性下降:同样的问题总是得到几乎一样的回答
Anthropic 的研究 表明,SFT 过拟合是”对齐税”(alignment tax)的主要来源之一——过度的 SFT 会损害模型的基础能力。
还需注意,“跑几轮”与”给多少预算”是耦合的:在标注预算固定的前提下,多跑一个 epoch 等于把更多预算锁定在 SFT 端、留给 RL 端更少。因此停止点不应只盯着验证损失,而要与 §预算怎么分 的分配决策一起看。
SFT 的层级效应
一个容易被忽视的问题:SFT 到底改变了模型的哪些层?
Massive SFT Experiments(EMNLP 2025)通过数百个 SFT 实验得到了一幅清晰的画面:
- 底层(前 20% 的层):几乎不变。这些层编码通用的语言特征(语法、词法),SFT 对它们的影响微乎其微。
- 中间层:适度调整。语义理解和任务抽象能力在这些层发生温和的适配。
- 顶层(最后 20% 的层):变化最大。任务特定的行为模式、输出风格和指令跟随能力集中在这些层塑造。
这个发现解释了几个经验现象:
- LoRA 通常只作用于 Q/V 投影就够了——因为主要变化发生在高层的注意力模块
- 冻结底层不影响 SFT 效果——底层本来就不怎么变
- PPL 不是难度指标而是兼容性信号——数据的 PPL 反映的是基座模型与该数据的”适配度”,而非绝对难度
Full Fine-Tuning vs. LoRA
Full Fine-Tuning 更新所有参数,效果通常更好但成本高:
LoRA(Hu et al., 2021)用低秩分解大幅降低可训练参数量:
典型配置下,LoRA 只需要训练原始参数量的 0.1%-1%:
| 方法 | 可训练参数(7B 模型) | GPU 显存 | 效果 |
|---|---|---|---|
| Full FT | 7B (100%) | ~60GB | 通常最佳(但见下方注意) |
| LoRA (r=16) | ~8M (0.1%) | ~18GB | 接近 Full FT |
| LoRA (r=64) | ~33M (0.5%) | ~22GB | 非常接近 |
| QLoRA | ~8M (0.1%) | ~10GB | 略有损失 |
QLoRA(Dettmers et al., 2023)进一步将基础模型量化为 4-bit,在 LoRA 之上叠加量化,让 单张 24GB 消费级 GPU 就能微调 65B 模型。
⚠️ “Full FT 最佳”不是一个无条件结论,它取决于任务是否依赖预训练行为。在工具调用 Agent 这一场景的受控研究中(arXiv:2609.17848,6 个 Qwen3 模型 0.6B–32B、18 项设置),LoRA-SFT 反而是分布内最强方法(15/18 项胜出),且附加分析明确给出机制:LoRA 更好地保留了预训练的 agentic 行为。同一研究还发现,跨数据集迁移上 SFT 与 GRPO 的差距很小(GRPO 在 54 项跨域设置中赢 29 项,但对 SFT 的平均优势不到 1 个点),而数据集混合对迁移的帮助与方法选择无关。
一个实用的判断方式:任务越是”激活”模型在预训练中已习得的行为模式(工具调用、代码编辑、多步 Agent),LoRA 的低秩约束越可能成为优势而非劣势——它限制了微调对既有能力的破坏。任务越是”教”模型全新分布(新格式、新领域风格),Full FT 的表达能力优势越明显。
⚠️ 该结论来自单一任务域(工具调用 Agent),不足以推翻上表的整体结构,但足以说明”最佳”需要带上条件。
不训练也能拿到微调能力?
本节三个选项都在回答”训多少参数”。还有一条此前全书没有的路线:一点都不训。
SFT-as-Context(arXiv:2610.11132,2026-10)的做法极简:父模型(即 SFT 前的基座)把 SFT 模型的回答当作上下文来回答查询——通过 in-context learning 从 SFT 回答里获得微调能力,同时保住自己的通用能力。它针对的正是”专精能力与通用能力需要同时上场”的那一类查询。
在 19 对父-SFT 模型对、11 个基准上:专精能力侧与 SFT 模型只差 AIME 2024 2.2pp、LiveCodeBench 2.1pp、NutriBench-English 2.0 macro MAE;通用能力侧与父模型平均相差 2.2pp 以内。
💡 最值得记住的一句:它能解出父模型与 SFT 模型单独都解不出的查询。这说明它不是一个”两边各让一步”的折中,而是产生了新的能力组合。论文另外给了 Bayesian 框架下的理论误差界(分别相对 SFT 模型的专精能力与父模型的通用能力),并用注意力可视化说明父模型会更关注有用的 SFT 回答——这在本章偏工程的行文里是少见的可引用理论。
把三条路线排成一维会更清楚:改多少权重(Full FT > LoRA > 零)与留住多少基座能力(反序)是一对直接的取舍。本章前面那句”任务越是激活既有行为,LoRA 的低秩约束越可能是优势”,在这里有了它的极限版本:如果任务几乎完全依赖基座已有能力,那就连低秩更新都不必做。
⚠️ 成本提示:免训练不等于免开销——推理时要跑两次模型(先让 SFT 模型出回答,再让父模型带着它作答)。论文的差距数字里不包含这份推理成本,落地时要自己算进去。
rank 该怎么选?判据在数据侧,不在模型侧
上表给了 r=16 与 r=64 的参数量、显存与效果,但读者照着做微调时第一个要拍板的数是”r 取多少”,而这个问题此前没有判据——现有理论只给了”太小则优化地形病态、太大则丢掉 LoRA 的效率动机”这样的定性取舍。
arXiv:2610.06542(2026-10)的核心洞察是:合适的 rank 应当取决于数据诱导的优化几何质量,而不是取决于模型。为此它引入 LoRA-RIP,一个数据依赖的受限等距度量,刻画交叉熵目标沿 LoRA 相关低秩方向的条件数;并证明充分的 rank 过参数化(所需 rank 由 LoRA-RIP 常数显式给出)可以消除虚假局部极小,把既有的 RIP 保证从经典的 1/3 区制推广出去。由此还能在固定 rank 预算下做有原则的数据选择。结论是:rank 与数据质量是两种耦合的资源,应当联合考虑。
⚠️ 与本章已有结论的对照,别读反:§预算怎么分 说”近最优区域是宽平台,粗糙分配就已接近最优”——那是分配比例的宽平台;而 rank 与数据质量不能各自独立定。两者不矛盾,但容易把”宽平台”误读成”什么都不用精细调”。
⚠️ 成熟度提示:理论工作,实验覆盖语言与视觉任务但规模未披露;LoRA-RIP 常数在实际规模下是否可高效计算,论文未说明。请按”给出了判据的存在性”理解,不要当作可直接套用的公式。
多轮对话训练
处理多轮对话时,loss 计算需要特别注意:
[System] 你是一个助手
[User] 什么是机器学习? → 不算 loss
[Assistant] 机器学习是... → 算 loss ✓
[User] 能举个例子吗? → 不算 loss
[Assistant] 当然,比如推荐系统... → 算 loss ✓
每一轮的 assistant 回复都独立计算 loss,所有 user 和 system 消息被 mask 掉。这种方式被称为 per-turn masking。
Agent 轨迹:环境观测该不该算 loss? 上面讲的是对话角色的掩码,Agent 场景下还有一类 token 需要单独决策——环境返回的 observation。惯例是只对 Agent 自己产出的 action token 算 loss,observation 仅作上下文。ActObs(2026-09)挑战了这一惯例:连已经在轨迹里的 observation token 一起监督,不增加数据、参数、序列长度或前向次数——成本为零。关键的实验现象是:两种做法在 SFT 之后看起来完全一样,差异要到随后的 GRPO 阶段才显现:
| 模型 / 基准 | 结果 |
|---|---|
| Qwen3-4B / Terminal-Bench 2.0 | 所有采样预算下 pass@k 均优于 action-only |
| Qwen3-8B / Terminal-Bench 2.0 | 少量 pass@1 换 pass@16 +3.4pp,解出更多不同任务 |
| Qwen3-4B / aider-polyglot(SFT 与 RL 均未见过的代码编辑) | pass@1 +4.2pp |
机制是:SFT 过程中 action 梯度与 observation 梯度很快变得正交,只训 action 会留下一大块未被利用的残差,并使环境预测能力退化到低于基座模型。联合监督避免了这种单向特化。若你的 SFT 后面还要接 RL,这条尤其值得试——它是少数”零成本但要到下一阶段才兑现”的改动。
高级 SFT 技术
Rejection Sampling(拒绝采样)
LLaMA 2 使用了 rejection sampling 来提升 SFT 数据质量:
- 对每个 prompt,让模型生成 个候选回复
- 用奖励模型为每个回复打分
- 只保留得分最高的回复作为训练数据
这本质上是用 RL 的信号来增强 SFT 数据——不需要完整的 RLHF 流程,但能获得部分收益。
但对 Agent 轨迹,“通过测试”这个过滤器不够。 上面三步隐含着一个前提:结果好等于轨迹好。这个前提在单轮问答上大致成立,在多轮 Agent 轨迹上会被直接证伪。
TQS(Trajectory Quality Score,arXiv:2610.13152,2026-10)指出:开源 coding agent 普遍在”最终补丁通过测试套件”的交互轨迹上做 SFT,但结果级过滤忽略了过程质量——最终成功的轨迹里仍可能包含重复查看同一文件、工具使用不稳定、修改行为滞后等低效模式,而这些都会被原样当作模仿目标学进去。
它的做法是在轨迹结构上直接打分:围绕”结构化收敛”组织三类结构信号(信息聚焦、意图-动作对齐、策略动力学),不需要 LLM 裁判,线性时间。用 155,144 条成功轨迹排序并取子集微调,top-ranked 子集训出的模型在 SWE-Bench-Verified 上一致优于随机子集与 bottom-ranked 子集。
🔑 写进书里最有用的一句:拒绝采样筛的是”结果对不对”,TQS 筛的是”过程值不值得模仿”。本章 §SFT 在推理模型中的角色重定位 讲的正是 SFT 的目标从”答对”转向”学会怎么做事”——目标换了,过滤器也必须跟着换。
顺带呼应第十一章的一条原则:凡是能用规则判定的维度就不要交给 LLM 裁判。TQS 不用裁判、线性时间,是这个原则的一个实例。
⚠️ 成熟度提示:单篇预印本,无独立复现;仅在 coding-agent 域验证;“一致优于”未给出具体幅度。
NEFTune
NEFTune(Jain et al., 2023)发现了一个反直觉的技巧:在 SFT 训练时向 embedding 层添加均匀噪声,能显著提升对话质量。
其中 是噪声强度(通常 5-15), 是序列长度, 是 embedding 维度。
直觉解释:噪声起到了正则化的作用,防止模型过拟合到 SFT 数据的特定表面模式,鼓励模型学习更鲁棒的表示。
SFTKey:强调关键答案 Token
标准 SFT 在 response 部分统一计算 loss,但 SFTKey 发现模型过度关注长 CoT 序列而忽视短但关键的最终答案部分。SFTKey 采用两阶段训练:第一阶段常规 SFT 确保格式正确,第二阶段仅微调最终答案 token。多基准平均精度提升 >5%。
这本质上是”只在 response 部分算 loss”的进一步精细化——在 response 内部区分 CoT 过程和最终答案的 loss 权重。
ASFT:锚定 SFT 防止漂移
ASFT(ICLR 2026)通过 Reward-Weighted Regression 框架分析 DFT(Dynamic Fine-Tuning),发现 DFT 缺少分布锚定导致渐进漂移。ASFT 在 DFT 重加权基础上增加轻量 KL 正则化,在数学推理、医学知识、代码生成上一致优于 SFT 和 DFT,计算开销极小。
Packing(序列拼接)
SFT 数据长度差异很大(从几十 token 到上千 token)。简单的 padding 会浪费大量计算。Packing 将多个短样本拼接到同一个序列中:
Before packing (大量 padding 浪费):
[样本A][PAD PAD PAD PAD PAD]
[样本B B B B B B][PAD PAD]
After packing (高效利用):
[样本A][样本B B B B B B][样本C]
需要配合 attention mask 确保不同样本之间不会互相 attend。
SFT 质量评估
自动评估
- MT-Bench:80 道多轮题,GPT-4 评分 1-10
- AlpacaEval:805 条指令,GPT-4 对比评估
- Arena-Hard:500 条高难度问题
人工评估
自动评估有偏差,关键决策仍需人工评估。常见维度:
| 维度 | 评估标准 |
|---|---|
| 有用性 | 回答是否真正解决了用户问题 |
| 真实性 | 是否有事实错误或幻觉 |
| 无害性 | 是否包含有害、偏见或不当内容 |
| 格式 | 是否遵循要求的格式 |
| 简洁性 | 是否冗长啰嗦 |
常见陷阱与经验
1. 数据污染
SFT 数据可能包含评估集的问题和答案,导致评估结果虚高。务必对 SFT 数据做去污染检测。
2. 质量过滤不等于安全过滤
本章前面把质量过滤当成一个理所当然的正面前置步骤——LIMA 精选、rejection sampling、动态 SFT 都是过滤思路。但“我们跑了质量选择”不等于”我们去掉了危险数据”。
High-quality Data Do not Mean Safe!(arXiv:2610.01367,2026-10,重庆大学 + 浙江大学)系统评测了质量选择器对投毒样本的过滤效果。它的实验构造是每个投毒基线 100 条样本,混入 1,900 条清洗过的 Dolly 样本,再按不同过滤率做质量选择并微调。结果分两侧看:
- 对直白有害样本,质量选择是有效的:投毒保留率(PRR)随过滤率上升而下降,说明显式有害的样本通常拿不到高质量分。
- 对”看起来正常”的恶意样本,质量选择失效:即使在 90% 过滤率下,以有害样本为种子优化出的样本仍取得 PRR 高于 90%,模型的 Harmful Score 达 3.30–4.01;作为对照,Llama2-7B-Chat 未微调时的基线 Harmful Score 是 1.13(5 分制)。攻击效果还能跨模型迁移。
⚠️ 这是一篇攻击侧的工作,读它的角度要摆对。作者提出的 Bi-QSTO 是一个”在显式质量约束下优化投毒样本”的方法——目标就是让它既通过质量筛选、又保留破坏安全对齐的能力。所以它证明的不是”质量选择器做得不好”,而是”质量选择器可以被显式绕过”,而且绕过的成本不高。
机制(论文自述,带不确定性):存活下来的高质量样本之所以仍能破坏安全对齐,可能是因为在逐层梯度层面,它们的训练更新模式与真正有害样本相似。论文在这一点上用了”possibly”,属于推测而非已证实的因果链。
处方:质量过滤之后还要单独做安全过滤,两者不能互相替代。 质量选择器评的是准确性、指令-响应契合度、内容充实度,没有任何一项在问”是否触及安全护栏”。
⚠️ 证据等级:单篇预印本,无独立复现。本节数字(100 / 1,900、90% 过滤率、PRR >90%、HS 3.30–4.01、基线 1.13)已回源至 arXiv abs 页摘要与 HTML 正文实验表;提案另给的”内容审核工具把其中 93% 判为安全”未能在一手表中定位到,故未写入。机制一句为论文的推测性表述,引用时请带上”可能”。
3. Sycophancy(谄媚)
过度优化”用户满意度”会导致模型变得谄媚——即使用户说的是错的,模型也会表示同意。需要在数据中包含”礼貌拒绝”和”纠正用户”的样本。
4. Verbosity(冗长)
模型倾向于输出更长的回复(因为更长的回复通常被标注员评为”更好”)。需要在数据中包含简洁回复的样本,或在评估时控制长度偏差。
5. 格式过拟合
如果 SFT 数据过度使用 Markdown 列表或特定格式,模型会在不需要的时候也使用这些格式。数据格式应该多样化。
SFT 与 RL 的关系
但这个前提本身是可拆的。 在展开”为什么先 SFT 后 RL”之前,先记下一条 2026 年 10 月的反例。那条常识的完整表述是”RL 在新任务上泛化强且不丢已有能力,SFT 则泛化弱且灾难性遗忘”——本章 §SFT 训练策略 也沿用了这个说法。但它还有另一半,常常被略去:SFT 能学 off-policy 的专家数据,而 RL 必须依赖模型自己反复采样才找得到成功轨迹。
Finetuning with Sampling(arXiv:2610.02140,2026-10)的取法与本章前面所有方法都不同:不改学习目标去迁就 off-policy 数据,而是反过来改造数据分布去迁就学习者。它提出一个 MCMC 采样算法,以一个参考模型为条件,把 off-policy 轨迹渐进地改造成更 on-policy。在科学技能习得、数学推理、开放式专长三类任务上,SFT 因此能与主流后训练方法打平,且常常比强 on-policy 基线泛化更好、遗忘更少;所得模型还表现出强分布内性能,能学到超出”锐化基座分布”之外的东西。作者把 sampling 定位为一个”模型原生的、为可学习性塑形数据的算子”。
🔑 这条证据推翻的是什么:它不推翻”先 SFT 后 RL”的顺序结论,推翻的是”SFT 的弱点内在于 SFT”这一归因。泛化弱与遗忘重不是 SFT 的固有属性,而是“数据分布与当前策略不匹配”的产物——既然是产物,就可以通过改数据分布来消除,而不必改用 RL。
这与本章 2026-09-25 补的那条”多样性下降不是 SFT 的固有偏向,而是有限样本误差的产物”(arXiv:2609.16454)是同一类论证结构:每一次”某个坏性质被归给 SFT 本身”,最终都被证明是某个可控变量的产物。
⚠️ 成熟度提示:单篇预印本,无独立复现;作者未给出与 DPO / GRPO 的逐项对比表,只说”rival prevailing posttraining techniques”,比较的口径与基线强度需自行判断。
🔗 跨章联动:第十章 §从对齐到能力提升 的对比表(传统对齐 vs 推理 RL)也建立在类似的二分之上。读者若在第九章看到”SFT 也能泛化好”、第十章看到”SFT 只改行为不改能力”,会读到自相矛盾——两处须同轮改,把”SFT 的弱点来自数据分布而非目标函数”这一区分写进第十章。
推理路径视角:“RL Squeezes, SFT Expands”
SFT 和 RL 在后训练流水线中扮演什么角色?为什么”先 SFT 后 RL”是最优顺序?
“RL Squeezes, SFT Expands”(ICLR 2026)从推理路径多样性的角度给出了一个优雅的解释:
- SFT 扩展策略空间:通过学习多样化的训练数据,模型掌握了多种解题思路和表达方式。SFT 是在”播种”——将各种可能的推理路径植入模型。
- RL 压缩到高奖励路径:强化学习通过奖励信号筛选出最优的推理路径,抑制低质量的路径。RL 是在”修剪”——只留下最好的那些。
这解释了为什么反过来(先 RL 后 SFT)效果很差——如果先压缩,策略空间就被过早收窄了,后续的 SFT 很难再扩展回来。
预算怎么分:近最优区域是宽平台
上一节回答了”为什么先 SFT 后 RL”,但工程上每周要拍板的是另一个问题:固定标注预算,SFT 和 RL 各给多少?
Scaling Near-Optimal SFT–RL Annotation Budget Allocation(EMNLP 2026)给出的答案可能会让追求精确配比的人松一口气——近最优区域是宽平台,不是尖峰:
| 结论 | 数据 |
|---|---|
| 近最优区域有多宽 | (保留 90% 峰值性能)时,多数任务的近最优分配覆盖 55%–75% 的可行分配空间;模型规模越大区域越宽 |
| 能否用小代理模型迁移 | 1B–8B 上做 5 点网格 proxy sweep 取中点, 时 94.3%、 时 97.1% 的案例满足容差 |
| 预算该以什么计量 | 人工标注约 $0.5–1.0/样本,训练算力仅 $2×10⁻⁵–$3×10⁻⁴/样本——差 3–5 个数量级 |
第三条尤其关键:既然标注成本比算力高 3–5 个数量级,那么”预算”就应当以标注样本数计量,而不是以 GPU 小时计量。工程含义有两层——不必为”精确配比”做大规模网格搜索(宽平台意味着粗糙的分配就已经接近最优);也不必用小模型刷无数组超参去找那个尖峰。
适用边界(论文自述局限):实验规模上限 14B、单任务标注预算上限 15k 样本,前沿规模未验证;分配比例在分布外(OOD)评测下是否同样可迁移,论文亦未验证。
SRFT:当 SFT 和 RL 不再分家
如果 SFT 和 RL 的角色互补,能不能把它们统一到一个训练阶段?
SRFT(Supervised Reinforcement Fine-Tuning)(ICLR 2026)做到了这一点。核心机制是用熵作为动态指示器:
- 当模型输出的熵低(对某个答案非常确定),SRFT 加强 RL 探索——打破过度自信,尝试其他可能性
- 当模型输出的熵高(对答案不确定),SRFT 加强 SFT 模仿——从高质量数据中学习确定性
在 5 个数学推理基准上,SRFT 比 zero-RL 方法平均提升约 9 个百分点,在分布外基准上提升更达 10.9 个百分点。单阶段训练还带来一个工程优势——不再需要两个独立的训练流程和两套超参数。
CurioSFT:熵保持的 SFT
标准 SFT→RL 管线中,SFT 导致模型过度自信和生成多样性下降(“熵坍缩”),这直接限制了后续 RL 阶段的探索空间。
⚠️ 但”多样性下降”不是 SFT 的固有偏向,而是有限样本误差的产物。这一区分很重要,否则会误以为必须靠改损失函数来”对抗”它。arXiv:2609.16454(2026-09)用碰撞概率(同一 prompt 下两次独立采样结果相同的概率)量化模型与目标的多样性差距,给出偏差-方差分解,结论有三层:
- mode collapse 或其反面 over-dispersion 是否发生,取决于具体的模型与数据集——SFT 本身并不偏向其中任何一方。
- 用足够的目标数据,模型输出多样性会收敛到微调数据所采样的目标分布的多样性。
- 绝对差距由 所界定——在总体交叉熵下足够接近最优的模型,不可能表现出任意失调的多样性。
实践含义:增加与改善目标数据本身就是恢复多样性的手段,且与下面三种改损失的方法并不冲突——前者缩小上界,后者在给定数据下改善动力学。三个实验(合成语言小 Transformer、4 个 LLM 在人类调查数据上微调、同一批 LLM 在 CodeNet 人类代码解上微调)一致显示:目标数据越多,模型多样性越向目标水平靠拢。
CurioSFT(ACL 2026)针对这一问题提出两个组件:
- Self-Exploratory Distillation:向自生成的温度调节教师蒸馏,鼓励探索
- Entropy-Guided Temperature Selection:基于 token 级不确定性自适应调整蒸馏强度
数学推理 ID +2.5 分,OOD +2.9 分,后续 RL 阶段额外 +5.0 分——这意味着 SFT 阶段保留的多样性直接转化为 RL 阶段的更大收益。
与 SRFT 的对比:SRFT 统一 SFT+RL 为单阶段,CurioSFT 保持两阶段但优化 SFT 阶段的输出分布。两者从不同角度解决同一个问题(SFT 的熵坍缩限制 RL 效果),选择取决于工程约束——是否允许单阶段训练。
LP-SFT:Token 级局部熵保持
LP-SFT(Locality-Preserving SFT,Yueyang Wang et al., 2026-07)从与 CurioSFT 完全不同的层面解决同一问题:
核心发现:分析预训练模型的 next-token 预测分布发现存在”多模态熵结构”——模型在 token 级编码了丰富的备选偏好(如”the”之后可能是”cat""dog""result”等,各有权重)。标准交叉熵 SFT 仅优化目标 token,破坏了这种局部偏好结构——这正是 SFT 后生成多样性下降的 token 级机制。
方法:自适应构造备选 token 集合(从冻结基座模型取 top-K 备选),移除目标 token 后对剩余备选做局部归一化 KL 散度——保持基座模型在”这个位置原本还想选什么”的信息。
效果:Qwen3/Llama 3.1 上 pass@1 精度与 pass@k 多样性实现最佳平衡,一致优于 vanilla SFT 及 DFT/EAFT/GEM/ASFT 基线。
与已有方法的互补关系:
- CurioSFT:输出分布层(Self-Exploratory Distillation + Temperature Selection)
- SRFT:SFT+RL 统合层(熵驱动动态平衡)
- LP-SFT:token 局部偏好层(局部归一化 KL)
- TrimSFT:token 置信度层(arXiv:2609.09707,2026-09,EMNLP 2026 Findings)——按 gold token 与最强竞争者的 logit gap 重加权,裁掉两端:gap 很大(已掌握,再训只会 over-sharpen)和很弱/为负(标签可能是噪声)的 token,只保留中间带。用带带宽 的高斯权重实现,不需要参考模型或额外前向。在 Llama / Qwen / DeepMath 六个基座、五个数学推理基准上,六个模型中有五个取得最佳平均表现,MATH500 上相对 SFT 最高 +26.9 分。分析还显示带宽 比 margin 的具体位置更重要,且只裁一侧的 half-trim 变体权衡更差。
-
CIG-SFT:任务条件信息增益层(arXiv:2610.12995,2026-10)——在 teacher forcing 下用冻结的参考模型比较”能看到任务输入”与”看不到任务输入”时该 token 的似然(gold 前缀固定),差值即任务带来的条件信息增益,量化”任务本身把这个示范决策的不确定性降低了多少”;再把它转成对当前策略的 KL 正则化投影,导出一个标量加权 SFT 目标,其 logit 梯度与投影后的目标精确一致。数学推理与代码生成基准上一致优于标准 SFT 与近期自适应微调基线,对困难评测分布的泛化提升尤其明显;且不需要额外训练数据,也不需要在线 rollout。
-
五者覆盖从粗到细的粒度,可组合使用
🔑 第六种的性质与前五种不同,这是本条最有教学价值的地方。前五种问的都是”模型对这个 token 有多确定/多偏好”——概率、熵、top-K 备选、logit gap。CIG-SFT 问的是”这个 token 携带多少任务特有的信息”。
它直指这一类方法的共同盲区:“模型兼容性”不等于”学习价值”。一个当前模型支持度很低的 token,既可能是”不该学的错配”,也恰恰可能是这条示范真正要教的任务特定决策。按模型置信度重加权,会把后者一起压掉。
⚠️ 注意与本章”不是所有 token 该被同等对待”的另两条路线区分:SFTKey(
2512.21017,强调关键答案 token)是”加权”,TrimSFT 是”裁剪两端只留中间带”,方向不同,可以并列呈现;而 CIG-SFT 与前两者的区分维度不同——它不看模型侧置信度,而看任务侧信息量,因此可与它们叠加。⚠️ 成熟度提示:单篇预印本,无独立复现;仅在数学推理与代码生成两个域验证,泛化性未证。
SFT 在推理模型中的角色重定位
在推理模型(如 DeepSeek R1、Qwen3-Think)的训练中,SFT 的角色正在从”格式对齐工具”转变为”推理路径播种器”。传统 SFT 教模型”怎么说话”——语气、格式、安全边界。而推理模型的 SFT 更多是在教模型”怎么思考”——展示多步推理的拆解方式、回溯和自我纠错的模式。
这是一个微妙但重要的转变。它意味着推理模型的 SFT 数据质量要求从”回复质量”转向”推理过程质量”——答案对不对不是最重要的,推理链是否完整、是否展示了多样的思维方式才是关键。
这一转变不只发生在输出层面。Beyond Shallow Alignment(EMNLP 2026 Main)在三个架构迥异的模型(Llama-3.1-8B、Gemma-2-9B、Qwen3-8B)上对比了三种后训练方法——普通 SFT、推理增强 SFT(在论证安全决策的推理链上训练)与 ORPO 偏好优化,得到两条结论:
- 训练方法,而不只是数据,会重塑拒答的内部计算方式。推理增强训练在三个模型上都产生了一类结构上可辨识、区别于普通 SFT 的拒答计算回路;架构则独立地影响内部结构,以及拒答能被可靠引导的程度。
- 没有任何一种被研究的方法同时满足安全对齐想要的三条性质:拒答不集中在少数脆弱组件上、安全增益不损耗通用能力、安全行为可通过小的定向编辑纠正。作者因此明确提醒,不应把当前的后训练方法当作已经解决、可靠的防御。
换言之,SFT 改变”怎么思考”这件事是真的,但它有代价也有边界——换一种 SFT 配方,改的不只是模型说什么,还有它内部怎么算出”该不该说”。
章节小结
SFT 是从预训练模型到实用助手的桥梁。核心要点:
- 数据质量 >> 数据数量:1000 条优质数据可能胜过 100 万条平庸数据
- 只在 response 部分计算 loss
- 学习率要小:1e-5 量级,避免灾难性遗忘
- 1-3 个 epoch 是经验起点,不是停止准则:过拟合是 SFT 最大的敌人;而标注预算固定时,多跑一轮等于把预算锁定在 SFT 端(见 §预算怎么分)
- LoRA/QLoRA 让微调平民化:消费级 GPU 就能微调大模型
- SFT 是必要但不充分的——它教会模型”怎么说话”,但不能教会模型”什么该说什么不该说”。后者需要 RLHF/DPO,这是下一章的内容。