模型权重已发布:conanfans/Qwen3.8-0.8B-Distill(ModelScope · 约 1.4GB bf16)
本模型是 Qwen3.5-0.8B 的推理蒸馏版本——将 Qwen3.8-Max 的推理能力全参数蒸馏至 Qwen3.5-0.8B 架构(该系列中最小尺寸的成员),基于 qwen3.8-max-distillation-50k 的 5 万条高质量推理轨迹数据进行 SFT,验证大模型推理蒸馏配方在更小参数量模型上的普适性与增益效果。
具体设定:
<think> 推理段;实验目标并非刷单一榜单,而是验证一个判断:推理蒸馏的核心,是让模型学"推理过程",而不是单纯背答案。
| 基准 | 基线 Qwen3.5-0.8B | 蒸馏后 (seq4096) | 提升 |
|---|---|---|---|
| GSM8K(CoT, 4-shot, 1319 题) | 49.28% | 56.56% | +7.28pp |
| MMLU(CoT, 5-shot, 14042 题) | 49.34% | 49.82% | +0.48pp |
| MMLU macro | 50.70% | 50.93% | +0.23pp |
MMLU 分域成绩(seq4096 版):STEM 58.48%、社科 54.53%、其他 48.86%、人文 41.85%。
横向参考,此前 2B 模型的蒸馏结果:
| 任务 | Qwen3.5-2B (基础) | Qwen3.8-2B | Δ |
|---|---|---|---|
| MMLU (CoT, 57个科目) | 0.283 | 0.548 | +0.265 |
| GSM8K_cot | 0.330 | 0.640 | +0.310 |
三个值得注意的点:
qwen3.8-max-distillation-50k 的 train split 全量 44,796 条,以数学、代码、推理为主。84% 的样本带 <think> 推理段——学生模型学的不只是最终答案,还有中间推理路径。
用的不是传统 logits 蒸馏,而是大模型生成的完整推理轨迹做 SFT。学生模型在训练时看到的是"怎么一步步想出来"。直接结果:模型学会"按需调用"推理——简单题直答,复杂题分步推导,而不是无脑输出长思维链。
0.8B 参数量不大,全参 SFT 够得着。推理轨迹蒸馏要改的是模型整体的推理风格,全参微调的上限更高。核心策略:bf16 训练、8-bit AdamW、梯度检查点、bs1 × 梯度累积 32、动态 padding。
Qwen3.5-0.8B 是门控 DeltaNet 混合架构,部分转换层依赖 flash-linear-attention 的 triton 内核。训练日志里要关注内核加载情况——快速内核没生效,训练会明显变慢,不能只看 loss。
序列长度从 3072 扩展到 4096,截断率从 2.83% 降到 1.70%,这是本次实验最关键的改进。长样本的"答案收尾"包含关键结论推导,被截断学生模型就学不到完整推理链的收尾逻辑。seq4096 带来 GSM8K 额外 +1.06pp。
EvalScope 1.x 移除了 --parallel,改用 --eval-batch-size 32,吞吐从 1.4 it/s 提升到 6.6 it/s。这类细节不影响模型效果,但影响迭代效率。
temperature=0 抽了三道题(seq4096 版):
行为分化明显:简单题直答,复杂题分步推理。对 0.8B 这个体量来说,这种克制比单纯涨点更有价值。抽查三题依旧全对。
核心公式:bf16 + 8bit 优化器 + 梯度检查点 + bs1 × 梯度累积 + 序列长度优先。模型权重约 1.4GB(bf16),消费级单卡约 7.5 小时即可完成训练。推荐采用 seq4096 版本为最终模型。
0.8B 小模型也能吃到推理蒸馏红利。推理蒸馏的关键不是让学生模型背答案,而是让它学推理过程:数据里 math / code / reasoning 占比高,数学推理就涨得最多;知识类内容少,MMLU 涨幅就有限。把序列长度拉到 4096、截断率压到 1.70%,让长样本的答案收尾被完整监督,能进一步放大数学推理上的提升。
下一步拉高 MMLU 的方向:往蒸馏数据里掺知识密集型语料,而不是继续加推理轨迹。