合成数据微调实战:数据不够时怎么把小模型练出来

📅 2026/4/26 ✍️ 小文 📖 约 1 分钟

真实标注数据又贵又少?讲清用大模型生成合成数据微调小模型的完整流程、质量控制和避坑要点。

数据是微调的最大瓶颈

想让小模型在特定任务上表现好,微调几乎是必选项。但一动手就卡住:标注数据不够,人工标又贵又慢。

一个垂直领域任务,想标出几千条高质量样本,可能耗掉团队几周。这时候,合成数据就派上用场了。

基本思路:大模型当”老师”

用强模型(大模型)生成训练数据,再去微调小模型。这就是经典的蒸馏式合成:

大模型(强,但贵/慢)
   ↓ 生成大量标注样本
小模型(弱,但便宜/快)
   ↓ 微调后专精该任务
生产环境部署

好处:成本低、速度快、可规模化。代价:质量必须严控,否则垃圾进垃圾出。

完整流程

1. 定义任务和格式

先想清楚:

  • 输入长什么样(用户问题?文档?)
  • 输出要什么格式(JSON?分类标签?)
  • 边界情况有哪些

格式不清,生成的数据就没法用。

2. 写种子集

不要凭空让大模型生成。先人工写几十条高质量种子样本,作为:

  • 格式示范
  • few-shot 示例
  • 质量基准

种子质量决定合成质量上限。

3. 规模化生成

用大模型 + 种子示例批量生成。技巧:

  • 多样化提示:变换措辞、场景、难度,避免千篇一律
  • 覆盖长尾:主动构造罕见情况、边界、对抗样本
  • 温度调节:适度提高多样性,但别让格式崩掉

4. 质量过滤(关键步骤)

生成的数据绝不能直接用,必须过滤:

  • 格式校验:不符合 schema 的丢掉
  • 规则过滤:明显错误、重复、过短的剔除
  • 模型打分:用小模型或评审模型给样本质量打分
  • 去重:语义近似去重,避免模型过拟合到重复模式
  • 人工抽检:随机抽样人工检查,估算整体质量

过滤环节花的时间,通常比生成还多,但这是成败关键。

5. 微调与评估

用过滤后的数据微调小模型,然后在独立的人工标注测试集上评估。

  • 别用合成数据当测试集(自欺欺人)
  • 对比微调前后、对比大模型基准
  • 关注是否出现”合成数据特有”的偏置

质量控制要点

风险表现对策
模式单一输出千篇一律多样化提示、混合来源
事实错误看似合理实则错引入检索/校验,人工抽检
格式漂移结构不一致强 schema 校验 + 过滤
偏置放大继承大模型偏见平衡样本,加对抗样本
过拟合测试好生产差独立测试集,加真实数据

混合策略:合成 + 真实

纯合成数据有个根本问题:分布可能偏离真实场景。

最稳的做法是混合:

合成数据(多、便宜) + 真实标注数据(少、精)

哪怕只有几百条真实数据,混进合成集里,也能显著提升泛化。真实数据贵,但它的价值极高,别省。

别踩的坑

  1. 直接用未过滤的合成数据:垃圾进垃圾出,模型学歪
  2. 用合成数据自评:当然高分,毫无意义
  3. 忽视分布漂移:合成集和真实输入差太远
  4. 模式太单一:小模型只学会一种问法,换个说法就懵
  5. 完全抛弃真实数据:泛化能力打折

落地清单

  • 明确定义任务输入输出格式
  • 人工写高质量种子集
  • 多样化提示规模化生成
  • 严格过滤:格式、去重、打分、抽检
  • 混入真实标注数据提升泛化
  • 用独立人工测试集评估
  • 监控上线后的真实表现,持续补充数据

结语

合成数据是解决数据瓶颈的有效杠杆,但它不是”免费的数据”。它的价值取决于过滤和混合的质量。把大模型当老师、把人工当裁判、把真实数据当锚点,你就能用很小的标注成本,练出一个真正好用的小模型。

📤 分享到