模型蒸馏实操:从大模型到小模型的知识迁移
用 1B 甚至更小的模型跑出 70B 的效果,这本质上就是知识蒸馏(Knowledge Distillation)在干活。简单来说,就是让一个“老师”模型(Teacher LLM)生成高质量的数据集,然后用这些数据去喂给一个“学生”模型(Student LLM)。
下一篇
AI生成代码的“视觉欺骗”:别被能跑通的Demo给骗了 →
在实际部署小模型时,最容易踩坑的地方在于数据质量的筛选。如果你直接把大模型生成的 Raw Data 全盘喂给学生模型,很容易导致学生模型学到老师的“幻觉”,甚至出现严重的过拟合。
一个比较稳妥的实操工作流应该是这样的:
一、生成合成数据
利用 Claude 3.5 或 GPT-4o 针对特定任务生成大量的指令-回答对。
二、质量过滤(关键步)
不能直接训练,得用一个打分模型(Reward Model)或者用老师模型自己对生成的答案进行打分,剔除掉低分样本。
三、监督微调(SFT)
使用过滤后的纯净数据集对小模型进行训练。
# 典型的微调启动命令示例 (以 LLaMA-Factory 为例)
bash src/train_bash.sh \
--stage sft \
--model_name_or_path path/to/student_model \
--dataset distillation_dataset \
--template llama3 \
--finetuning_type lora \
--output_dir saved_models/distilled_llm \
--per_device_train_batch_size 4 \
--gradient_accumulation_steps 4 \
--learning_rate 5e-5 \
--num_train_epochs 3.0这种方案比从零训练(Pre-training)省钱得多,而且在特定垂直领域,蒸馏后的小模型推理速度快,部署成本极低,非常适合做 AI Agent 的底层端侧模型。