数据配比、去重与课程设计

03-数据工程 核心≈ 20 分钟 #配比#课程学习#防遗忘 reviewed
我的状态:

前置知识点

一句话定义

数据配比决定「模型最终是什么」:目标任务数据、通用数据、多任务数据各占多少、按什么顺序喂,直接塑造能力的保留与迁移。

为什么重要

只喂领域数据是最常见的翻车配方:领域分数上去了,通用对话、数学、代码能力同时塌方(灾难性遗忘,见 kp-020),而多数业务方既要领域专精又不能接受模型「变笨」。配比是防遗忘成本最低的手段——比改算法、加正则都便宜。

前置知识

kp-010 的数据来源分类;kp-011 清洗后的干净数据集。

核心概念

  • 目标任务数据:核心业务场景样本,配比主体。
  • 通用回复数据:高质量开放对话/指令数据(开源集或自建),维持通用能力。
  • 多任务混合:格式、问答、摘要、抽取等不同任务混训,防止单任务坍缩。
  • 课程学习(Curriculum):按易到难排序训练,早期建立格式基线,后期攻克难例。
  • 重采样权重:按温度参数 T 对各来源做加权采样而非硬性固定比例。

原理与机制

经验配比起点:目标任务 60%-80%,通用数据 20%-40%。机制解释:梯度更新方向由数据分布决定,纯领域分布会把权重拉离预训练流形,混入通用数据相当于在损失面上加一个「回拉力」。多 epoch 的取舍:SFT 常用 2-3 个 epoch,数据极少(<1000 条)可到 3-5 个但必须盯验证集;epoch 过多首先出现的症状是复述训练样本与风格固化。

温度重采样公式:来源 i 的采样概率 p_i ∝ n_i^(1/T),T=1 时按原始数量比例,T 趋向无穷时均匀采样,T<1 时向大数据源倾斜。课程设计上,真正的「难」应该由验证损失定义而非直觉——先用统一混合训练,若难例场景(长输入、多约束)显著落后,再把这些样本在后期 epoch 中上采样。

图示

配比示例(4000条目标任务):
目标任务 ████████████████ 75%  通用对话 ████ 20%  格式多样模板 █ 5%
风险: 通用=0% → 通用能力塌方;  通用>50% → 领域分被稀释

直观类比

训练运动员:只练专项(纯领域数据)会练出伤病与失衡(遗忘通用能力);专项为主、体能与柔韧为辅(通用数据混入)才能长期保持状态。

实例或案例

法律问答微调的两次对比:v1 用 100% 领域数据,法律问答准确率 82%,但通用闲聊质量明显退化(内部通用集得分跌 18%);v2 加入 25% 高质量通用对话数据重训,法律问答 81%(基本无损),通用能力回拉到跌 4% 以内。结论被固化为团队配比默认值:75/25。

操作步骤

  1. 盘点数据来源与条数,确定主次(目标任务应为主体)。
  2. 选定通用补充集(开源指令集需查许可,或从清洗过的自建通用对话中取样)。
  3. 按目标 75%/通用 25% 起步,随机混洗(shuffle 必做,避免按来源分块排列)。
  4. 训练 2-3 epoch,同时在两套评测上观测:领域评测 + 通用回归评测(kp-025/kp-026)。
  5. 按结果微调:通用退化超阈值 → 提高通用占比或降 lr;领域分不足 → 提高领域占比或加 epoch。

排错清单

  • 通用能力塌方:加通用数据、降学习率、减 epoch,或用低 rank 的 LoRA 约束更新幅度。
  • 领域学不进去:通用占比过高或 lr 过低;检查领域数据质量而非盲目加量。
  • 模型开始复读训练样本:数据近重复残留(回 kp-011)或 epoch 过多。
  • 多任务互相干扰(格式 A 学好 B 崩):给不同任务加任务标识前缀,或分阶段训练。

常见误区

  • 配比是玄学:它有明确的观测指标(两套评测的差值),是可迭代优化的工程参数。
  • shuffle 可有可无:不混洗会让模型在训练末期只见某一来源,末段梯度方向主导最终行为。
  • 通用数据随便抓一份开源集:质量参差的开源集会引入噪声与许可风险,通用集也要过 kp-011 的清洗。

与其他知识点的关系

遗忘的机制与更多缓解手段见 kp-020;配比与回归评测联动形成迭代闭环见 kp-026;数据污染(评测泄漏)是另一维度的问题,见 kp-013。

延伸阅读

本节不适用:最优配比高度依赖任务与基座,文献结论分歧较大,应以自身双评测体系为准。

自测题

  1. 领域微调为什么要混入通用数据?

答:约束梯度更新不偏离预训练流形,防止灾难性遗忘;经验起点是通用占 20%-40%。

  1. epoch 如何选?过多有什么症状?

答:SFT 常 2-3 个,数据极少可到 3-5 个;过多的症状是复述训练样本、风格固化、验证损失回升。

  1. 温度重采样 T=0.5 相比 T=1 会怎样?

答:分布更向大数量来源倾斜(n^(1/0.5)=n² 的加权),小来源被进一步压低。

相关知识点