从DeepSeek-R1-Distill中学习蒸馏技术

前言:deepseek中蒸馏主要通过强的teacher模型构建高质量推理数据集对参数模型进行SFT,随后再加上DPO加强模型偏好,约束模型输出格式,最后可以通过RL加强模型推理能力。


目录

结论

[1. 先区分三个概念](#1. 先区分三个概念)

[2. DeepSeek-R1 的整体后训练流程](#2. DeepSeek-R1 的整体后训练流程)

[3. DeepSeek 蒸馏到底蒸了什么?](#3. DeepSeek 蒸馏到底蒸了什么?)

[不是蒸 teacher 的参数](#不是蒸 teacher 的参数)

[也不是经典 logits 蒸馏](#也不是经典 logits 蒸馏)

[4. DeepSeek-R1-Distill-Qwen-7B 的过程可以简化成这样](#4. DeepSeek-R1-Distill-Qwen-7B 的过程可以简化成这样)

[5. 你应该从哪个版本学习?](#5. 你应该从哪个版本学习?)

[推荐方案:先复现"小规模 SFT 蒸馏"](#推荐方案:先复现“小规模 SFT 蒸馏”)

[备选方案:小规模 GRPO 复现 R1-Zero 思路](#备选方案:小规模 GRPO 复现 R1-Zero 思路)

[6. 一个工程可落地的学习路线](#6. 一个工程可落地的学习路线)

[阶段 1:理解 SFT 蒸馏](#阶段 1:理解 SFT 蒸馏)

[阶段 2:做 rejection sampling](#阶段 2:做 rejection sampling)

[阶段 3:加入 non-reasoning 数据](#阶段 3:加入 non-reasoning 数据)

[阶段 4:再考虑 DPO / GRPO](#阶段 4:再考虑 DPO / GRPO)

[7. 最小实验设计](#7. 最小实验设计)

实验目标

数据构造

训练配置参考

[8. 你要重点观察什么?](#8. 你要重点观察什么?)

[9. 推荐学习路径](#9. 推荐学习路径)

推荐方案

备选方案

[10. 一个关键判断](#10. 一个关键判断)


结论

学习 DeepSeek 蒸馏模型,最适合从"离线 SFT 蒸馏"入手,而不是一上来复现完整 RL/GRPO。

DeepSeek-R1-Distill 系列的核心不是"把 671B 模型压缩成 7B",而是:

用强 teacher 模型 DeepSeek-R1 生成高质量推理样本,再用这些样本对 Qwen / Llama 等开源 base model 做 SFT。

这本质上是 sequence-level distillation / response distillation ,不是传统意义上拿 teacher logits 做 KL 蒸馏。DeepSeek 官方论文明确写到:蒸馏模型只使用 SFT ,没有加入 RL 阶段;训练数据约 80 万条,由 DeepSeek-R1 生成。(arXiv)


1. 先区分三个概念

概念 DeepSeek 中对应什么 你学习时应该怎么理解
SFT 用问答样本训练模型模仿目标输出 最基础、最省事、最适合先做
RL / GRPO R1-Zero、R1 的核心强化学习阶段 用 reward 逼模型自己探索更好的推理策略
Distillation R1-Distill-Qwen / Llama 系列 用 R1 生成样本,然后小模型做 SFT

DeepSeek-R1-Zero 是直接在 DeepSeek-V3-Base 上做大规模 RL,没有先做 SFT;它出现了自我验证、反思、长 CoT 等行为,但也有可读性差、语言混杂、重复等问题。(GitHub)

DeepSeek-R1 则加入了 cold-start SFT、两阶段 RL、rejection sampling、再次 SFT 等流程,用来改善可读性、泛化能力和人类偏好对齐。(arXiv)

DeepSeek-R1-Distill 系列则更简单:用 DeepSeek-R1 生成的样本去微调 Qwen2.5 / Llama3 系列 base model。(GitHub)


2. DeepSeek-R1 的整体后训练流程

可以把它拆成两条线:

复制代码
路线 A:训练大 teacher
DeepSeek-V3-Base
  → RL,无 SFT,得到 R1-Zero
  → cold-start SFT
  → 第一阶段 RL,增强推理与语言一致性
  → rejection sampling
  → 第二阶段 SFT,混合 reasoning + non-reasoning 数据
  → 第二阶段 RL,对齐 helpfulness / harmlessness
  → DeepSeek-R1

路线 B:蒸馏小 student
DeepSeek-R1
  → 生成高质量 reasoning / general 数据
  → 清洗、过滤、保留正确答案
  → SFT 微调 Qwen / Llama base model
  → DeepSeek-R1-Distill-Qwen / Llama

DeepSeek 论文里的多阶段 pipeline 正是这个结构:先通过 RL 得到 R1-Zero,再通过 cold-start、RL、SFT、二阶段 RL 得到 R1,最后用 R1 的输出蒸馏小模型。(arXiv)


3. DeepSeek 蒸馏到底蒸了什么?

不是蒸 teacher 的参数

student 不会直接获得 DeepSeek-R1 的内部权重,也不是复制 hidden states。

也不是经典 logits 蒸馏

经典知识蒸馏通常是:

复制代码
teacher logits → soft label → student 用 KL loss 学分布

但 DeepSeek-R1-Distill 更接近:

复制代码
prompt
  → teacher 生成长推理轨迹 + 最终答案
  → 过滤正确样本
  → student 用 SFT 学完整输出

所以它蒸的是:

蒸馏对象 含义
推理格式 <think>...</think> 或类似长思考结构
解题路径 多步推导、反思、验证、纠错
答案表达 最终答案的格式和解释方式
任务分布 数学、代码、STEM、逻辑、通用问答等样本覆盖
teacher 行为风格 更长的 reasoning、更强的 self-check、更谨慎的输出习惯

DeepSeek 的 80 万 SFT 数据中,大约 60 万是 reasoning-related 样本,约 20 万是 non-reasoning 样本;数据覆盖数学、代码、STEM、逻辑、通用任务等领域。(arXiv)


4. DeepSeek-R1-Distill-Qwen-7B 的过程可以简化成这样

DeepSeek-R1-Distill-Qwen-7B 为例:

复制代码
Base model:
Qwen2.5-Math-7B

Teacher:
DeepSeek-R1

Training data:
约 800k teacher-generated samples

Training method:
SFT only

训练超参:
2--3 epochs
max context length = 32768
batch size = 64
initial lr for Qwen-7B = 8e-5
cosine decay 到初始 lr 的 1/10

这些超参数来自 DeepSeek-R1 论文附录 B.4.3;官方列出的 Qwen-7B 蒸馏 base model 是 Qwen2.5-Math-7B,初始学习率为 8e-5。(arXiv)


5. 你应该从哪个版本学习?

推荐方案:先复现"小规模 SFT 蒸馏"

适合你现在学习后训练体系。

复制代码
Teacher:
DeepSeek-R1 / DeepSeek-R1-Distill-32B / GPT-4.1 / Qwen3-235B 等强模型

Student:
Qwen2.5-7B / Qwen3-8B / DeepSeek-R1-Distill-Qwen-7B 二次微调

数据规模:
先做 1k → 5k → 20k,不要一开始搞 800k

训练方式:
LoRA / QLoRA SFT

工具:
LLaMA-Factory 或 TRL SFTTrainer

原因很直接:蒸馏的工程闭环最短 ,可以快速理解数据构造、模板、loss、评估、过拟合、泛化这些后训练核心问题。TRL 官方文档也把 SFT 作为最常用、最直接的后训练方式之一,SFTTrainer 支持 conversational / prompt-completion 等数据格式。(Hugging Face)


备选方案:小规模 GRPO 复现 R1-Zero 思路

适合你已经跑通 SFT 蒸馏之后。

复制代码
Base:
Qwen2.5-0.5B / 1.5B / 3B

任务:
数学、代码、可验证 QA

Reward:
答案正确性 reward + 格式 reward

训练:
TRL GRPOTrainer

风险:
慢、吃显存、reward 设计难、容易 reward hacking

TRL 已经支持 GRPOTrainer,并且支持自定义 reward function;官方示例里也展示了用准确率 reward 训练数学任务的流程。(Hugging Face)

但 DeepSeek 论文也指出,小模型直接靠大规模 RL 未必能超过从强 teacher 蒸馏;他们的实验中,DeepSeek-R1-Distill-Qwen-32B 明显优于直接对 Qwen2.5-32B-Base 做大规模 RL 得到的 Qwen2.5-32B-Zero。(arXiv)


6. 一个工程可落地的学习路线

阶段 1:理解 SFT 蒸馏

目标:让 7B 模型学会 teacher 的推理格式和答案风格。

数据格式建议:

复制代码
{
  "messages": [
    {
      "role": "user",
      "content": "题目或任务"
    },
    {
      "role": "assistant",
      "content": "<think>推理过程</think>\n最终答案"
    }
  ],
  "domain": "math",
  "source": "teacher_generated",
  "teacher_model": "deepseek-r1",
  "quality_score": 0.92
}

关键字段说明:

字段 作用
messages 训练主字段,适配 chat template
domain 方便后续做分领域评估,比如 math/code/general
source 区分 teacher-generated、人类数据、真实业务数据
teacher_model 记录 teacher 来源,便于追踪质量
quality_score 可选,用于过滤低质量样本

训练本质是 token-level cross entropy:模型根据前文预测 assistant 输出。TRL 文档里明确 SFT 的目标是最小化目标序列的 negative log-likelihood,也就是常见的 next-token 交叉熵。(Hugging Face)


阶段 2:做 rejection sampling

不要让 teacher 生成一次就直接训练。成熟做法是:

复制代码
同一个 prompt 生成 N 个答案
  → 用规则 / judge / 单元测试筛选
  → 保留正确、清晰、格式合格的答案
  → 加入 SFT 数据

DeepSeek-R1 的 800K supervised data 就使用了 rejection sampling:对每个 prompt 采样多个响应,只保留正确的;同时过滤语言混杂、长段落混乱、代码块异常等 CoT。(arXiv)


阶段 3:加入 non-reasoning 数据

只训数学/代码长 CoT 会有副作用:

复制代码
模型可能所有问题都长篇思考
普通问答变啰嗦
闲聊/写作能力退化
安全边界变差
多轮对话能力弱

DeepSeek 的 supervised 数据里除了 reasoning 样本,也加入了写作、事实问答、自我认知、翻译、软件工程、前端开发等 non-reasoning 数据;论文也指出这批数据大多是单轮,这可能限制多轮对话能力。(arXiv)

你的工程实践里,建议数据比例先这样设:

复制代码
reasoning 数据:60%--70%
general instruction 数据:20%--30%
安全/拒答/边界数据:5%--10%
多轮对话数据:5%--10%

阶段 4:再考虑 DPO / GRPO

不要一开始就上 RL。

更合理顺序:

复制代码
SFT 蒸馏
  → eval
  → 错误样本分析
  → 补数据
  → 再 SFT
  → DPO / ORPO 调偏好
  → 小规模 GRPO 做可验证任务

原因是 RL 的难点不在代码,而在 reward:

问题 风险
reward 设计不稳 模型学会钻规则漏洞
judge model 有偏 模型优化 judge 喜欢的格式,而不是正确性
rollout 成本高 每个 prompt 要采样多个 completion
长 CoT 成本高 显存、吞吐、训练时间都上升
小模型基础能力弱 容易重复、崩格式、答非所问

DeepSeek 论文也提到 reward hacking:模型可能利用 reward model 的偏差获得高分,但不符合真实人类偏好。(arXiv)


7. 最小实验设计

你可以这样做一个真正能学到东西的小实验。

实验目标

训练一个小型 reasoning distillation model:

复制代码
Base: Qwen2.5-1.5B-Instruct 或 Qwen2.5-3B
Teacher: DeepSeek-R1 / DeepSeek-R1-Distill-Qwen-32B
数据: 3000--10000 条
方法: LoRA SFT
评估: GSM8K / MATH 子集 / 自建代码题 / 中文推理题

数据构造

复制代码
1000 math
1000 code
1000 general reasoning
1000 normal instruction
500 safety / refusal

每条数据做这些检查:

复制代码
1. final answer 是否正确
2. 是否出现中英混杂
3. 是否无限重复
4. 是否格式稳定
5. 是否过长
6. 是否有明显幻觉

训练配置参考

复制代码
stage: sft
model_name_or_path: Qwen/Qwen2.5-1.5B-Instruct
finetuning_type: lora
template: qwen
cutoff_len: 8192
learning_rate: 2.0e-5
num_train_epochs: 2
per_device_train_batch_size: 1
gradient_accumulation_steps: 16
lora_rank: 16
lora_alpha: 32
bf16: true

这里我不会建议你直接照 DeepSeek 的 32768 context + batch size 64,因为那是大规模训练设定。你学习阶段用 4k--8k context 更现实,先观察模型是否真的学到推理格式。


8. 你要重点观察什么?

不要只看 loss。

指标 说明
train loss 只能说明拟合程度,不能说明推理变强
eval accuracy 数学/代码题是否真的答对
format compliance 是否稳定输出指定格式
reasoning length 是否过短或过长
repetition rate 是否出现长 CoT 重复
general ability 普通问答是否退化
safety refusal 是否过拒答或不拒答

尤其要警惕一个假象:

模型会模仿"推理样子",但不一定真的推理正确。

所以 evaluation 必须看最终答案正确率,而不是只看回答是否像 R1。


9. 推荐学习路径

推荐方案

复制代码
先学 DeepSeek-R1-Distill 的 SFT 蒸馏路线

适用条件:

  • 你想快速理解后训练;

  • 你显存有限;

  • 你想训练 1.5B / 7B 模型;

  • 你希望流程可控、可复现。

核心收益:

复制代码
数据构造能力 > 训练脚本能力
过滤策略 > 模型结构修改
评估闭环 > 单次训练效果

备选方案

复制代码
SFT 蒸馏完成后,再用 GRPO 做可验证任务增强

适用条件:

  • 你有稳定的数学/代码题 reward;

  • 你能承担 rollout 成本;

  • 你已经有较好的 SFT checkpoint;

  • 你想学习 R1-Zero 式 RL。

trade-off:

复制代码
效果上限更高,但工程复杂度和失败概率明显更高。

10. 一个关键判断

DeepSeek 蒸馏模型最值得你学的不是"怎么把大模型变小",而是这套后训练思想:

复制代码
强 teacher 生成候选
→ 自动/半自动过滤
→ 构造高质量 SFT 数据
→ 小模型模仿
→ 评估错误
→ 补充难例
→ 必要时再做 preference / RL

这也是现阶段个人和小团队最现实的后训练路线。完整复现 DeepSeek-R1 的大规模 RL 成本很高;但复现一个小规模 R1-style distillation pipeline,是完全可落地的。

相关推荐
MacroZheng4 小时前
这款DeepSeek V4终端编程神器,在GitHub上火了!
人工智能·后端·deepseek
YDS8296 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— 集成ELK日志管理系统和Prometheus监控系统
java·elk·ai·springboot·agent·prometheus·deepseek
Python私教14 小时前
Cursor + Claude Code 全流程实战:搭一套生产级 AI 编程工作流(2026 最新版)
人工智能·语言模型·qwen·ollama·本地大模型·大模型部署·deepseek
Oliver洛20 小时前
《Windows + Clash 环境下 Codex CLI 接入 DeepSeek V4 Pro 完整踩坑记录》
deepseek
winfredzhang1 天前
用 Python + wxPython 做一个个人健康饮食管理工具:从记录三餐到综合生活建议
python·wxpython·deepseek·生活习惯管理
AI导出鸭PC端1 天前
智谱清言怎样生成word文档——AI导出鸭助您一键转文档
人工智能·ai·word·豆包·deepseek·ai导出鸭
沉默王二1 天前
不用 GPT-Image2,DeepSeek V4/GLM-5.1 + draw.io 就很顶!
gpt·ai编程·deepseek
DS随心转插件1 天前
DeepSeek 代码手机端导出与 AI 辅助方案实测
android·人工智能·chatgpt·智能手机·deepseek·ai导出鸭