
蒸馏项目不应该从高并发脚本开始,而应从一条能完整追溯的样本开始。100条不是魔法数字,只代表先用小批量暴露任务、教师、格式和验收问题,再决定是否扩大。
第一层,输入池
输入应来自真实任务,并按常见、边界和高风险分层。每条输入保存稳定ID、来源、用途、敏感级别和任务类别。教师调用前完成去标识化和许可检查。
不要只抽最容易的题。小样本应尽早暴露不可接受的错误,不能只用来展示高通过率。
第二层,原始生成
原始响应不可被清洗结果覆盖。保存模型完整版本、提示词版本、请求时间、原始文本、消耗和错误。多次尝试使用同一任务ID与不同attempt编号。
若比较多个教师,固定输入与输出约束,记录模型参数差异。统一API可以减少接口适配,但不能消除模型行为差异。
第三层,验收
先做格式验收,再做内容验收。格式包括JSON、字段、枚举和长度;内容包括事实、任务相关性、重复、安全和业务规则。自动规则负责可计算项目,人工抽样负责语义与边界。
每个拒绝原因使用稳定代码。发现大量missing_field,先检查Prompt或结构化输出;大量invalid_fact则要重新评估教师和资料来源。
第四层,发布数据集
只有accepted样本进入训练发布层。数据集版本要冻结,记录包含哪些sample_id、由哪个验收器生成。规则变化时生成新版本,不覆盖旧版本。
发布前冻结字段、过滤规则和版本号,生成清单并记录样本数量。训练脚本只读取已批准版本,避免临时文件混入正式实验。
第五层,学生验证
用小批量数据训练学生,与未蒸馏基线在独立集比较。教师数据通过验收,不等于学生一定提升。学生没有增量时,先检查数据覆盖、输出长度、学生容量和训练配置。
先在小测试集上检查格式和任务完成,再看资源指标。学生出现严重错误时,回到数据验收阶段查原因,不要只增加训练轮次。
从100条扩大到500条时看什么
比较两批的格式通过率、内容拒绝率、重复率、输出长度、单位合格样本成本和失败构成。第二批明显变差,说明小样本不代表更大分布,应先定位原因。
重点看新增样本是否覆盖新类别、新表达和已知失败类型。若合格率下降或重复率上升,先修管线再扩大数量。
数据管线的停止条件
- 严重错误超过门槛;
- 拒绝原因无法解释;
- 预算或最大请求数达到上限;
- 数据来源或训练用途无法确认;
- 学生相对基线没有稳定增量。
在教师调用阶段,147AI可以作为多模型小样本统一接入候选,并按项目Key核对消耗;任务状态、数据验收和学生训练仍是本地管线责任。
从100条走到可训练数据集,要确保每一步都能回答“这条数据为什么被留下”。
批次扩大不是简单乘法
从100条到500条时,应扩大类别和难度覆盖,而不是把同一模板多生成四次。先查看第一批缺少哪些长尾,再针对性补样本。第二批使用新batch_id,不能与第一批混成无法区分的文件。
每批数据的教师版本、提示词和验收规则可能不同。批次合并前要确认字段一致,并保留来源标签,方便发现某批样本拖累结果。
设置批次闸门
每批结束后生成质量报告:请求完成数、格式通过数、内容接受数、拒绝原因、人工抽样结论和总消耗。通过预设门槛才创建下一批。门槛属于项目配置,应在看到本批结果前确定。
可以把合格率、严重错误数、重复率和单位成本设为进入下一批的检查项。阈值属于项目建议口径,应在试验前写明。
去重不能只算字符串
完全相同文本容易发现,模板替换后的近似重复更隐蔽。可以先做规范化和文本相似检查,再对高相似候选人工确认。不同意图使用相似句式未必该删,同一事实的无意义改写也未必有训练增量。
同一问题换词、换顺序或改变少量数字,仍可能属于近似重复。可结合归一化、相似度和人工抽样判断,避免训练集与测试集发生泄漏。
难例如何进入下一轮
教师或学生反复失败的样本应进入难例池,不要直接复制教师答案当教材。先确认标准答案和错误原因,再决定补充解释、改变任务或保留教师回退。难例池也要与最终测试集隔离。
把学生错题按原因分类,优先补充能代表该原因的样本。难例必须经过更严格复核,不能因为困难就直接把教师输出当答案。
数据发布需要可复现
发布清单记录输入批次、验收器、去重规则、接受sample_id、生成时间和哈希。任何人使用同一原始数据与规则,应能得到相同发布集;否则训练结果难以追溯。
保存生成代码、提示词、依赖、随机种子和输入清单。别人拿到版本号后应能重建同一批数据,至少能解释样本数量为何变化。
人工抽样也要分层
只从整批数据随机抽几十条,容易被数量最多的简单类别占满。更稳妥的做法是按任务类别、难度、来源、教师、输出长度和拒绝原因分层抽样,并对严重错误候选提高检查优先级。抽样比例不是固定行业标准,应依据风险和样本分布制定,同时记录谁在何时按什么规则作出判断。
把数据问题与训练结果连起来
每轮训练后,除总分外,还要把学生失败样本回连到数据批次和类别。某类错误集中在一个批次,可能是教师或验收器问题;各批次都失败,才更像学生容量、任务定义或训练配置问题。建立这条关联,下一轮才能决定补什么数据,而不是看到分数不理想就继续盲目扩量。














