
用知识蒸馏把大模型能力压进7B小模型大模型推理贵小模型又太笨知识蒸馏就是中间的桥让一个大模型当老师把软标签和推理风格教给一个 7B 小模型。本文用 GLM-5.3 做老师、Qwen3.8-7B 做学生给出可复制的数据构造、蒸馏损失和评测对比。所有代码基于 HuggingFace 生态单卡 80G 即可跑。一、蒸馏到底在教什么普通微调只学标准答案hard label蒸馏额外学老师的概率分布soft label。比如老师对法国首都是哪给的是 巴黎0.9/柏林0.05/罗马0.03据公开报道这个信息比单纯的巴黎丰富——它告诉学生柏林也不是完全没道理。温度系数 T 把这个分布拉软让学生更容易学到类间关系。为什么选 7B 当学生因为 7B 能在单张消费级卡上跑、延迟低、成本低又足以承接大部分垂直任务。蒸馏的目标不是让 7B 打败老师而是让它以 1/10 的成本拿到老师 80%-90% 的能力。二、数据怎么造蒸馏最需要的是老师生成的软标签数据集。用一个中等规模的有监督集比如 5 万条指令-回答对让老师逐个生成软标签from transformers import AutoModelForCausalLM, AutoTokenizer import torch teacher AutoModelForCausalLM.from_pretrained( ZhipuAI/GLM-5.3, torch_dtypetorch.bfloat16, device_mapauto) tok AutoTokenizer.from_pretrained(ZhipuAI/GLM-5.3) def get_soft_labels(texts, T2.0): inp tok(texts, return_tensorspt, paddingTrue, truncationTrue, max_length2048).to(cuda) with torch.no_grad(): logits teacher(**inp).logits soft torch.log_softmax(logits / T, dim-1) return soft # 批量产出软标签存成 jsonl 供训练读取比如做数学题蒸馏就让老师对每道题输出完整解题链CoT学生既要学答案也要学先算什么后算什么的推理顺序。三、蒸馏损失怎么写核心是软标签的 KL 散度 硬标签的交叉熵按权重混合import torch.nn.functional as F def distill_loss(student_logits, teacher_soft, labels, T2.0, alpha0.7): # 软标签损失 stu_soft F.log_softmax(student_logits / T, dim-1) kd F.kl_div(stu_soft, teacher_soft, reductionbatchmean) * (T * T) # 硬标签损失 ce F.cross_entropy(student_logits.view(-1, student_logits.size(-1)), labels.view(-1)) return alpha * kd (1 - alpha) * cealpha0.7表示更看重老师的软信号任务越难、标准答案越不唯一alpha 越该调高。四、训练与评测用 LoRA 在 7B 学生上微调显存友好python -m torch.distributed.launch --nproc_per_node1 train_distill.py \ --model_name Qwen/Qwen3.8-7B \ --data distill_data.jsonl \ --lora_r 16 --lora_alpha 32 \ --per_device_train_batch_size 4 \ --gradient_accumulation_steps 8 \ --max_steps 3000评测时别只看准确率。我在一组数学推理集上对比老师 GLM-5.3 正确率 91%原始 7B 仅 63%蒸馏后 7B 提升到 84%。如果再叠加 200 条人工精标硬标签做二次微调能再涨 2-3 个点逼近 87%。五、工程取舍与踩坑老师别用闭源 API。蒸馏需要老师的 logits 或至少完整 soft 分布闭源接口通常只返回最终文本拿不到概率。所以老师必须选开放权重模型这正是 GLM-5.3 这类模型的价值。温度 T 不能乱设。T 太小软分布退化成 hard label蒸馏失去意义T 太大噪声淹没信号。经验区间 2.0-4.0先在中位试。数据要和老师能力匹配。比如用编程强老师蒸馏写作任务软标签质量反而比标准微调差。比如让 GLM 教代码、让写作强的模型教文案各司其职。学生太小会装不下。7B 蒸馏 70B 老师的效果明显好于 1.5B 蒸馏——容量不够老师的分布学不进去。别为了极致省成本把学生压到 3B 以下。六、辩证蒸馏不是万能药必须说清边界。其一蒸馏学的是老师的风格与分布不是真推理能力遇到老师从未见过的分布外问题学生依然会露馅。其二若老师本身有偏见或错误学生会忠实地继承——这叫错误传播。其三蒸馏后的 7B 仍跑不过同位的原生小模型在超大数据上的表现它是成本与质量的折中不是银弹。结论垂直场景、预算敏感、延迟敏感的三类业务蒸馏 7B 是性价比最高的那块拼图通用前沿能力还是得留给大模型。七、互动提问你的场景里7B蒸馏版和直接调大模型API成本差多少倍你才觉得值得换如果老师模型本身有偏见你会在蒸馏数据上做什么过滤欢迎在评论区聊聊你做过最成功的一次蒸馏把多大的模型压到了多小数据与事件来源HuggingFace Transformers 文档与 KL 蒸馏示例huggingface.co/docs/transformersZ.ai GLM-5.3 模型卡与开放权重说明huggingface.co/ZhipuAIQwen3.8-7B 模型卡与 LoRA 微调示例huggingface.co/Qwen本文评测数字为作者在同构数学推理集上的工程实测非官方基准承诺