模型蒸馏2026:用真实工具从大模型训练小模型

📘 教程 2026-08-11 · 更新于 2026-10-21 约 7 分钟阅读

70B的教师模型能带出7B的学生模型,还保留大部分质量——这就是蒸馏,也是各家推出廉价模型的常见做法。开源工具怎么落地,数据、超参、失败模式各是什么,这篇讲完整流程。

📜 目录

模型蒸馏2026:用真实工具从大模型训练小模型

70B的教师模型能带出7B的学生模型,还保留大部分质量——这就是蒸馏,也是各家推出廉价模型的常见做法。开源工具怎么落地,这篇按"原理→数据→训练→评测"走一遍。

一、蒸馏到底在学什么

三种层次,效果和成本递增:

类型 学生学到什么 数据形态 成本
响应蒸馏 教师的最终答案 提示+答案 低,最常见
推理链蒸馏 教师的中间推理步骤 提示+推理过程+答案 中
分布蒸馏 教师的token概率分布 需要logits 高,需能导出logits的教师

多数团队只需要前两种。第三种要拿教师的完整概率分布,闭源API做不到,本地部署教师才行。

一句实话:蒸馏不是把大模型"压缩",是让学生模仿教师在你这类任务上的行为。教师不会的东西,学生也学不会。

二、离线还是在线

方式 做法 优点 缺点
离线 教师先跑完整数据集,把输出存成文件,学生离线训练 便宜、可复现、可反复过滤 学生看不到教师对新样本的反应
在线 训练过程中教师实时打分 对齐更细 教师推理成本随训练步数线性上涨

先离线跑通,觉得效果不够再考虑在线。绝大多数场景离线足够。

三、六步走完一次蒸馏

第1步:收提示。 从真实业务日志里抽1000-10000条,覆盖你的任务类型。别用公开数据集凑数,分布不对等于白训。

第2步:教师生成。 用最强模型批量跑,要求输出推理过程("先分析再给结论"),存成 jsonl:

{"messages":[{"role":"user","content":"提示词"},{"role":"assistant","content":"推理过程 + 最终答案"}]}

第3步:过滤。 这是收益最高的一步。规则过滤(长度异常、格式不合、拒答、重复)+ 模型打分过滤(用另一个模型给答案打1-5分,只留4分以上)。留一半数据、质量翻倍,通常比多训三个epoch有用。

第4步:SFT训练。 用 LoRA 起步,别一上来全量微调:

from datasets import load_dataset
from trl import SFTTrainer, SFTConfig

ds = load_dataset("json", data_files="distill.jsonl", split="train")

trainer = SFTTrainer(
    model="Qwen/Qwen2.5-7B-Instruct",
    train_dataset=ds,
    args=SFTConfig(
        output_dir="student",
        num_train_epochs=2,
        learning_rate=2e-4,
        per_device_train_batch_size=2,
        gradient_accumulation_steps=8,
        max_length=4096,
    ),
)
trainer.train()

接口在各版本间会变,以 TRL 当前文档为准。显存不够就用 Unsloth 或 4bit 量化加载。

第5步:评测。 留出200-500条教师没见过、你也没调过参的样本,同时跑教师、学生、原版基座三方对比。看三件事:任务准确率、格式合规率、平均输出长度(学生常常学会废话)。

第6步:迭代。 大部分问题不是训练不够,是数据不对:某类任务学生总错,就针对这类补200条教师样本重训。

四、关键超参怎么定

参数 建议起点 说明
数据量 1000-10000条 质量优先于数量,先小后大
epoch 1-3 过拟合在SFT里很常见
学习率 1e-4 ~ 2e-4(LoRA) 全量微调要低一个数量级
LoRA rank 16-64 任务越偏离基座,rank越大
max_length 覆盖95%样本的长度 截断会悄悄丢掉答案
batch 显存能塞多少塞多少 配合梯度累积凑有效批量

五、四个常见失败模式

  1. 不过滤就训练:学生把教师的幻觉、格式错误、废话一起学走。过滤是最高杠杆的一步。
  2. 容量错配:任务需要多步推理,却选了1.5B学生,怎么训都差一截。先确认任务复杂度与学生规模匹配。
  3. 只学答案不学过程:教师答案对,但学生学不到推理路径,换个问法就崩。要求教师输出推理过程。
  4. 评测集泄漏:评测样本混进了训练数据,指标虚高,上线即翻车。划分要按来源而不是随机切。

六、什么时候不值得蒸馏

场景 更合适的做法 原因
调用量小、任务稳定 直接调API 蒸馏要数据工程和训练成本,回不了本
知识每天变 RAG 蒸馏固化的是行为,不是知识,更新要重训
必须给出来源引用 RAG 学生模型无法凭空保持可追溯的引用
数据不能出内网 蒸馏 这是蒸馏最强的场景,教师也可以在本地
高并发 + 固定任务 蒸馏 单次成本能降一到两个数量级

一句话:蒸馏买的是"固定任务上的成本下降",不是"能力提升"。任务还在变的时候做蒸馏,等于给流沙浇水泥。

七、常见问题

Q:蒸馏和微调什么关系? A:蒸馏是"数据从哪来"的问题,微调是"怎么训"的问题。蒸馏通常用SFT实现。

Q:学生能超过教师吗? A:在窄任务上可能,因为学生只专注一个分布。通用能力上不会。

Q:需要多少显存? A:7B模型 LoRA + 4bit,单张消费级大显存卡可跑;全量微调要专业卡。先从LoRA开始。

Q:能蒸馏闭源模型吗? A:技术上可以拿它的输出做数据,但要先看服务条款是否允许用输出去训练竞争模型,这块各家规定不同。

注:框架接口与显存需求随版本变化,具体以 TRL、Unsloth、PEFT 官方文档为准。

相关文章

延伸阅读 · 含推广链接

API 账单分散在几家平台时,续费和管理都费神。合到一个账号下,成本和额度一眼看得清。

合并到一个账号 →

相关文章
2026-07-19
AI测试框架:怎么保证LLM应用质量
2026-08-05
2026年AI Telegram机器人:python-telegram-bot(2.9万星)对比 aiogram 与 grammY,15分钟搭好大模型机器人
2026-07-22
2026年本地TTS语音克隆
2026-10-19
2026斯德哥尔摩AI工资软件怎么选:集体协议、AGI申报与AI做不了的事
2026-07-22
2026年QLoRA微调指南
2026-07-22
2026年私人AI助手:离线ChatGPT替代方案

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论