Mid-training 数据构造
构造数据的第一步是什么?
- 从失败分布反推数据: 先按主题、语言、文档类型、代码模式与上下文长度切分评估,确认低
pass@k来自哪类底座缺口; - 只补缺口: 针对知识与能力缺口补数据,避免把输出格式错误误诊成知识不足;
- 判据: 缺口是“合理采样下仍几乎做不对”,而不是“会做但不合格式”;
应当加入哪几类数据?
| 数据类型 | 作用 |
|---|---|
| 原始文档 | 建立术语与事实关联 |
| 代码仓库 | 学习结构与依赖关系 |
| 教材式推导、合成释义、跨文档关联样本 | 把隐含关系写得更明确 |
| 自然长文本(书籍、长文档、代码仓库) | 形成长上下文基础 |
| 长文本原子能力思维链数据 | 长文本检索、多跳推理、指令遵循、信息聚合与统计 |
| Agent 执行轨迹 | 规划、工具选择与调用、长程状态跟踪、错误恢复 |
- 来源: 思维链与 Agent 执行轨迹可以从更强的开源模型蒸馏,也可以使用现有数据集;
- 预处理: 去重、质量过滤、评估集污染检查;
为什么每个阶段都要做“双重回放”?
- 第一类回放: 原始短文本与通用数据,用来保留语言、知识与短上下文能力;
- 第二类回放: “长度提升后的旧任务”——把已经会做的短任务放进当前长度的上下文,在不同位置加入相关信息与干扰项,检验同一能力在更长窗口中是否仍然成立;
- 通用数据来源: 最好取自基模的原始预训练集;无法取得时可以用 FineWeb-2 等开源预训练语料替代;
用什么门禁决定何时停止训练?
- 多维门禁: 除训练 loss 外,同时跟踪留出领域任务、通用能力、原有指令遵循和目标任务的
pass@1/pass@k; - 诊断一: 领域指标上升而通用保留集下降,说明混合配比或学习率过激;
- 诊断二: loss 下降而
pass@k不动,则要检查数据是否真正覆盖所需能力,以及后续是否缺少访问知识的 SFT;
如何检查长上下文能力没有丢失?
| 能力组 | 具体检查项 |
|---|---|
| 位置与检索 | 单针、多针、不同位置的关键信息提取 |
| 关系与推理 | 跨段落、多文档、多跳关系追踪,矛盾消解与证据组合 |
| 聚合与统计 | 长表格或长日志中的计数、分组、排序、比较、趋势归纳 |
| 指令遵循 | 多指令遵循、矛盾消解、思考流程遵循、输出格式遵循 |
| 长链思考 | 复杂数学、逻辑推理、代码生成 |
| Agent 原子能力 | 任务分解、计划生成、工具选择、参数构造、状态记忆、失败恢复 |
- 评估集: LongBench v2、IFEval,以及端到端 Agent 评估,见Agent 评估;
- 依赖链: 长上下文能力是长思维链能力与指令遵循能力的基础,而这些能力又是 Agent 工具调用等多项高阶能力的基础;
继续预训练注入新语言的实验说明了什么?
- 设定: 以 Mistral 7B v0.3 为基础(主要用英语预训练,对韩语几乎没有理解能力),用韩语维基百科继续预训练,最后用韩语指令数据做 SFT;
- 配比: 约 80% 韩语 + 20% 英语以缓解灾难性遗忘;这只是该实验的选择,不是通用默认值;
- 职责划分: Mid-training 先补韩语知识与语言能力,SFT 再教模型如何用韩语接受指令和组织回答;
- 代价: 韩语最终阶段的盲评分改善,但英语能力下降——继续预训练能把目标分布写进参数,却不能免除保留集、事实评估与数据质量审计;
- 成本优势: 模型已具备通用表征,只需适应新的数据分布,成本远低于从头训练;
什么时候应该改用 RAG?
- 判断: 事实需要频繁更新或必须给出原始出处时,RAG 仍优于把知识写进权重;
- 判断: Mid-training 更适合稳定、规模较大、需要形成内部表征的领域知识与能力;
- 风险控制: 全参数 Mid-training 的计算和遗忘风险明显高于小规模 SFT,先用小规模实验验证数据配比再扩大训练预算;