知识蒸馏的数据如何设计?
简化版
蒸馏数据要覆盖目标线上分布、能力边界和安全长尾,而不是简单堆教师生成文本。通常混合真实授权请求、人工金标、困难样本、通用回放与合成扩展;教师输出必须经过事实、格式、安全和去重过滤。
数据设计的关键是:先定义学生要保留的能力,再按任务、难度、语言、长度与风险分层;对学生已会的样本降权,对教师有优势且学生失败的样本增权。训练集与评测集按来源/去重簇隔离,防止教师生成模板泄漏造成虚高。
详细版
蒸馏样本可包含教师最终答案、Soft Logits、推理摘要、工具轨迹或偏好对,但是否使用取决于学生架构、接口和安全策略。
task spec -> source pool -> teacher generation
-> verification/filtering -> dedup & split
-> difficulty/capability balancing -> train snapshot
| 数据来源 | 价值 | 风险 |
|---|---|---|
| 真实请求 | 接近线上分布 | 隐私与长尾噪声 |
| 人工金标 | 高可信 | 成本高、规模小 |
| 教师合成 | 易扩规模与覆盖 | 教师错误和风格偏置 |
| 对抗/困难集 | 补能力边界 | 分布可能过重 |
| 通用回放 | 防遗忘 | 稀释目标任务 |
最终用真实留出集比较学生与教师的任务成功率、校准、安全、延迟和成本,而不是只看对教师答案的模仿相似度。
完整版教学
1. 数据设计从能力清单开始
先列出学生部署后必须完成的任务:问答、抽取、代码、工具调用、拒答或多语言等,并定义每项最低质量。
没有能力清单,合成数据会被易生成的任务支配,模型平均 Loss 下降却无法满足业务。
能力清单还应注明学生容量、上下文和工具限制:若目标小模型架构本身不支持视觉输入或超长上下文,继续合成这类样本只会浪费教师与训练预算,应改用路由或工具补偿。
2. 真实数据与合成数据怎么配
真实数据提供线上语言、意图与噪声,合成数据用于补充稀有任务、难度和格式。两者不是二选一。
真实数据必须授权、脱敏和租户隔离;合成数据记录教师、Prompt、采样参数和验证器版本,保证血缘可追溯。
3. 教师如何选择
教师应在目标能力上显著强于学生,并满足数据与许可证要求。不同任务可以用不同专家教师,不必由一个模型包办。
若多个教师答案冲突,可用规则、执行器、人审或 Judge 仲裁;不能把冲突样本同时作为确定性监督。
4. 为什么不能只采教师最终答案
最终答案适合序列级蒸馏;Soft Logits 提供类别间相对概率;工具轨迹提供动作监督;推理过程可能帮助复杂任务,但也可能冗长、错误或包含隐私。
| 信号 | 优点 | 限制 |
|---|---|---|
| 最终答案 | 易生成和训练 | 信息较硬 |
| Soft Logits | 保留暗知识 | 存储大、接口难 |
| 推理摘要 | 提供中间结构 | 教师过程未必可信 |
| 工具轨迹 | 可执行监督 | 需状态和权限校验 |
| 偏好对 | 表达相对质量 | 构造和标注复杂 |
根据学生训练目标选择,不为“信息更多”盲目保存全部内容。
5. Prompt 多样性如何构造
同一任务覆盖不同措辞、上下文顺序、格式和边界条件,避免学生只记教师模板。变量组合应来自任务 Schema 与真实分布。
模板扩增后做近重复检测;只替换实体却保留完全相同骨架,会让样本数膨胀但有效信息很少。
6. 难度怎样分层
可用学生基线 Loss、是否答错、教师—学生分歧、所需步骤和人工标签估计难度。课程学习先用清晰基础样本,再逐步增加困难与对抗样本。
priority(x) = teacher_quality(x)
× student_gap(x)
× business_weight(x)
学生完全不会且教师也不可靠的样本不应高权重训练。
7. 如何做能力差异采样
同时运行教师和学生,优先选择教师正确而学生失败的样本,这些样本具有较高边际价值。学生已稳定掌握的重复样本可降采样。
也要保留随机样本,避免主动学习只聚焦当前模型盲点,造成分布偏移和旧能力遗忘。
8. 教师输出如何验证
代码用编译/测试,数学用符号或数值检查,RAG 检查引用支持,JSON 用 Schema,工具调用在沙箱执行,事实型任务结合可信来源。
无法自动验证的样本按风险抽样人审。教师自评不能作为唯一质量保证,因为错误可能相关。
9. 安全数据怎么设计
覆盖应答、拒答和安全替代三类,不只收集有害请求。边界案例要让学生学会在合法教育、转换和执行意图间区分。
高风险合成内容存放在受控环境,标注员有安全保护;安全红线评测与训练数据隔离。
10. 数据配比如何控制
按任务、语言、长度、难度、风险和来源建立配额。大规模容易任务使用温度采样或上限,防止淹没小而关键任务。
p_i ∝ n_i^alpha, 0 < alpha < 1
alpha 小于 1 会削弱超大数据桶的支配,但具体值通过验证集选择。
11. 去重与泄漏如何防
对原始请求、教师输出和源文档做精确与语义去重;按去重簇、用户或源文档拆分 Train/Validation/Test。
教师可能复述公开基准答案,因此还要与评测题库做污染扫描。模板相似也可能泄漏解题结构。
12. 如何防学生继承教师缺陷
分析教师在语言、群体、任务和拒答上的偏差,混入独立金标与反例;对教师低置信或多教师分歧样本降权。
保留来源标签,以便训练后按来源做消融。如果移除某教师数据质量反而提升,应调整教师组合。
13. 训练迭代如何闭环
每轮训练后收集学生失败簇,判断是数据覆盖、容量还是优化问题,再定向补数据。不能每轮简单翻倍合成量。
数据快照不可变,记录生成与过滤流水线;线上反馈先进入隔离候选池,经授权和复核后再使用。
14. 如何评估数据方案
设置同规模消融:真实数据、纯合成、混合、困难采样和不同教师组合,比较质量—数据成本—训练成本。
评测既看平均任务分,也看长尾、安全、校准和教师之外的独立金标;上线再看实际成功率、延迟和人工接管。
蒸馏数据的价值不在于教师生成了多少,而在于每条样本是否提供学生尚未掌握且可信的能力信号。
15. 常见误区与追问
- 误区:教师越强,输出都能直接训练。 强模型仍会幻觉、偏置或格式失败。
- 误区:合成量越大越好。 重复模板会降低有效多样性。
- 误区:只采学生答错的样本。 会偏离真实分布并遗忘简单能力。
- 误区:推理过程一定比最终答案好。 过程可能冗长、错误或不可验证。
- 误区:验证集随机拆分即可。 近重复和同源样本会泄漏。
- 追问:如何控制教师成本? 先用学生差距/业务权重筛选,再调用昂贵教师。
- 追问:如何证明数据有效? 做同规模消融并在独立真实留出集验证。
16. 加强记忆
- 先列能力:任务、语言、长度、风险和最低标准。
- 再混来源:真实、金标、合成、困难、回放。
- 再选教师:按能力与许可,可多教师仲裁。
- 再验输出:执行器、引用、Schema 与人审。
- 再做采样:学生差距乘教师质量和业务权重。
- 再防污染:去重簇拆分、基准泄漏扫描。
- 最后做消融:真实留出集上比较质量与总成本。