工业级 LLM 数据蒸馏:从“数据生成”到“任务工程”
上一篇简单跑通了基础数据合成、数据分类、难度标签、人工介入处理。为了进一步探索高质量数据合成整理了一些制作策略。在当前的 LLM 研发中业内共识已发生根本性转变数据质量远比模型结构重要。简单的“人工标注”或“让大模型大量生成QA”已不再是主流真正的核心壁垒在于如何通过任务工程Task Engineering构建出高质量、高熵、高覆盖的数据集。一、 核心思维转变从“生成答案”到“定义任务”数据蒸馏的难点不在于“让大模型生成数据”而在于如何避免模型生成“模式坍塌”的垃圾数据。核心策略是从单纯的“生成答案”转向“生成高价值任务Situation/Task”。二、 详解 Self-Instruct如何构建任务扩展引擎Self-Instruct 是数据蒸馏最经典的方法但其工业级应用已远超早期的简单调用。核心思想利用强模型Teacher基于少量“种子任务Seed Tasks”进行递归扩展通过自主生成更多同质或进阶的任务解决数据规模扩展问题。工业级进化版流程输入 100~300 条高质量、高信息密度的真实工程种子任务。扩展Expansion 模型不仅生成问答还需根据预设的“能力树”进行任务分布扩展。变异Mutation 引入 Constraint Expansion约束扩展。例如种子任务是“如何优化 vLLM吞吐”Self-Instruct 引擎会主动在 prompt 中加入“在 GPU 显存受限、长文档场景、多租户并发、中Embedding 漂移” 等约束条件。产出 形成涵盖不同知识领域、不同推理逻辑的数万条多样化任务。三、 难度控制构建科学的“梯度学习”体系很多蒸馏项目失败的原因是全是中低难度样本导致模型上限受限。三层难度划分简单30% 考察概念理解、基础 API 调用。中等50% 考察多步推理、基础系统架构设计。高难20% 这是模型能力上限的拉升点。高难样本通常包含多步骤推理、目标冲突既要低延迟又要高准确、真实工程失败案例分析。动态难度校准Difficulty Scoring 业内先进团队会训练一个专门的 difficulty model 对生成数据进行打分。小模型反向挖错在训练初期用小模型Student在验证集上进行预测将小模型“做错”且“经过人工筛选的高价值样本”作为后续蒸馏的重点从而实现针对性的难度补强。四、 数据多样性与防坍塌策略当模型在同一个 prompt 模板下大量生成数据时会导致模型语气、结构和推理逻辑趋同模式坍塌。确保多样性的实战方案多 Teacher 混合生成 不要只用一个模型如 GPT-4。混合使用 Claude, Gemini, Qwen, DeepSeek等不同家族的模型进行生成利用模型间的偏好差异打破模板化特征。Temperature Diversification 对同一任务设置不同的 temperature 参数增加生成的随机性和覆盖范围。风格扰动Persona-driven 强制 Teacher 扮演不同角色进行生成如“以 debug专家口吻”、“以代码审查者口吻”、“以论坛用户口吻”等。这能显著增加数据的熵值Entropy。加入真实数据 真实用户数据与合成数据混合通常比例为 1:N是业内最强训练集的黄金准则真实数据作为“锚点”防止合成数据偏离生产环境。五、 工业级流水线总结从“随机生成”到“严控生产”构建一个成熟的蒸馏流水线后半段的加工环节往往比生成环节更关键能力树定义 构建覆盖检索、推理、Agent、系统优化等维度的正交能力树。种子数据 收集高密度工程案例确保每条种子都包含真实约束与 Tradeoff。任务生成Self-Instruct Constraint Mutation 引入失败注入FailureInjection让任务包含“系统崩溃”、“延迟超标”等真实故障现象。向量空间进行去重。总结建议 个人或小团队拼规模百万条数据毫无意义应聚焦于“高价值任务密度”。构建出 100 个具有高代表性的真实工程模式通过 Agent自动化扩展出的数万条高熵数据足以打造出超越低质量大规模数据集的卓越小模型。严格清洗格式检查 JSON、代码、Markdown。可执行验证Verifier 针对代码任务必须自动运行单元测试和 Benchmark无法跑通的直接丢弃这是目前效果最好的质控手段。去重Embedding De-duplication 工业级蒸馏数据中约 30%-70% 存在近重复必须通过 Embedding最终产出 经过难度均衡与风格扰动后的“高熵”高质量合成数据集。