第18章 两阶段后训练:领域 SFT/RL + on-policy 蒸馏

“First specialize, then unify. The opposite produces mediocrity in everything.” —— V4 团队的训练哲学

V4 不是用一套 SFT + RLHF 一条龙就上线的——它先训好 N 个领域专家,再蒸馏到一个统一模型。


18.1 引子:单阶段 SFT 走到尽头了吗

LLM 的标准后训练流程是:

  1. SFT (Supervised Fine-Tuning):用人工写的 (prompt, answer) 对训练
  2. RLHF / DPO / GRPO:用人类偏好或可验证奖励调优

这套流程在 GPT-3.5 / Llama 2 / V3 时代很成功,但在 V4 这种 1.6T + 多领域的场景下暴露三个问题:

问题 1:跨领域负迁移

在一个统一模型上同时做”代码 SFT” + “数学 SFT” + “聊天 SFT” + “long context SFT”——领域之间的训练信号会互相干扰。模型学了代码后聊天能力可能下降;学了数学后写作能力可能下降。

问题 2:思考形态混淆

V4 同时支持 Non-Think / Think High / Think Max 三种推理模式。如果在统一模型上同时训三种模式的数据,模型会”困惑”——什么时候该 thinking、什么时候不该。

问题 3:384 expert 的精细调优

384 个 routed expert 已经在预训练里有差异化。后训练应该强化这种差异化,而不是把所有 expert 统一往同一个目标拉——单阶段 SFT 会模糊化预训练学到的 expert 专业性。

V4 的解法:把后训练拆成两阶段——先让多个领域专家模型独立成长,再蒸馏到统一模型。


18.2 阶段一:领域专家独立培养

V4 README 描述:“Domain-specific expert cultivation independently with SFT + RL (GRPO).”

这个阶段的工作:

flowchart TB
  Pretrained["预训练 V4 base model<br/>(1.6T 参数)"]
  Pretrained --> ECode["V4-Code<br/>(代码专家)"]
  Pretrained --> EMath["V4-Math<br/>(数学专家)"]
  Pretrained --> EChat["V4-Chat<br/>(聊天专家)"]
  Pretrained --> ELongCtx["V4-LongCtx<br/>(长上下文专家)"]
  Pretrained --> EThink["V4-Think<br/>(推理专家)"]

  ECode -->|SFT + GRPO| ECodeOpt[V4-Code 优化版]
  EMath -->|SFT + GRPO| EMathOpt[V4-Math 优化版]
  EChat -->|SFT + GRPO| EChatOpt[V4-Chat 优化版]
  ELongCtx -->|SFT + GRPO| ELongCtxOpt[V4-LongCtx 优化版]
  EThink -->|SFT + GRPO| EThinkOpt[V4-Think 优化版]

每个领域专家:

  • 从同一个预训练 V4 base 出发
  • 用本领域的 SFT 数据 fine-tune
  • 用本领域的可验证奖励做 RL(GRPO,DeepSeek 的强化学习算法)
  • 训练 thousands 到 tens-of-thousands steps

这样得到 N 个”领域专家”模型——每个在自己领域显著超过预训练 base,但在其他领域可能弱于 base(因为没训)。

GRPO(Generalized Reinforcement Policy Optimization)是 DeepSeek 在 R1 训练中引入的算法——简化版 PPO,不需要 value function。它的优势:

  • 实现简单
  • 训练成本低(不需要训 critic)
  • 在可验证奖励(数学题对错、代码 pass/fail)上效果显著

第一阶段的产出是 N 个领域专家模型——每个的能力轮廓鲜明、差异化。


18.3 阶段二:on-policy 蒸馏到统一模型

V4 README 描述:“On-policy distillation into a single unified model.”

这个阶段把 N 个领域专家的能力蒸馏回一个统一模型

flowchart TB
  ECode[V4-Code 优化版] --> Distill[on-policy<br/>蒸馏过程]
  EMath[V4-Math 优化版] --> Distill
  EChat[V4-Chat 优化版] --> Distill
  ELongCtx[V4-LongCtx 优化版] --> Distill
  EThink[V4-Think 优化版] --> Distill

  Distill --> V4Final["V4 统一模型<br/>(发布版)"]

