数据配比、去重与课程设计
前置知识点
一句话定义
数据配比决定「模型最终是什么」:目标任务数据、通用数据、多任务数据各占多少、按什么顺序喂,直接塑造能力的保留与迁移。
为什么重要
只喂领域数据是最常见的翻车配方:领域分数上去了,通用对话、数学、代码能力同时塌方(灾难性遗忘,见 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。
操作步骤
- 盘点数据来源与条数,确定主次(目标任务应为主体)。
- 选定通用补充集(开源指令集需查许可,或从清洗过的自建通用对话中取样)。
- 按目标 75%/通用 25% 起步,随机混洗(shuffle 必做,避免按来源分块排列)。
- 训练 2-3 epoch,同时在两套评测上观测:领域评测 + 通用回归评测(kp-025/kp-026)。
- 按结果微调:通用退化超阈值 → 提高通用占比或降 lr;领域分不足 → 提高领域占比或加 epoch。
排错清单
- 通用能力塌方:加通用数据、降学习率、减 epoch,或用低 rank 的 LoRA 约束更新幅度。
- 领域学不进去:通用占比过高或 lr 过低;检查领域数据质量而非盲目加量。
- 模型开始复读训练样本:数据近重复残留(回 kp-011)或 epoch 过多。
- 多任务互相干扰(格式 A 学好 B 崩):给不同任务加任务标识前缀,或分阶段训练。
常见误区
- 配比是玄学:它有明确的观测指标(两套评测的差值),是可迭代优化的工程参数。
- shuffle 可有可无:不混洗会让模型在训练末期只见某一来源,末段梯度方向主导最终行为。
- 通用数据随便抓一份开源集:质量参差的开源集会引入噪声与许可风险,通用集也要过 kp-011 的清洗。
与其他知识点的关系
遗忘的机制与更多缓解手段见 kp-020;配比与回归评测联动形成迭代闭环见 kp-026;数据污染(评测泄漏)是另一维度的问题,见 kp-013。
延伸阅读
本节不适用:最优配比高度依赖任务与基座,文献结论分歧较大,应以自身双评测体系为准。
自测题
- 领域微调为什么要混入通用数据?
答:约束梯度更新不偏离预训练流形,防止灾难性遗忘;经验起点是通用占 20%-40%。
- epoch 如何选?过多有什么症状?
答:SFT 常 2-3 个,数据极少可到 3-5 个;过多的症状是复述训练样本、风格固化、验证损失回升。
- 温度重采样 T=0.5 相比 T=1 会怎样?
答:分布更向大数量来源倾斜(n^(1/0.5)=n² 的加权),小来源被进一步压低。