一、DistillKit 是什么¶
DistillKit 是 Arcee.AI 开源的大模型蒸馏工具包,目标是让研究和工程团队更容易实践多种蒸馏方法。
它支持的主要方向包括:
- 基于 logits 的蒸馏;
- 基于隐藏状态的蒸馏。
前者更接近经典响应蒸馏,后者更接近特征蒸馏。
二、示例任务与环境¶
这份实操的设定是:
- 教师模型:
Qwen3-8B - 学生模型:
Qwen3-0.6B - 环境:AutoDL,32G 显存,CUDA 12.8
三、安装 DistillKit¶
3.1 克隆源码¶
git clone https://github.com/arcee-ai/DistillKit.git
3.2 安装¶
cd DistillKit
./setup.sh
四、准备教师模型、学生模型和数据集¶
4.1 下载模型¶
pip install modelscope
modelscope download --model Qwen/Qwen3-8B --local_dir /models/Qwen3-8B
modelscope download --model Qwen/Qwen3-0.6B --local_dir /models/Qwen3-0.6B
4.2 准备数据集¶
示例里使用的数据集是:
FineTome-100k
你可以从 Hugging Face 或镜像站下载,然后把文件放到本地目录中,例如:
mkdir -p FineTome-100k/data
mv train-00000-of-00001.parquet FineTome-100k/data/
五、修改蒸馏配置¶
如果使用基于 logits 的蒸馏,需要修改 distil_logits.py 中的配置。
关键部分包括:
- 数据集路径;
- 教师模型路径;
- 学生模型路径;
- tokenizer 最大长度;
- 输出目录;
- 训练轮次;
- batch size;
- 学习率;
- 温度参数;
- 蒸馏权重系数。
例如:
teacher = /models/Qwen3-8Bstudent = /models/Qwen3-0.6Btemperature = 2.0alpha = 0.5
六、启动蒸馏¶
如果用的是 logits 蒸馏:
accelerate launch distil_logits.py
如果你要改成隐藏状态蒸馏,就切换到对应的脚本。
七、评估蒸馏后的模型¶
蒸馏完成后,不能只看训练是否跑完,还要实际做推理验证。
典型流程是:
- 加载蒸馏后的 checkpoint;
- 准备一组测试 Prompt;
- 生成结果并观察质量。
基本示例可以概括为:
- 加载
AutoModelForCausalLM - 加载
AutoTokenizer - 对多个 prompt 做生成评测
八、DistillKit 适合什么人¶
它更适合:
- 想自己掌控蒸馏流程的开发者;
- 想比较不同蒸馏方法的研究者;
- 需要在本地或云端做实验验证的小团队。
如果你只是想“先快速把蒸馏跑通”,托管平台会更省心;但如果你想理解蒸馏细节、反复做实验,DistillKit 这类开源工具就很有价值。
九、一个实用建议¶
蒸馏最难的地方通常不在“命令怎么写”,而在:
- 数据集是否足够代表业务分布;
- 教师与学生的能力差距是否合适;
- 蒸馏参数是否平衡;
- 评估是否真正覆盖目标场景。
把这几件事想清楚,蒸馏才不只是“跑过一个脚本”。