on-policy 蒸馏与传统蒸馏的区别:

  • 传统蒸馏:teacher 模型生成数据集,student 在这个固定数据集上 fine-tune
  • on-policy 蒸馏:student 自己生成 prompt 的回答,teacher 给出”理想回答”,student 学着跟 teacher 接轨

on-policy 的优势:

  • student 学到的是它自己分布下的纠正——避免 teacher 数据分布与 student 不匹配
  • 训练效率更高——每个 step 都是”针对 student 当前弱点”的纠正
  • 可以增量加领域——新领域专家训完,蒸馏阶段直接把它加进 teacher 集合

具体的算法(推测):

for batch in training_data:
    # 1. student 生成回答
    student_output = student_model(batch.prompt)
    
    # 2. 选择最相关的领域专家作为 teacher(基于 prompt 类型)
    teacher = route_to_teacher(batch.prompt)
    teacher_output = teacher(batch.prompt)
    
    # 3. 用 KL 散度 / cross-entropy 让 student 接轨 teacher
    loss = distillation_loss(student_output, teacher_output)
    loss.backward()
    optimizer.step()

第二阶段的产出就是发布的 V4 模型——同时具备 5+ 领域专家的能力,且没有领域间负迁移。


18.4 与 R1 路线的关系

V4 的两阶段后训练与 DeepSeek-R1 的训练路线有明显血缘——R1 的训练流程:

  1. R1-Zero:从 V3 base 直接用 RL(GRPO)训长链推理能力
  2. R1:用 R1-Zero 生成的高质量推理数据 SFT,再 RL

V4 的两阶段是 R1 路线的一般化

  • R1 只针对”推理”一个领域
  • V4 把这个思路扩到 5+ 领域
  • 多个领域专家通过 on-policy 蒸馏融合

这种”先专后通”的训练哲学源自 R1 在推理任务上的成功——把它推广到多领域是 V4 的工程贡献。


18.5 数据工程:每阶段的数据特点

后训练阶段的数据需求与预训练完全不同:

阶段一数据(领域 SFT + RL)

  • 总量:每领域 100K - 1M 高质量样本
  • 质量要求:样本必须接近”标准答案”——错误数据会教坏模型
  • 多样性:覆盖该领域的关键 sub-task
  • 来源:人工写 + 合成 + 从 R1 / V3 蒸馏

阶段二数据(蒸馏)

  • 总量:millions of prompts
  • 质量要求:prompts 多样化即可,“答案”由 teacher 生成
  • 多样性:覆盖所有 5+ 领域的混合分布
  • 来源:通常是真实用户 prompt 的脱敏版本 + 合成 prompts

评估数据

  • 每领域有 hold-out 测试集
  • 严格不参与训练
  • 用于检测训练 over-fit / catastrophic forgetting

数据工程的工作量在 V4 这种规模下远超预训练——预训练数据是”爬下来过滤”,后训练数据是”高质量精修”,单位成本差几个数量级。


18.6 评估闭环:什么决定阶段切换

后训练阶段的”何时停”是工程关键。V4 用一套评估闭环控制阶段切换:

每个领域专家的”训练完成”判断(推测):

  • 该领域 benchmark 的 score 收敛(连续几次 eval 不再提升)
  • 训练 loss 收敛(不再下降但也不上升)
  • gradient norm 稳定
  • expert utilization 不偏离预训练分布太多

第二阶段(蒸馏)的停止判断:

  • 各领域 benchmark 综合 score 接近各自专家的 90%+
  • 没有显著的”领域间负迁移”
  • 长上下文任务(needle-in-haystack 类)准确率维持

这套评估必须严格——否则训练可能”看起来在前进,实际在退步”。第三方独立评估(如 Artificial Analysis、HF Open LLM Leaderboard)的结果会与团队内部 eval 互相对照。


18.7 后训练对架构的影响

后训练对 V4 的架构有几个反向影响——不是”训练适配架构”,而是”架构为后训练优化”:

