跳到主要内容

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,先用小规模实验验证数据配比再扩大训练预算;