影响 1:384 expert + Hash 路由的稳定性 后训练阶段不能让 expert 路由发生大幅变化(否则破坏预训练学到的差异化)。V4 的 Hash routing 前 3 层 + bias term + sqrtsoftplus 等设计让后训练阶段路由稳定——bias 仍可调但变化小。

影响 2:MTP 在后训练里的角色 MTPBlock 在后训练阶段也参与训练——它的 next-next 监督让模型在”思考链生成”任务上表现更好(生成长 think 链时 MTP 的”看远”能力发挥)。

影响 3:稀疏 attention 的鲁棒性 后训练经常涉及长 prompt(特别是推理任务),稀疏 attention 的”选错”会被 SFT/RL 的 reward 惩罚——模型学到”主动多关注关键 KV 位置”,强化稀疏选择能力。

影响 4:混合精度的稳定性 后训练时 FP4 expert 的 QAT 路径继续生效——后训练数据会让 FP4 量化误差进一步降低(模型继续学习对量化误差的鲁棒性)。

这几个影响说明:V4 的架构设计已经把”后训练友好性”作为一等约束——不只是”能训到收敛”,而是”训练完后部署时仍然鲁棒”。


18.8 与同类后训练方案对比

把 V4 的两阶段后训练与几个流行方案对比:

方案阶段数主要算法领域处理代表模型
传统 SFT + RLHF2SFT + PPO单阶段统一Llama 2 / GPT-3.5
DPO1Direct Preference Opt单阶段统一Mistral / Zephyr
Constitutional AIRLAIF单阶段统一Claude
R1 路线2-3SFT + GRPO + 蒸馏推理专长DeepSeek R1
V4 两阶段2SFT + GRPO + on-policy 蒸馏多领域专长 + 统一DeepSeek V4
Llama 4 SFT/RLHF2SFT + RLHF多领域单阶段Llama 4

V4 在三个维度上独特:

  • 多领域专长:先培养 5+ 专家而非单模型 multi-task
  • on-policy 蒸馏:让 student 在自己分布上学
  • GRPO 取代 PPO:训练成本低、不需要 critic

这种工程权衡让 V4 的最终模型在多个领域同时表现优秀——单领域 vs 通用的 trade-off 被很大程度规避。


18.9 动手实验:simple distillation

import torch
import torch.nn as nn
import torch.nn.functional as F

class MiniTeacher(nn.Module):
    """模拟一个已训好的领域专家"""
    def __init__(self, vocab=1024, dim=128):
        super().__init__()
        self.embed = nn.Embedding(vocab, dim)
        self.linear = nn.Linear(dim, vocab)
    def forward(self, x):
        return self.linear(self.embed(x).mean(dim=1))

class MiniStudent(nn.Module):
    """统一模型 (student)"""
    def __init__(self, vocab=1024, dim=128):
        super().__init__()
        self.embed = nn.Embedding(vocab, dim)
        self.linear = nn.Linear(dim, vocab)
    def forward(self, x):
        return self.linear(self.embed(x).mean(dim=1))


# 假设我们有 3 个领域专家
torch.manual_seed(0)
teachers = [MiniTeacher() for _ in range(3)]
student = MiniStudent()
opt = torch.optim.Adam(student.parameters(), lr=1e-3)

# on-policy 蒸馏
for step in range(100):
    # 1. 随机选一个领域 (在生产中由 prompt 类型决定)
    domain = torch.randint(0, 3, (1,)).item()
    teacher = teachers[domain]

    # 2. 生成 batch
    x = torch.randint(0, 1024, (32, 16))

    # 3. teacher 算 logits
    with torch.no_grad():
        teacher_logits = teacher(x)

    # 4. student 算 logits
    student_logits = student(x)

    # 5. KL 散度 loss
    loss = F.kl_div(
        F.log_softmax(student_logits, dim=-1),
        F.softmax(teacher_logits, dim=-1),
        reduction='batchmean'
    )

    opt.zero_grad()
    loss.backward()
    opt.step()

    if step % 20 == 0:
        print(f"Step {step}, domain {domain}: loss = {loss.item():.4f}")

跑通后会观察到:student 的输出分布逐步接近 3 个 teacher 的混合——这就是 on-policy 蒸馏的核心动力学。


18.9·补 后训练阶段的”质量墙”与”对齐墙”

V4 的两阶段后训练面对两堵”墙”——任何 LLM 后训练都要过:

质量墙:模型必须比 base 显著强

如果后训练后的模型在 benchmark 上没有显著提升,整个后训练阶段就是失败的——浪费几百万美元。V4 通过领域专家分别培养,让每个领域单独突破质量墙,再蒸馏融合。

突破质量墙的关键是数据质量 —— 100K 高质量样本胜过 10M 低质量样本。V4 团队大概率用了”R1 蒸馏 + 人工精修”组合——R1 生成大量推理过程,人工筛选最优的 1% 用作 SFT 数据。

对齐墙:模型必须符合人类偏好

模型有能力 ≠ 模型符合用户期望。对齐墙包括:

  • 拒绝有害请求(safety)
  • 输出格式与用户期望一致
  • 推理深度与任务匹配(Non-Think / Think High / Think Max 切换)
  • 风格一致性(不要前 100 token 客气、后 100 token 冷漠)

V4 通过 GRPO 在每个领域独立做对齐——比单阶段 RLHF 在多领域同时对齐更稳定。

两堵墙的同时突破:V4 的工程精妙之处在于质量提升 + 对齐改进可以并行——领域专家阶段同时优化”该领域能力” + “该领域对齐”。蒸馏阶段把多领域的”质量 + 对齐”统一融合到一个模型。这种设计让 V4 在多领域同时表现 SOTA。


18.9·补·补 后训练阶段的可观测性

后训练比预训练更难监控——loss 曲线不一定反映真实质量。V4 大概率用了一套多维度评估管道:

自动评估

  • 各领域 benchmark 自动跑(HumanEval / MATH / MMLU / RULER 长文等)
  • 每 epoch 跑一次,监控 score 趋势
  • pass@1 / pass@10 等多个指标对照

人工评估

  • Win rate vs base model(人工对比 100-1000 prompts)
  • 风格 / 安全 / 帮助度 三维度打分
  • 每周抽样监控

对比基线

  • 与 V3、Qwen3、Llama 4 等同类模型对比
  • 与 V4 base(未经后训练)对比 ——确认提升幅度

回归检测

  • 每个新版本与上一版做 A/B—— 不能新版在某些领域提升、其他领域回退
  • 用同一组 prompt 重复跑——检测随机性是否增加

生产监控(GA 后)

  • 用户实际 query 的输出质量分布
  • 拒答率、不确定性表达频率
  • 推理深度分布(Think Max 占比)

这套评估管道的工程量极大——比训练本身还耗工程师时间。这是大模型后训练的”隐性成本”——大多数学术 paper 不报告这部分,但工业部署必须。


18.10 延伸阅读

  • DeepSeek-R1 论文(arXiv:2501.12948):R1 路线的源头
  • DeepSeekMath 论文(arXiv:2402.03300):GRPO 的提出
  • Distilling the Knowledge in a Neural Network(arXiv:1503.02531):蒸馏的源头
  • Self-Play Fine-Tuning(arXiv:2401.01335):on-policy 蒸馏的早期理论
  • 本书《LLM 评估工程》第 6 章:训练-评估闭环的工程实践
  • 本书第 17 章:预训练阶段如何为后训练铺垫

18.10·补 V4 后训练 pipeline 的”复刻路线图”

如果你的团队想复刻 V4 的两阶段后训练(在自己的 base model 上),给一个具体的复刻路线图:

前置条件

  • 已有 base model(pretrained,能力达到 V4 base 的 50%+)
  • 至少 32 卡 GPU 集群(用于并行训练 5+ 领域专家)
  • 数据团队(每领域准备 100K+ 高质量样本)
  • 评估管道(每领域 benchmark 自动跑通)

步骤 1:定义领域分类(1-2 周)

不要从 5 个领域开始——从 2-3 个最重要的领域开始(典型:代码、数学、聊天)。每领域定义:

  • 训练数据来源
  • benchmark 集合
  • 期望提升幅度

步骤 2:领域专家培养(4-8 周 / 领域)

并行训练每个领域专家:

  • SFT 阶段:1-2 周,10-50K samples
  • RL/GRPO 阶段:2-4 周,多次迭代
  • 评估收敛 + 调参:1-2 周

每个专家的训练成本约是 base model 训练成本的 2-5%。

步骤 3:on-policy 蒸馏(2-4 周)

在所有领域专家完成后启动蒸馏:

  • 准备多领域混合 prompt 集
  • 配置 teacher routing(按 prompt 类型选 teacher)
  • 蒸馏到统一模型
  • 评估每领域 score 是否接近各自专家的 90%

步骤 4:综合评估 + 迭代(2-4 周)

  • 跑全部领域 benchmark
  • 与 base model + 其他模型对比
  • 如果某领域回退,回到步骤 2 重新培养该领域专家
  • 直到综合 score 达标

总时间:3-6 个月。总成本:base model 训练成本的 15-30%。

这条路线图对中等规模团队可行——但需要严格的工程纪律。任何环节松懈(如评估不严格、领域定义模糊),最终模型会出现”训练时看起来好、生产时退化”的尴尬。


18.10·补·补 “领域专家培养 → 蒸馏” 路径的几个失败模式

V4 的两阶段路径已经被证明可行——但任何团队尝试复刻时会遇到几个典型失败模式。把这些失败模式列出来作为警示:

失败模式 1:领域分得过细

某些团队为了”全面覆盖”分了 20+ 领域专家——结果蒸馏阶段无法收敛(teacher 太多、知识冲突)。V4 仅 5 个领域专家是经验值——10 个是上限,超过反而效果下降。

失败模式 2:领域定义有重叠

如果”代码专家”和”数学专家”都涵盖了”算法题”——这部分数据被两个 teacher 同时影响,蒸馏阶段 student 不知道该听谁的。领域定义必须接近正交,重叠 < 10%。

失败模式 3:蒸馏数据分布不均

如果蒸馏阶段的 prompt 90% 是聊天、10% 是代码——shared 蒸馏后的 student 在代码上明显弱于代码专家。蒸馏数据必须镜像目标用户分布——而非任意 sample。

失败模式 4:评估闭环失效

如果某领域 benchmark 不严格——专家训练时”看起来 score 涨了”实际质量没变。蒸馏后 student 在该领域显著退化。每领域必须有可信 benchmark + hold-out 测试。

失败模式 5:忽略领域间负迁移

某些技巧在领域 A 上有效,对领域 B 反而有害。比如”长 thinking” 在数学上加分,在简单聊天上反而让用户烦躁。蒸馏阶段必须监控所有领域的综合表现,不能只盯主要领域。

失败模式 6:训练时间分配错误

每个领域专家训练时间应该按”该领域的难度 / 重要性” 分配。如果”聊天”训了 4 周但”数学”只训了 1 周——蒸馏后数学能力会拖后腿。V4 大概率给”难领域 / 重要领域” 更多训练步数。

这 6 个失败模式都来自工程实践——任何想复刻 V4 后训练 pipeline 的团队都应该提前规避。


18.11 本章小结

  • V4 用两阶段后训练:领域专家培养 + on-policy 蒸馏
  • 阶段一:从同一 base 出发,训练 5+ 领域专家(SFT + GRPO)
  • 阶段二:用 on-policy 蒸馏把领域专家融合到统一模型
  • GRPO 取代 PPO——简单、低成本、无 critic
  • on-policy 蒸馏让 student 在自己分布上学——避免 teacher 数据偏离
  • V4 架构(hash routing / MTP / 稀疏 attention / 混合精度)专门为后训练阶段的稳定性设计
  • 与传统单阶段 SFT + RLHF 相比,V4 多领域同时表现优秀的关键在两阶段拆分

第 19 章:把 V4 部署到生产——vLLM / SGLang / TensorRT-LLM 的工程接缝。

评论 0