AI Berkshire · 研究报告库

Markdown 原文 · 大模型技术/mid-train技术综述-基模团队实践指南-20260629.md

阅读目录

Mid-train 技术综述与落地手册:面向有 post-train 经验的基模团队

作者流程:作者初稿 -> 技术专家挑刺 -> 编辑挑刺 -> 作者修订
时间范围:近两年公开资料,重点覆盖 2024-06-29 至 2026-06-29
目标读者:有 post-train 经验、准备承担 mid-train 的基模团队;也适合 Model / Data / Training / Eval / Post-train DRI 协作使用 结论性质:技术研究与工程参考,不构成任何商业或投资建议

使用导航 / 主线地图

这篇文章不是必须从头读的文献综述,而是一套 gate-driven 启动手册。若今天要开 mid-train 启动会,先读 0.2、0.3、8、9;若要设计数据和实验,读 4.2-4.6、6、11;若训练已经出事故,直接读 7;若要核查公开资料和引用边界,读 2、3、12。

主线只有一条:先证明目标值得 mid-train,再证明数据和评估可信,再证明短程训练有效,最后证明 post-train 后收益仍保留。

决策问题 主要证据 对应章节 产出
是否真的需要 mid-train 目标能力、不可牺牲能力、替代方案排除 0.1、1、8.0 Mid-train charter
公开资料能支持到哪一步 报告事实、工程类比、不可外推边界 2、3、12 claim/source matrix
第一轮验证什么 主假设、数据桶、不可同时改变的变量 4.0、4.4、11 ablation plan
数据能不能进训练 data manifest、license、污染、合成数据治理 4.2、7.3、9.1 data readiness memo
checkpoint 是否值得继续 scorecard、guardrail、事故记录、Pareto 曲线 5、6、7、8.0 extend / rollback / kill 决策
post-train 后是否保留收益 frozen paired protocol、seed、AUC、raw outputs 6.6、7.6、8.0 post-train readiness report
是否放大 go/no-go memo、model registry、成本收益 8、9、13 scale / shrink / stop 决策

0. 摘要

Mid-train 不是 post-train 的放大版,也不是简单把 pretrain 再跑一段。本文采用一个保守的工程定义:

Mid-train 是 base pretrain 后、SFT/RL 等 post-train 前的一段受控继续训练,用来改变模型的能力分布、上下文适应能力,以及后续 SFT/RL 可利用的可训练性。

公开资料中,OLMo 2 明确把 base pretraining 之后、post-training 之前的阶段称为 mid-training;Qwen3、DeepSeek-V3、Llama 3、Qwen2.5-1M 等报告并不总使用这个词,而是称为 pre-training、continued pre-training、context extension 或 long-context pre-training。本文只在工程意义上把这些阶段归入 mid-train-like 范畴,不能等同于原报告术语。

实践上,新团队不应先追大规模训练,而应先做小模型 ablation、数据桶验证、污染检查、base 回归评估,再用主模型短程训练验证方向,并用固定 post-train recipe 检验收益是否保留。Mid-train 的成功标准不是某个 base benchmark 上涨,而是能力增强、遗忘可控、post-train 后收益仍存在。

边界上,本文不把所有 continued pretraining 都等同于 mid-train,也不把 DCA、YaRN、sparse attention、chunked prefill 等推理或架构技巧简单归为训练配方。公开案例只能作为设计参考,不能照搬为 recipe。

文中的数据比例、token budget、90 天路线图、质量门和事故 runbook 均为面向新团队的工程起步建议,不是公开论文直接给出的通用结论。

对一个有 post-train 经验、准备承担 mid-train 的基模团队,最重要的不是立刻上大规模训练,而是先建立四件事:

  1. 明确目标能力和不可牺牲能力:例如数学提升不能以通用对话、事实知识、多语能力大幅退化为代价。
  2. 做小模型和短程 ablation:先验证数据桶、学习率、序列长度、污染控制和遗忘风险。
  3. 建立 mid-train 专用评估:不能只看 pretrain loss,也不能只看 post-train 后的榜单。
  4. 让 Post-train DRI 接力验证:mid-train 的成功标准之一,是 SFT/RL 后收益仍能保留、训练更可控,而不只是 base checkpoint 某几个 zero-shot 分数更好。

0.1 读者决策树:你到底该做哪类 mid-train

目标 优先路线 第一轮实验 关键评估 不建议一开始做
数学、代码、STEM、复杂 QA Capability mid-train 小模型数据 mix + 低 LR 短程训练 目标能力提升 + 通用能力回撤 同时拉长到 128K/1M
32K/128K 长上下文 Context extension 逐步长度扩展 + 长文档数据桶 多证据、长文档、长代码任务 只看 needle-in-a-haystack
RL reasoning 上限 Reasoning substrate mid-train 验证 base 是否已有 edge-of-competence 固定 RL/RLVR recipe 接力对比 把 RL 当成能力来源本身
垂直领域能力 Domain continued pretraining 低比例领域数据 + 通用保真数据 领域任务 + 通用回归 用单一领域语料灌满训练
Coding agent / tool use Code/FIM/trajectory mid-train FIM、repo-level completion、多文件定位 repo task、编辑任务、post-train 后 agent eval 把交互格式全部前移到 mid-train

这个决策树是执行入口,不是排他分类。一个成熟项目最后可能同时包含 capability shaping、long-context adaptation 和 post-train readiness,但第一轮最好只验证一个主假设。

0.2 第一天怎么启动

如果今天就要启动 mid-train 项目,不要先开训练。第一天只做 7 件事:

  1. 拉齐 Model、Data、Training Infra、Eval、Post-train、Safety/Compliance、Product/Domain 的 DRI。
  2. 写一页 Mid-train charter:目标能力、不可牺牲能力、为什么必须在 mid-train 做、预算边界。
  3. 冻结 eval registry 的 v0 owner 和 schema;训练前再冻结 v1 eval registry,包括 base eval、专项 eval、长上下文 eval、私有 holdout、人工样例审查。没有 v1,不进入 Gate 1。
  4. 让 Post-train DRI 冻结 paired protocol 的 v0 owner 和 schema;训练前再冻结 v1 paired protocol,包括 SFT/RL 数据版本、训练预算、seed、harness、评估集和失败判定。
  5. 创建实验台账 schema,规定没有台账的实验不进入结论。
  6. 定义 Gate 0-5 的通过条件、阻断条件和签字人。
  7. 明确第一周不允许做什么:不边看私有 holdout 边调参,不在同一个实验 ID 下改 mix/过滤器/eval 版本,不把 proxy 成功当成主模型必然成功。

0.3 如何使用本文:按角色和任务跳读

这篇文章可以从头读,也可以当内部手册查。第一次启动 mid-train 项目时,建议按角色分工阅读:

角色 先读章节 需要带走的产出
Decision owner / Model Lead 0、1、4.6、8、11 项目是否该做、目标能力、不可牺牲能力、Gate 0-5 决策口径
Data DRI 4.2、4.2.1、4.2.2、7.3、9.1 数据桶准入卡、data manifest、污染检查、合成数据边界
Training Infra DRI 4.3、4.5、5、7.4 训练旋钮冻结项、context curriculum、checkpoint lineage、resume runbook
Eval DRI 6、7.5、9.3、12.3 eval registry、scorecard、holdout 分层、claim/source 边界
Post-train DRI 1.2、6.6、7.6、8 paired protocol、seed/预算/harness、收益保留判断
Safety / Product / Domain DRI 0.1、4.1、6.3、7.1、10 不可牺牲能力、guardrail、真实任务、发布阻断条件

如果只开一次 90 分钟启动会,会议不要讨论“大概要训多少 token”,而是按下面顺序收敛:

时间 问题 退出条件
0-15 分钟 目标能力是否真的需要 mid-train 写出 1 个主目标和 3-5 个不可牺牲能力
15-35 分钟 第一轮只验证哪一个假设 明确 capability / context / domain / reasoning substrate 中的主线
35-55 分钟 数据、eval、post-train paired protocol 是否能冻结 确认 data manifest、eval registry、post-train paired protocol owner
55-75 分钟 Gate 0-2 的 kill 条件是什么 写出污染、回撤、事故、post-train 不保留收益的阻断线
75-90 分钟 本周交付物和不开工条件是什么 形成 charter、台账、责任人和第一周 no-go 清单

1. 术语边界:什么是 mid-train

1.1 一个实用定义

本文采用工程定义,而不是术语洁癖式定义:

Mid-train 是 base pretrain 后、post-train 前的继续训练阶段。它仍主要使用语言建模目标或其变体,但数据、学习率、序列长度和能力目标已经从“最大覆盖世界文本”转向“高质量能力塑形”。

这一定义覆盖几类公开实践:

Mid-train 和 continued pretraining 有重叠,但强调点不同:continued pretraining 描述“训练从哪里接着跑”;mid-train 更强调“为什么跑、用什么数据塑形、如何服务 post-train”。

1.2 它和 post-train 的分工

Post-train 团队容易把 mid-train 想成“更多 SFT 数据”或“更早一点的 SFT”。这是危险的,因为两者优化对象不同。

Mid-train 关注:

Post-train 关注:

粗略说,mid-train 更偏向改变能力可达性和参数内分布,post-train 更偏向改变任务接口、行为策略和产品呈现;但在 reasoning、tool use、agent 和长上下文任务上,两者会交叠,必须用 paired protocol 判断收益来自哪里。

1.3 不宜把所有训练都叫 mid-train

本文不把以下情况简单归为 mid-train:

边界要清楚,否则团队会用 post-train 的评估和组织方式管理 mid-train,最后很难判断收益来自哪里。

1.4 给有 post-train 经验的基模团队的 10 条差异认知

  1. Mid-train 的对象是能力分布,不是回答风格。
  2. Mid-train 的主损失通常仍接近语言建模目标,不是偏好优化。
  3. Mid-train 数据可以包含 QA/CoT/FIM,但不要把 SFT 数据整体前移。
  4. Mid-train 的好 checkpoint 不一定是 loss 最低 checkpoint,而是能力提升和遗忘之间的 Pareto 点。
  5. Mid-train 的收益必须在 base eval 和 post-train readiness 中同时观察。
  6. 数据污染在 mid-train 中比 SFT 更危险,因为它会进入 base 能力判断。
  7. 合成数据要先被验证和分层,不应因为“便宜”而提高比例。
  8. 长上下文能力要区分训练长度、推理外推长度和线上可服务长度。
  9. RL 的收益通常依赖 base 已有可达能力区间,不能把所有 reasoning 问题推给 RL。
  10. 放大训练前必须有停止条件;mid-train 不是“预算还没花完就继续跑”。

2. 公开证据强弱分层

公开材料不完全一致,最容易出错的地方是把“报告明确写出的训练阶段”“研究者的归纳”和“访谈里的行业经验”混为一谈。本文按证据强弱分三层使用资料。

2.0 本文的证据标签

为避免把公开事实和工程推断混在一起,后文默认使用四类证据标签:

标签 含义 能用于什么 不能用于什么
报告事实 技术报告、论文或官方材料直接披露的阶段、token、context、数据类型、训练目标 描述某团队实际做了什么 推出其它团队应照搬同一配方
论文归纳 综述或受控实验给出的机制、taxonomy、变量关系 设计内部 ablation、建立假设 直接升级为产业级训练定律
工程归纳 本文基于多个案例抽出的保守实践建议 制定项目流程、gate、台账和风险控制 声称是某篇报告原文结论
待验证假设 访谈、博客、行业口径或小样本实验启发的方向 进入小模型/短程实验候选 进入主模型放大决策

读者在使用本文时,应把“报告事实”当作事实底座,把“论文归纳”和“工程归纳”当作实验设计输入,把“待验证假设”当作 backlog。任何会消耗大规模训练预算的决策,都应回到团队自己的 data manifest、eval registry 和 post-train paired protocol。

2.1 强证据:技术报告明确披露的阶段设计

强证据指模型团队在技术报告中直接披露的训练阶段、token 规模、上下文长度或数据策略。

案例 报告原术语 公开报告直接支持 本文工程类比
OLMo 2 mid-training pretraining -> mid-training -> instruction/preference tuning 的清晰分层;Dolmino Mix、50B/100B/300B、micro-annealing 等细节较透明 狭义 mid-training 的公开参考样本
Qwen3 pre-training stages General / Reasoning / Long Context 三个 pre-training stage;约 36T 总量、约 5T reasoning-stage tokens、32K 长上下文训练 mid-train-like capability shaping + context adaptation
DeepSeek-V3 long context extension 14.8T base pre-training 后,使用 YaRN 做两段各 1000 steps 的 4K -> 32K -> 128K context extension mid-train-like long-context extension,但主要支持长度阶段化结论
Qwen2.5-1M long-context pre-training / post-training / inference scaling progressive long-context pre-training、长上下文 post-training、DCA/YaRN 外推、稀疏注意力和 chunked prefill 部署优化 context adaptation + inference/deployment 协同样本
Phi-4 pretraining / midtraining / post-training 合成数据贯穿 pretraining/midtraining/post-training;midtraining 明确把 4K context 扩到 16K synthetic-heavy training strategy + context extension 边界样本
Llama 3 initial pre-training / long-context pre-training / annealing 405B 在 15.6T tokens 上 initial pre-training,约 800B tokens long-context pre-training 到 128K,最后 40M tokens annealing late-stage continued pre-training 和 annealing 的保守参考

这些报告能支撑“阶段设计”的存在,但通常不能支撑“照搬数据比例或学习率”。未公开的 tokenizer、数据清洗、采样策略、基础 checkpoint 状态、优化器状态和系统实现,都会显著影响结果。

2.2 中证据:综述和受控实验的归纳

Mid-training survey、PRISM 以及 pre-training / mid-training / RL interplay 这类研究能帮助团队理解变量关系:数据保留与能力迁移、能力是否位于模型可达边界、RL 是否能从 mid-trained checkpoint 获益等。

这些研究的价值是提出机制假设和实验维度,而不是给出可直接外推的产业配方。尤其是受控 synthetic task 或小规模模型上的结论,不能直接升级成“所有大模型训练定律”。

2.3 弱证据:访谈、博客和行业口径

访谈和博客通常能提供两类信息:术语如何被从业者使用,以及团队如何描述训练阶段的组织逻辑。但这类资料常常省略失败实验、数据细节和工程约束,所以只能作为趋势背景,不能作为硬事实。

如果访谈声称某个阶段“非常重要”,本文会把它当作待验证假设;只有技术报告、可复现实验或团队内部 ablation 支持后,才进入训练决策。

2.4 从公开资料抽出的保守共识

第一,mid-train-like 阶段通常发生在 base 能力形成之后、post-training 之前。OLMo 2 是狭义样本;Qwen3、DeepSeek-V3、Qwen2.5-1M、Llama 3 是工程上相近但术语不同的样本。

第二,在 OLMo 2、Qwen3、Phi-4、Llama 3 等案例中,late-stage / continued pre-training 往往伴随更强的数据筛选、能力定向采样或高质量数据上调;但 DeepSeek-V3 这类 context extension 案例主要支持阶段化长度扩展,不直接支持数据配比结论。更稳妥的说法是:晚期 token 的边际价值更依赖质量、配比和训练目标,而不是简单追加 web tokens。

第三,长上下文不是只改 RoPE scaling。真实长上下文能力需要训练数据、长度 curriculum、位置/注意力机制、推理框架和评估任务共同成立。DCA、YaRN、sparse attention、chunked prefill 等技术要区分其作用位置:有些影响训练可行性,有些主要服务推理外推和部署成本。

第四,reasoning mid-train 更适合作为“提高 RL 可用 substrate”的强工程假设,而不是已被证明的普遍定律。较保守的说法是:如果 base/mid-trained checkpoint 对目标任务完全没有可解性,RL 通常很难稳定地产生能力;但 RL 是否带来真实能力增益,还取决于 pretraining 暴露、任务是否位于模型能力边界、reward 设计和探索预算。

第五,合成数据有价值,但不是免费午餐。Phi-4 说明 synthetic data 可以显著影响 reasoning 表现,也提醒团队仍需要有机数据来补世界知识、表达多样性和真实分布。

第六,透明的实验台账比单点榜单更重要。OLMo 2 这类报告的最大价值之一,是把 pretraining、mid-training、post-training 和数据构成分开描述,帮助后来团队建立自己的 lineage、分桶 loss 和回归评估。

第七,公开报告能证明“某些成熟团队采用了阶段化 late-stage training”,但很少能证明“某个数据比例、学习率或 token budget 是通用最优”。本文后续所有 recipe 表都应读作搜索空间和质量门,而不是从某个模型报告复刻出的配方。

3. 公开案例能证明什么,不能证明什么

本章不是模型报告复述,也不是 recipe 来源。它只回答一个问题:公开案例能给新团队的 mid-train 项目提供哪些证据,哪些不能外推。先看案例证据总表;只有要核查事实边界时,再读逐案例说明。

本章案例只回答“公开材料能证明什么、能启发哪些内部实验变量”,不提供可复刻训练配方。凡涉及 token 数、context 长度、数据类型或阶段顺序的内容,均先按报告事实记录;只有经过团队自己的 data manifest、eval registry、proxy ablation 和 post-train paired protocol 验证后,才可进入训练决策。

案例 / 资料 原报告术语 报告事实 本文证据标签 可安全归纳 不得推出 内部验证动作
OLMo 2 mid-training 明确 mid-training 阶段,披露 Dolmino Mix、50B/100B/300B、micro-annealing、post-training 分层 报告事实 + 工程归纳 mid-train 可独立管理并保留 lineage/eval gate 其 Dolmino mix、token 数或英文开源生态适合其它模型 建立 checkpoint lineage、mid-train scorecard、post-train 前评估
Qwen3 pre-training stages General / Reasoning / Long Context 三个 pre-training stage 报告事实 + 工程类比 capability shaping 和 context adaptation 可分目标管理 原报告自称 mid-training,或完整数据配比可反推 把 capability 与 context 实验拆成不同 experiment_id
DeepSeek-V3 long context extension 14.8T base pre-training 后两段 4K -> 32K -> 128K context extension,并与架构/系统协同 报告事实 + 工程类比 长上下文必须同时验证训练、架构、serving、eval context extension 等于普通数据继续训练 recipe 做 offline/online 长上下文一致性和短任务回归
Phi-4 pretraining / midtraining / post-training 合成数据贯穿训练,显式 midtraining 承担 4K -> 16K context 扩展 报告事实 + 工程归纳 合成数据要有 verifier、风格多样性和有机数据兜底 reasoning 增益可精确归因到“合成 CoT mid-train” 建立 synthetic bucket 验证、模板重复率和人工错误率
Qwen2.5-1M long-context pre-training / post-training / inference scaling 1M 能力来自 256K 训练、post-training、DCA/YaRN 外推和部署优化共同作用 报告事实 + 工程归纳 训练长度、推理外推、部署成本和真实任务要分开验收 直接训练到 1M,或纯推理技巧即可 分开记录 training length、serving config、latency/cost 和真实长任务
Llama 3 initial pre-training / long-context pre-training / annealing initial pre-training、long-context pre-training、annealing 可拆成可观测阶段 报告事实 + 工程归纳 late-stage 收敛需绑定高质量数据、LR、checkpoint 选择 其 token budget 或 annealing recipe 是小团队默认值 把 annealing 当搜索变量,不当默认动作
PRISM / pre-mid-RL 研究 mid-training / RL interplay retention、interaction、RL substrate 可变成实验问题 论文归纳 + 待验证假设 机制假设可进入 proxy ablation 可升级成产业大模型定律 用 paired SFT/RL protocol 验证收益保留

3.1 OLMo 2:最清楚的 mid-training 公开范式

OLMo 2 明确把第二阶段称为 mid-training:第一阶段是大规模预训练,第二阶段使用 Dolmino Mix 等高质量数据混合进行训练,然后再做 instruction tuning 和 preference tuning。报告还披露了 50B/100B/300B 等 mid-training token 样本、micro-annealing 和 checkpoint averaging 等细节。它最适合作为公开透明的参考样本,而不是所有团队的默认组织模板。

可转化为内部假设/检查项:

不能外推的部分:

3.2 Qwen3:General -> Reasoning -> Long Context

Qwen3 技术报告把相关阶段称为 Pre-training Stage,而不是 mid-training。报告披露的三阶段路线是:

这说明一个成熟团队会把 late-stage training 设计成多个能力目标,而不是一个单一“继续训练”阶段。

可转化为内部假设/检查项:

不能外推的部分:

3.3 DeepSeek-V3:大规模 base 后的 context extension 和工程约束

DeepSeek-V3 报告给出了两个对 mid-train 很重要的信号:

此外,DeepSeek-V3 的训练还包含 MLA、DeepSeekMoE、auxiliary-loss-free load balancing、MTP 等架构和训练设计。对 mid-train 团队来说,这提醒我们:如果 base 架构、位置编码、MoE 路由、attention memory 和推理框架不支持,后期数据再好也可能达不到目标。

可转化为内部假设/检查项:

不能外推的部分:

3.4 Phi-4:synthetic-heavy training strategy,而不是干净的 reasoning mid-train

Phi-4 更适合作为 synthetic-heavy training strategy 的案例,而不是一个干净的“reasoning mid-train”配方。报告确实强调 synthetic data for pretraining and midtraining;同时,显式 midtraining stage 主要承担长上下文扩展,把 context 从 4K 扩到 16K,并训练约 250B tokens。本文对 reasoning 增益的表述是工程归纳:公开报告能支持合成数据、课程设计、数据混合和 post-training 都很重要,但不能精确归因各部分贡献。

可转化为内部假设/检查项:

不能外推的部分:

3.5 Qwen2.5-1M:训练扩展、推理外推和部署优化要分开

Qwen2.5-1M 报告展示了长上下文能力如何由训练、post-training、推理外推和部署系统共同构成。需要特别避免一个误读:1M context 不是简单通过 mid-train 数据直接训出来的,但也不能说训练不重要。

更准确的拆法是:

可转化为内部假设/检查项:

需要注意:

3.6 Llama 3:initial pre-training + long-context + annealing 的保守样本

Llama 3 系列报告没有把相关阶段称为 mid-training,但它给了一个有价值的保守样本。以 405B 模型为例,报告披露 initial pre-training 使用 8K context、约 15.6T tokens;随后 long-context pre-training 约 800B tokens,从 8K 分六段扩展到 128K;最后 40M tokens 做学习率 annealing 到 0,并保持 128K context、上调部分高质量数据。

可转化为内部假设/检查项:

不能外推的部分:

3.7 PRISM 与 pre/mid/RL 研究:把机制假设当假设

PRISM 和 pre-training / mid-training / RL interplay 这类论文的价值,是把几个长期靠经验讨论的问题变成可实验的问题:mid-training 如何影响 retention,哪些能力在继续训练中相互促进或相互干扰,RL 是否依赖 pre/mid 阶段已经暴露过的能力边界。

可转化为内部假设/检查项:

需要注意:

4. Mid-train 的设计框架

本章先按第一轮最小闭环来读:Gate 0 冻结目标能力、不可牺牲能力、eval registry 和 post-train paired protocol;Gate 1 冻结 data manifest;Gate 2 用 control mix + 3-5 个单变量变体在 proxy scale 排除坏方向;Gate 3 用 target model 短程训练寻找能力/遗忘 Pareto checkpoint;Gate 4 用同一套 frozen post-train paired protocol 验证收益是否保留。4.1-4.6 分别解释这个闭环中的目标、数据、训练旋钮、ablation、curriculum 和组织质量门。

一个可执行的 mid-train 项目,最终应回答五个问题:目标能力是什么,哪些能力不能退化,能力由哪些数据桶驱动,训练长度/学习率/context curriculum 如何设置,以及如何证明它对 post-train 有帮助。

4.0 第一轮最小闭环

第一次做 mid-train 时,不要先设计完整训练系统。这里的“最小闭环”不是最小训练配方,而是最小证据链:用尽可能小的实验代价验证数据、训练、评估和 post-train 接力是否能形成可解释结论。先跑通一个目标、一个主假设、一组数据桶、一套 eval registry、一个短程训练窗口、一个 frozen post-train paired protocol。

闭环环节 只回答一个问题 最小证据 失败就回到哪里
目标 为什么必须 mid-train 目标能力、不可牺牲能力、替代方案排除 回到 charter,改目标或不做 mid-train
数据 哪个桶可能驱动目标能力 data manifest、污染检查、linked eval、人工样例 回到数据桶准入卡
训练 低风险短程是否出现方向性收益 固定 LR/mix/context 的 checkpoint 曲线和分桶 loss 回到训练旋钮或数据 mix
评估 收益是否不是公开榜单或格式假阳性 private holdout、raw output、人工审查、scorecard 回到 eval registry
接力 post-train 后收益是否保留 paired SFT/RL protocol、seed、AUC、失败样例 回到 post-train recipe 或 mid-train 目标
决策 是否 extend / rollback / kill Gate dashboard、evidence_path、owner 签字 回到对应 gate

第 11 章给出的是这个闭环的一组示例搜索网格,不是默认配方。第 4 章先讲设计对象,第 6-8 章讲如何判断证据,第 11 章才给可执行起步样例。

4.1 能力目标分层

建议把目标分成四层:

第一层:通用 base 保真

第二层:核心能力增强

第三层:结构能力

第四层:post-train readiness

4.2 数据桶设计

建议至少建立以下数据桶:

数据桶 目标 主要风险 建议控制
高质量 web / book 保持通用语言与世界知识 噪声、重复、版权/合规 去重、质量分类、采样上限
代码 编程能力、形式化结构 license、重复、benchmark 泄漏 license 过滤、repo 去重、题库隔离
数学 / STEM 推理与符号能力 过拟合竞赛题、解答错误 可验证题、难度分层、proof/answer 校验
合成教材 概念压缩、教学式推理 风格单一、teacher 错误 多 teacher、多模板、验证器过滤
QA / CoT 推理轨迹和任务格式 把 post-train 行为提前固化 控制比例,保留自然文本
长文档 长上下文适应 空洞 padding、低效 token 真实长文档 + 合成长任务
FIM / 代码编辑 coding agent 能力 破坏普通 LM 分布 分桶 loss 和代码 eval
领域数据 行业/产品能力 灾难性遗忘、狭窄化 低比例混入,通用回归

不要只做一个全局 mix。每个桶要有:

4.2.1 数据桶准入卡

每个数据桶进入训练前,都应先进入 data manifest,而不是直接进入 mix。最小字段如下:

字段 说明
bucket_id / bucket_name 数据桶编号和名称
source_manifest 原始来源、时间范围、license / 合规状态
processing_commit 清洗、解析、过滤脚本版本
dedup_version 文档级、段落级、代码 repo 级、题目级去重版本
contamination_version 与 public benchmark、private holdout、合成 prompt 的污染检查版本
tokenizer_version tokenizer 和 special tokens 版本
quality_score_distribution 质量打分分布,不只写平均分
language_domain_distribution 语言、领域、文件类型、长度分布
time_distribution 数据时间范围、新旧分布、是否包含训练后新事件
sampling_weight 当前 mix 中采样权重和上限
shuffle_seed / bucket_interleaving 数据顺序、bucket 交织策略、是否阶段性改 mix
bucket_validation_loss 分桶 validation loss 和异常变化
linked_eval_id 对应 eval registry 中的评估项
known_risks license、污染、模板化、重复、事实错误、分布过窄

数据桶准入门建议写成硬规则:

4.2.2 合成数据使用边界

合成数据需要单独治理,因为它最容易在短期指标上“看起来很有效”:

风险 表现 控制方式
Teacher 错误放大 数学/代码答案看似流畅但不可验证 可执行验证、答案校验、抽样人工复核
风格模板化 输出都像同一个 teacher,推理步骤固定 多 teacher、多 prompt、多解法、混入有机数据
Benchmark 近似污染 公开题变体大量出现 题干、解法结构、embedding 和 translated duplicate 检查
难度分布失真 训练题过简单或只覆盖一种题型 难度分桶、失败样例回灌、私有 holdout 对照
CoT 行为前移过度 base 模型过早学会冗长解释格式 控制 CoT 比例,混入短答、无 CoT、自然文本

合成数据的合理用法是“可验证能力放大器”,不是低成本 token 替代品。数学、代码、结构化推理适合多用可验证合成;开放域知识、语言风格、多语表达仍需要高质量有机数据兜底。

不同合成数据类型的边界也不同:

合成数据类型 适合用途 不适合用途 必须检查
可验证数学/代码 提高符号推理、可执行解题、单元测试能力 替代开放域知识 verifier、答案执行、难度分桶
教材式解释 压缩概念、补齐知识结构 大比例替代自然语料 teacher 多样性、表达模板、事实抽检
CoT / rationale 提供推理轨迹形式 让 base 过早固化冗长回答风格 CoT 占比、短答混入、风格漂移
长上下文合成任务 覆盖稀缺长任务模式 替代真实长文档和长代码 证据位置、干扰信息、不可回答样本
领域合成 QA 补足领域任务形态 替代真实领域文档 专家抽检、来源追踪、术语一致性

Synthetic bucket 还必须记录 teacher model/version、生成 prompt、采样参数、verifier 版本、过滤规则、被拒样本比例、模板重复率、答案可验证率、人工抽检错误率,以及生成器是否读过 eval/benchmark。合成 CoT/QA 要额外检查 style entropy、template n-gram 和 response length distribution,避免把 post-train 行为格式提前固化。

4.3 学习率和 token budget

公开报告通常不会完整给出所有细节,但工程上有几条稳健原则。

第一,mid-train 通常不应使用接近 pretrain 初期的高学习率。模型已经形成大量通用能力,过高学习率会导致遗忘、风格漂移和 loss spike。

第二,学习率策略要和目标匹配:

第三,token budget 不是越大越好。下面三档只是启动实验的保守刻度,不按模型规模线性通用,也不能替代 scaling ablation:

以上不是行业定律,而是工程上较保守的起步刻度。真正 token budget 应由模型规模、数据质量、目标能力和预算共同决定。

4.3.1 配方旋钮与不可同时改变原则

训练变量也要像数据和 eval 一样冻结版本。每次 run 至少记录:

变量 为什么要冻结 常见误判
base_checkpoint_hash 决定起点能力和已有数据暴露 把不同 base 的差异误判成 mid-train 收益
optimizer_state_strategy 接续或重置会改变 loss 曲线和稳定性 重置后 warmup 不足导致假性退化
lr_schedule / warmup 影响遗忘、收敛和 loss spike 只比较最终分数,不比较训练稳定性
peak_lr / min_lr / decay_shape 决定实际优化轨迹 都叫“低 LR”,但训练动态完全不同
gradient_clipping / precision 影响稳定性和数值误差 把数值不稳误判成数据 mix 问题
global_batch / microbatch 改变有效 batch 和训练噪声 小 batch 噪声被误判成能力波动
sequence_length_distribution / length_bucket_ratio 改变有效 token 分布和训练动力学 把长度变化带来的收益归因给数据 mix
data_order / shuffle_seed curriculum、annealing、长上下文阶段对顺序敏感 同一 mix 不同顺序得出相反结论
packing_policy / masking_policy 影响 FIM、长文档和短样本比例 短任务退化但全局 loss 正常
checkpoint_selection_policy 决定最终比较对象 事后挑最佳 checkpoint 夸大收益
eval_cadence 决定何时发现遗忘和漂移 训练结束才发现不可逆回撤

Scale-up 也要保守。Proxy 成功只能说明某个方向值得继续,不说明目标规模必然成功。进入更大训练前至少满足四个条件:

  1. 两个 scale 或 target 短程 run 的方向一致。
  2. 分桶 loss、目标 eval、base regression 的变化能被同一个数据/训练假设解释。
  3. 相同 mix 下不同 seed 不反转,训练吞吐、checkpoint resume 和监控已经验证。
  4. 成本上可接受:如果放大 10 倍 token 后只可能换来边际小幅收益,就应先改善数据或 eval,而不是加预算。

一次实验不要同时改太多旋钮。建议把常见旋钮拆开看:

旋钮 可调方式 主要风险 观测信号 何时停止
LR / warmup 低 LR、进一步降低、短 warmup sweep 遗忘、loss spike、收敛过慢 全局 loss、分桶 loss、梯度范数 spike 不恢复或保真指标快速下跌
Token budget 递增短程预算 浪费预算、过拟合窄分布 checkpoint 间 delta、Pareto 曲线 边际收益消失或回撤扩大
Sequence length 逐步拉长长度分布 长训伤短任务、吞吐下降 长度分桶 loss、短任务回归 短任务显著退化或 serving 成本不可接受
Batch / packing 改 packing、混长短样本 有效数据分布改变 吞吐、padding、短样本 loss 全局 loss 正常但分桶异常
Optimizer state 接续或重置 继承动量或 warmup 不足 early loss、梯度、resume 连续性 early instability 无法解释
Synthetic ratio 逐步增加上限 模板化、teacher 错误放大 私有 eval、风格审查、失败样例 风格坍缩或私有集不涨
Domain ratio 低比例混入 模型变窄、通用能力退化 通用回归、领域私有任务 领域涨幅小于通用回撤代价

4.4 第一轮 ablation 设计表

第一轮不要追求“最好配方”,而要快速排除错误方向。下表中的比例只是搜索变量示例,用来暴露灵敏度和坏方向,不能作为主训练默认 mix。

实验目的 模型规模示例 Token budget 示例 数据 mix 搜索变量示例 LR 变量 成功指标 停止条件
Pipeline 和 eval 校准 proxy model,例如 1B/3B 1B-3B tokens 小样本全桶 mix 低 LR 单点 loss 正常、eval 可复现 loss spike、eval 不稳定
通用保真底线 proxy model,例如 3B/7B 3B-10B tokens 通用高质量占比 30/50/70% 固定低 LR 通用能力回撤可控 多语/事实大跌
数学/STEM 注入 proxy model,例如 3B/7B 5B-20B tokens 数学/STEM 10/20/30% 低 LR + 更低 LR 数学提升且通用不崩 只提升公开题型
代码/FIM 注入 proxy model,例如 3B/7B 5B-20B tokens 代码/FIM 10/20/30% 固定低 LR completion/FIM/repo task 提升 普通生成明显代码化
合成数据占比 proxy model,例如 3B/7B 5B-20B tokens synthetic 5/15/30% 固定低 LR 可验证任务提升、风格多样 模板化或污染风险
主模型短程验证 target model 10B-100B tokens 候选 2-3 个 mix 低 LR sweep Pareto checkpoint 出现 目标能力不涨或遗忘过大

这些实验的产出不是最终模型,而是决策:哪个数据桶有效,哪个比例危险,哪个学习率区间安全,是否值得进入更长主训练。

4.4.1 如何读 ablation

Ablation 的产出是排除坏方向和形成候选 Pareto,不是证明最终配方。建议按五条规则判读:

  1. Proxy 成功不等于 target 成功;进入主模型前需要两个 scale 方向一致,或 target 短程 run 复核。
  2. 单一公开榜上涨不等于能力增强;必须和 private holdout、失败样例簇、人工审查一起看。
  3. Target 能力提升必须和 guardrail 一起看;数学/代码涨而多语、事实、自然生成明显跌,不算干净收益。
  4. 接近阈值的结果要重复 run 或相邻 checkpoint 复核;不要用一次 seed 的小幅收益做放大决策。
  5. 任何中途改 mix、filter、LR、长度 curriculum 或 eval 版本的实验,都必须重开 experiment_id。

4.5 Curriculum:先能力,后长度,还是并行?

建议新团队不要一开始把所有目标混在一起。

更稳的顺序是:

  1. Base 保真检查:确认 checkpoint、tokenizer、optimizer state、数据 pipeline、评估体系可用。
  2. 能力型 mid-train:数学/代码/STEM/高质量合成数据,短程 ablation。
  3. 长上下文适应:从较短 context 逐步拉长,单独监控长上下文 loss 和真实任务。
  4. 小规模 post-train 接力:用固定 SFT/RL recipe 比较 mid-train 前后 checkpoint。
  5. 决定是否合并为主训练配方。

为什么建议先能力后长度?因为长上下文训练成本高、debug 难,而且容易把架构和数据问题混在一起。如果模型基础 reasoning/代码能力没有改善,长上下文只是放大输入窗口,不一定放大任务能力。

也有例外:如果产品目标就是法律/金融长文档 QA 或代码库 agent,长上下文可以前置,但仍建议先在小模型上验证。

产品主目标 推荐先验 第一轮验证 反证信号
数学、代码、STEM、复杂 QA 先能力,后长度 能力桶 + 通用保真桶短程 ablation 目标能力只在 public benchmark 涨,private/人工样例不涨
法律/金融/科研长文档 QA 能力和长度并行,但分两个实验 ID 一条能力短程、一条 32K/64K context 短程 长上下文检索好但综合/冲突/不可回答任务差
代码库 agent / repo-level editing 代码/FIM 与中长上下文并行 FIM/repo task、长代码定位、短代码回归 repo task 涨但普通代码生成或短任务明显退化
领域继续训练 先低比例领域,再看是否需要长度 领域桶 5/10/20% + 通用回归 领域任务涨幅小于通用能力回撤代价
长上下文展示能力 先确认产品价值,再做 context extension 真实长任务、serving 成本、短任务回归 NIAH 好看但真实任务、线上成本或短任务不成立

长上下文 curriculum 要记录长度分布,而不是只记录最大长度。每个阶段至少记录:

否则“扩到 128K”只是一个最大长度声明,不能解释模型到底学到了长上下文理解、长距离检索,还是只学会在更长输入里保持 loss 不崩。

4.6 组织运行机制:角色、台账和质量门

Mid-train 项目不是训练团队单独完成的模型续训,而是 data、training、eval、post-train 四方共用同一张实验台账、同一组质量门的能力塑形项目。每个组织概念都必须绑定工程对象:checkpoint、data manifest、eval version、gate、owner 和 decision。

第一,设定 DRI,而不是泛泛“多团队参与”。

工作流 唯一 DRI 参与团队 最终拍板 关键产出
目标定义 Model Lead Product/Domain、Eval、Post-train Model Lead Mid-train charter、不可牺牲能力、实验假设
数据构建 Data DRI Research、Safety/Compliance、Eval Data DRI + Safety/Compliance 数据桶说明、data manifest/hash、lineage、contamination report
训练执行 Training Infra DRI Model、Data、Infra Training Infra DRI 训练 runbook、LR/token budget 配置、checkpoint ledger、事故记录
评估体系 Eval DRI Model、Product/Domain、Post-train Eval DRI eval registry、私有 holdout、scorecard、人工审查样例
Post-train 接力 Post-train DRI Eval、Safety、Model Post-train DRI frozen post-train paired protocol、readiness report、对齐回归
长上下文系统 Infra DRI Training、Eval、Serving Infra DRI + Eval DRI kernel/serving 一致性报告、KV cache/latency/cost 评估
风险与发布 Safety/Compliance DRI Data、Product、Release Decision owner 合规审查、风险登记表、go/no-go memo

第二,实验台账要有固定 schema。没有台账的实验不进入结论;任何中途改 mix、改过滤器、改 eval 版本,都必须新建 experiment_id。

字段 说明
experiment_id / hypothesis / owner 实验编号、要验证的假设、唯一负责人
base_checkpoint_hash / training_code_commit 起点 checkpoint 和训练代码版本
data_manifest_hash / data_bucket_ratio 数据 manifest、采样权重、数据桶比例
dedup_version / contamination_version 去重、近重复和污染检查版本
lr_schedule / warmup / optimizer_state_strategy 学习率、warmup、optimizer state 接续或重置
token_budget / sequence_length_distribution token 预算和长度分布,不只记录最大长度
eval_suite_version / private_holdout_version eval registry、私有 holdout、harness commit
seed / cost / incident_log 随机种子、训练成本、异常事件和处理动作
result_summary / decision / signoff 结论摘要,kill/retry/extend/promote 决策,签字人
post_train_readiness_result 固定 SFT/RL recipe 后收益是否保留

第三,质量门的唯一权威看板放在第 8.0 节;本节只定义角色、台账字段和签字责任。本文不能替团队设阈值,但 gate memo 至少要定义:目标能力最低提升、通用能力最大回撤、私有 eval 通过率、污染命中率上限、loss spike 处理规则、风格漂移判定、post-train 后收益保留比例。任何 gate 状态、证据路径、版本 hash 和过期时间,都以第 8.0 节 dashboard 为准。

Gate 进入条件 退出条件 阻断条件 签字人
Gate 0: charter 目标能力、不可牺牲能力、预算和 post-train 接力需求明确 Mid-train charter 通过;v1 eval registry 和 v1 post-train paired protocol 状态以第 8.0 节 dashboard 为准 无 DRI、无 paired protocol owner/schema、无私有 holdout owner/schema Model Lead、Eval DRI、Post-train DRI
Gate 1: 数据冻结 数据源、license、清洗、去重和污染检查完成 data manifest/hash 冻结,人工抽检无系统性错误 benchmark 泄漏、license 不清、合成数据模板化明显 Data DRI、Safety/Compliance DRI、Eval DRI
Gate 2: proxy ablation 至少两个候选 mix 和固定 eval suite proxy 只用于排除坏方向;进入主模型前需两个 scale 方向一致,或 target 短程验证关键信号 只涨公开 benchmark,私有任务不动,通用能力大跌 Model Lead、Eval DRI、Data DRI
Gate 3: 主模型短程 训练 runbook、resume、监控和 kill switch 就绪 出现能力/遗忘 Pareto checkpoint,分桶 loss 可解释 NaN、不可恢复 loss spike、梯度异常、吞吐异常、resume 不连续、长上下文伤短任务 Training Infra DRI、Eval DRI、Model Lead
Gate 4: post-train 接力 paired protocol 的 recipe、seed、预算、harness、失败判定已冻结 固定 paired protocol 下 post-train 后收益仍保留,安全/风格无显著恶化 mid-train 收益在 post-train 后消失、paired protocol 中途改变,或对齐难度显著增加 Post-train DRI、Eval DRI、Safety DRI
Gate 5: 放大训练 收益来源可解释,数据/eval/训练自动化稳定 go/no-go memo 通过,进入下一阶段预算 收益依赖污染、窄评估、偶然 checkpoint 或无法复现 Decision owner、Model Lead、Release owner

第四,会议节奏要服务决策,不服务汇报:

这套机制的底线是:日历不能替代质量门。90 天只是参考节奏,是否进入下一阶段由数据就绪度、训练稳定性、eval 稳定性和 post-train 接力验证决定。

5. 训练工程检查点

5.1 启动前检查

启动 mid-train 前,应完成:

如果没有 post-train 接力验证,mid-train 很容易优化错目标。

5.2 训练中监控

至少需要监控:

不要等训练结束才做 eval。Mid-train 的失败常常在早期就有信号:通用 eval 大跌、输出风格模板化、某个数据桶 loss 异常、长上下文短任务退化。

5.3 Checkpoint 策略

建议保留:

不要只保留最后一个。Mid-train 的最佳 checkpoint 可能不是 loss 最低的 checkpoint,而是目标能力和遗忘之间的 Pareto 最优点。

5.4 容易低估的工程风险

第一,mixed-length batching 和 context parallelism 会带来负载不均。长上下文 batch 的吞吐、显存碎片、padding 浪费和通信模式都和短上下文不同,训练监控必须按长度段拆开,否则全局吞吐会掩盖局部不稳定。

第二,optimizer state 接续或重置都可能出问题。接续 optimizer state 更像原训练轨迹延长,但可能继承旧阶段动量;重置 optimizer state 更干净,但需要重新设计 warmup,否则容易出现 loss spike 或过慢收敛。两种方案都应先在 proxy scale 测。

第三,训练 attention kernel 和部署 attention kernel 不一致会制造假阳性。离线 eval 通过,不代表线上 128K/1M 服务可用;长上下文训练、推理外推、kv cache、chunked prefill、sparse attention 和 serving 框架必须联合验证。

6. 评估体系

6.0 从 benchmark list 到 eval registry

Mid-train 的评估系统不是榜单集合,而是一组带版本、污染状态、运行 harness、阈值和原始输出存档的 eval object;没有进入 registry 的评估结果,只能作为观察,不能作为 go/no-go 依据。

每个项目最多设置 3-5 个 primary 指标,另设若干 guardrail 和 diagnostic。Primary 太多会诱导 cherry-pick,diagnostic 太少会让团队不知道为什么涨跌。

6.1 Eval registry 的最小 schema

Eval DRI 应在 Gate 0 冻结 v0 owner 和 schema,并在进入 Gate 1 前冻结 v1 eval registry。最小字段如下:

字段 含义
eval_id 唯一编号
eval_family base regression / target capability / long-context / post-train readiness / safety-style
task_name 任务名
data_source public / dev-private / sealed-private / final-blind / synthetic / human-written
created_at / data_hash 创建时间和数据 hash;私有集必须早于对应训练数据 mix 冻结
split_policy dev / private holdout / regression set / final-blind
contamination_check_version exact / n-gram / MinHash / embedding / paraphrase / translated duplicate / manual
harness_commit 评估代码版本
prompt_or_wrapper_version base prompt、minimal prompt、few-shot policy、light instruction wrapper、agent harness 版本
decoding_params temperature、top_p、max tokens、pass@k 等
metric / aggregation accuracy、pass@k、F1、judge score、latency/cost 等,以及聚合方式
decision_role primary / guardrail / diagnostic
threshold_or_guardrail 提升阈值、最大回撤、失败条件、最小显著差异
sample_size 样本量和抽样规则
manual_review_rubric 需要人工审查时的 rubric
raw_output_path 原始输出存档位置
owner_note 解释性备注,不放组织责任

Eval 版本变更规则要写死:改样本、改 prompt、改答案抽取器、改 metric、改 harness、改阈值,都必须生成新 eval_suite_version,旧结果不能横向混比。

私有 holdout 建议分三层:

6.2 Eval suite matrix

Eval family 目的 代表任务 适用 checkpoint Metric 失败信号 Raw output 要求
Base regression 保护不可牺牲能力 通用知识、多语、基础生成、事实 QA pre-mid、mid、post-train 后 最大回撤、低分桶变化、人工审查 平均分小跌但某语言/风格崩 固定样本篮子完整输出
Target capability 判断目标能力是否真的变强 数学、代码、STEM、领域任务、FIM pre-mid、mid delta、难度分桶、私有任务通过率 只涨公开榜,私有任务不动 成功/失败样例簇
Long-context 判断长上下文是否可用 多证据 QA、冲突消解、长代码定位、长表格/日志 mid、post-train 后 长度分桶表现、短任务回归、latency/cost needle 满分但真实任务差 输入长度、证据位置、backend 配置
Post-train readiness 判断收益是否在 SFT/RL 后保留 固定 SFT/RL recipe 后的真实任务和安全评估 paired post-train checkpoints 收益保留比例、训练曲线 AUC、方差 base 涨但 post-train 后消失 recipe、seed、checkpoint selection policy
Safety/style 防止风格、安全和拒答漂移 安全集、拒答边界、中文写作、长答案质量 mid、post-train 后 回归率、人工 rubric、拒答误伤 模板化、冗长 CoT、幻觉变多 人工审查样本和评分理由

目标能力 eval 回答“能力是否真的变强”;base regression eval 回答“有没有伤到别的能力”;post-train readiness eval 回答“这个 base 变化是否能穿过 SFT/RL 仍然有价值”。

6.3 Base regression eval

Base regression 的重点不是证明模型更强,而是保护不可牺牲能力。它应覆盖:

Base model 未必稳定遵循复杂格式,所以要区分“能力不足”和“格式不服从”。每个 base eval 应记录 minimal prompting、few-shot policy、答案抽取器版本和人工复核规则。SWE-bench、agent 任务、tool-use eval 混入了指令遵循、工具协议、环境稳定性和 scaffold 质量,更适合作为 readiness/diagnostic,而不是裸 base 主指标。

Base regression scorecard 至少报告:

6.4 Target capability eval

Target capability eval 要和 base regression 分开。它不只是问“公开榜有没有涨”,而是问“目标能力是否在真实任务和私有任务上变强”。

目标能力 评估方式 必要防线
数学/STEM 难度分桶、可验证答案、私有变体题、失败样例簇 防止竞赛题近重复和 synthetic overfit
代码/FIM HumanEval/MBPP/EvalPlus、FIM、repo-level completion、多文件定位 SWE-bench/tool-use 作为 readiness 或 diagnostic
领域能力 领域私有题、真实文档 QA、专家人工 rubric 防止领域数据让通用能力变窄
Agent/tool-use 固定 harness、环境版本、工具协议、任务轨迹 不把 scaffold 变好误判成 base 变强

如果目标能力只在 public benchmark 上升,而 private holdout、失败样例簇和人工审查不支持,应先视为污染、格式适配或窄分布优化。

6.5 Long-context eval

长上下文评估要分三层:

长上下文 eval registry 必须按轴展开:

轴 必测切片
Context length bucket 4K、16K、32K、64K、128K;如目标是 1M,再加 256K/1M
任务类型 检索、摘要、多证据 QA、代码定位、跨段推理、不可回答问题
证据密度 稀疏事实、密集表格、长代码、冲突证据
干扰信息 无干扰、同主题干扰、矛盾证据、过期信息
证据位置 开头、中间、末尾、多位置证据
输出要求 短答、结构化表格、长答案、引用证据
推理 backend attention kernel、KV cache、chunked prefill、batching、serving 配置
成本约束 latency、吞吐、显存、单位请求成本
短任务回归 短任务放进长上下文后是否退化

长上下文的 hard gate 不应只看“最长长度能跑通”。更合理的门槛是:短上下文能力不明显退化,中长上下文真实任务有收益,推理系统在目标长度下成本和延迟可接受。

6.6 Post-train readiness eval

Post-train readiness 要用 paired protocol:

这里冻结的 SFT/RL recipe 是诊断仪器,用于比较 pre-mid 与 mid checkpoint,不代表最终生产 post-train 配方。若为追求更好结果而调整 recipe,应重新登记 experiment_id,原 mid-train 结论不得直接沿用。

比较项 看什么 失败信号
收敛速度 同预算下是否更快达到目标能力 只在个别 seed 变快
最终能力 目标能力是否在 post-train 后仍保留 base 涨,post-train 后消失
Reward 行为 RL 是否减少 reward hacking 或提升可验证任务 冗长推理、投机格式、答案漂移
安全/风格 拒答边界、中文表达、长答案质量 安全回归、模板化、拒答误伤
长上下文 post-train 后长任务是否继续可用 SFT 后长上下文能力被覆盖

四格判读:

结果 解释 决策
base 涨,post-train 后也涨 最可信的 mid-train 收益 可进入放大候选
base 涨,post-train 后不涨 可能是 base eval 假阳性或 post-train 覆盖掉收益 回到数据/eval,不能直接放大
base 不涨,post-train 后涨 可能改善了可训练性或与 SFT/RL 交互 重复 seed 和真实任务验证
base 跌,post-train 后涨 高风险 trade-off 只有不可牺牲能力未破坏时才可继续

6.7 Scorecard:如何读评估结果

每个候选 checkpoint 都应生成一页 scorecard。它是 Eval DRI 给 gate 的输入,不替代 4.6 的最终 go/no-go 决策。

字段 内容
checkpoint_id checkpoint hash、训练步数、token 数、context length
target_capability_delta primary 指标变化、难度分桶变化、私有任务变化
base_regression_max_drawdown 不可牺牲能力最大回撤和低分桶变化
private_holdout_result dev-private、sealed-private 的使用情况和结果;final-blind 在 Gate 5 或发布前应保持 unused/reserved,并记录是否仍未触碰
long_context_result 长度分桶、真实任务、短任务回归、serving 配置
post_train_readiness_result paired protocol、seed、收益保留、方差
contamination_status exact/near-duplicate/embedding/manual 检查结果
known_regressions 已知退化、失败样例簇、人工审查结论
recommended_action kill / retry / extend / promote

如果某个指标收益异常高,而私有任务、人工审查和相邻 eval 不支持,应先假设污染、格式适配或过拟合,而不是先宣布能力突破。

Gate meeting 里先看一行红黄绿摘要,再看完整 scorecard:

状态 含义 会议动作
Green target、guardrail、private holdout、post-train readiness 同方向支持,且证据路径完整 可讨论 extend/promote
Yellow 有收益但方差、回撤、污染、post-train 保留或 serving 成本仍不清楚 指定 owner 补证据,不进入放大
Red 不可牺牲能力越线、污染/license 未清、事故未归因、post-train 后系统性变差 rollback/kill,或重开 experiment_id

7. 风险与事故处理 Runbook

第 7 章不是失败模式科普,而是训练中的事故处理 runbook:任何异常都必须能落到一个症状、一个实验 ID、一个受影响 checkpoint、一组证据路径和一个继续/回滚/kill 决策。

7.0 如何使用本章

正常监控、eval registry 和 gate 机制分别放在第 4-6 章;本章只处理异常。触发异常后,值班 DRI 先冻结现场,再做 30 分钟首轮诊断,最后给出临时决策。没有完成归因前,不要在同一个 run 里改数据、改学习率、改 eval harness 或改 post-train recipe。

事故出现后先做三步,不要先改配置:

步骤 动作 输出
1. 冻结现场 保存 checkpoint、optimizer、data manifest、eval raw outputs、系统指标和相关 commit incident_id 和 evidence paths
2. 判定级别 判断 observation / alert / blocker,指定 30 分钟首查 owner 临时 stop/continue 决策
3. 分层隔离 依次做 system replay、data manifest diff、eval harness diff、model checkpoint diff root cause 或 unresolved 标记

事故先按六类登记:

事故类型 典型范围
numerical NaN、Inf、loss 爆炸、梯度异常、混合精度溢出
data 数据桶污染、格式漂移、license 问题、合成数据模板化、采样权重错误
eval harness、prompt、judge、metric、抽样或污染导致的分数异常
infra 吞吐、GPU 利用率、NCCL、存储、checkpoint、serving 配置异常
capability 目标能力不涨、通用能力回撤、guardrail 变坏、长上下文真实任务退化
post-train handoff SFT/RL 接力后收益消失、reward hacking 增加、recipe 噪声放大

硬规则:任何能力结论或训练效果结论必须先完成四层隔离:system replay、data manifest diff、eval harness diff、model checkpoint diff;若某一层与事故无关,应标记为 N/A 并写明理由。证据不齐时,只能登记为未归因事故,不能写入能力结论。

7.1 事故分级:观察、警报、阻断

级别 触发信号 现场动作 可否继续训练
观察 单个 eval 小幅波动、分桶 loss 轻微偏移、单次 seed 接近阈值 记录 incident_id,复跑相邻 checkpoint 或固定样本篮子 可以继续,但不能 promotion
警报 连续 checkpoint 指标异常、public/private 分歧、某数据桶 loss 明显偏离、目标能力涨但 guardrail 变坏 冻结变量,拉 Data/Eval/Training DRI 做 30 分钟首查 视 guardrail 决定;通常暂停放大
阻断 NaN/Inf、resume 不连续、污染或 license 不清、不可牺牲能力越线、离线可用但线上不可服务 停止 run 或停止发布,回滚到最近健康 checkpoint,开事故复盘 不继续,除非复盘后新建 experiment_id

处理原则:

原则 具体做法
先冻结现场 保存 checkpoint、optimizer state、训练日志、data manifest、eval raw outputs、系统指标和相关 commit
先分层归因 分清 system、data、eval、model、post-train recipe 哪一层先变了
先看分桶 全局 loss 正常不代表数据桶、语言、长度、任务都正常
先保护 guardrail 不可牺牲能力超阈值回撤时,不用等目标能力继续上涨
不做隐性修补 改过滤器、采样权重、prompt、harness、judge、decoding 或 serving config 都必须新建 experiment_id

7.2 训练中事故 triage 表

事故类型 现场症状 30 分钟首查 分层归因 立即决策 必须留档
numerical NaN / Inf / loss 爆炸 梯度范数、overflow 计数、LR/warmup、最近 batch、optimizer state、resume 日志 system:精度/kernel;data:坏样本;model:LR/clip;checkpoint:resume 阻断;回滚到最近健康 checkpoint,replay 问题 batch checkpoint_id、batch id、overflow log、optimizer hash、replay 结果
numerical / model 阶段切换后 loss spike 阶段切换 commit、LR schedule、mix 权重、长度分布、optimizer/RNG 是否连续 data:mix 突变;model:schedule;system:resume;eval:窗口口径 spike 可解释且快速恢复则观察;持续异常则 rollback phase-change diff、前后 3 个 checkpoint 曲线、data manifest diff
infra 吞吐下降 / GPU 利用率异常 tokens/s、MFU、dataloader wait、NCCL、存储 IO、kernel 版本、batch shape system 优先;确认前不要解释为模型变化 暂停能力结论;必要时停 run 排查 system metrics、profile trace、代码/镜像版本、复跑对比
data 全局 loss 正常但某桶 loss 异常 bucket validation loss、sampling weight、tokenizer/packing、manifest diff、样例抽查 data 优先;再看 tokenizer/packing 和 eval bucket 冻结或下线问题桶;严重时 rollback manifest bucket id、manifest hash、抽样样例、过滤器版本、修复 diff
data / capability 合成数据模板化或错误率升高 teacher/version、prompt、verifier、template n-gram、response length、人工错误率 data:生成器;eval:样例太窄;model:学到格式而非能力 降低 synthetic ratio 或隔离桶;不把格式收益写成推理收益 generator config、verifier 版本、重复率、人工审查记录
capability 通用能力早期大幅回撤 base regression max drawdown、低分桶、语言/领域固定篮子、数据 mix model:LR/训练过长;data:专项比例过高;eval:抽样偏差 触发 guardrail;回滚或降低专项比例 scorecard、失败样例簇、mix curve、rollback 点
capability 目标能力上涨但 guardrail 变坏 目标指标、不可牺牲能力、相邻 checkpoint、错误类型变化 model/data 权衡;确认不是 eval 口径变化 不 promotion;只有 trade-off 被业务接受且可复现才 extend Pareto 曲线、guardrail 阈值、DRI 签字、样例对照
eval Eval 突然大涨/大跌 data_hash、harness_commit、prompt/wrapper、judge、decoding、答案抽取器 eval 优先;用同一 checkpoint 跑新旧 harness diff 冻结能力结论;旧/新 harness 交叉复跑 eval diff、raw outputs、judge 版本、metric 变更说明
eval / data Public benchmark 涨但 private 不涨 contamination report、private holdout、题型相似度、raw output data 污染或 eval 过拟合;也可能 public 太窄 从 primary 指标降权;不能放大 contamination 证据、holdout 使用记录、剔除样本列表
capability / context Needle 好但真实长任务差 长任务 raw output、证据位置、信息密度、不可回答样本、长度分布 eval:needle 过窄;data:缺综合/冲突任务;system:serving 差异 不把 needle 作为主 gate;暂停长训放大 长任务失败簇、证据定位、长度桶分数、serving 配置
capability / context 长上下文训练伤短任务 sequence_length_distribution、短任务回归、packing/padding、短样本占比 data:长样本稀释;model:位置/attention 适应副作用 回滚长度 mix 或恢复短样本比例 长度分布 diff、短任务 scorecard、curriculum 版本
infra / context 离线长上下文可用但线上不可用 serving config、KV cache、chunked prefill、batching、kernel、latency/cost system 优先;模型能力结论暂缓 系统阻断;不发布,不把线上失败记成模型失败 offline/online config diff、线上 raw output、profile
post-train handoff Post-train 后收益消失 paired protocol、seed、SFT/RL 数据版本、checkpoint selection、训练曲线 AUC post-train recipe 或 base eval 假阳性;也可能 mid-train 不稳 不放大;重复 paired run 或回到目标数据 recipe hash、seed、A/B 曲线、post-train raw outputs
post-train handoff Reward hacking 增加 RL raw output、reward/verifier、拒答/安全、格式依赖、CoT 模板 post-train reward 漏洞;mid-train 可能提前固化格式 降低行为格式数据;修 reward/verifier 后重跑 reward 版本、hacking 样例、行为数据比例、修复记录
infra Checkpoint resume 不连续 resume 前后 loss、optimizer/RNG、data cursor、checkpoint hash、训练代码版本 system/checkpoint 优先;排除后再看 data/model rollback;replay resume 测试通过后新建 run checkpoint lineage、RNG/data cursor、replay log、代码 hash
eval Checkpoint 间结论反复 相邻 checkpoint、CI/方差、多 seed、selection policy、raw outputs eval 噪声或 selection 偏差;model 真实波动需二次验证 不用单点决策;报告曲线而非最好点 selection policy、完整曲线、置信区间、失败样例

7.3 数据事故 runbook

数据事故的第一原则是隔离版本,不是现场修补。任何过滤器、生成器、去重、采样权重、tokenizer 或 packing 变化,都必须产生新的 data_version 和 manifest hash。

步骤 动作 退出条件
1. 冻结 保存旧 manifest、采样权重、生成器配置、过滤器版本和抽样样例 能复现事故前的数据输入
2. Diff 对比 token 数、语言/领域/长度分布、重复率、污染率、坏样本率 解释至少一个异常分桶
3. 隔离 下线或降权问题桶,保留通用保真桶和 guardrail eval 问题桶不再进入继续训练
4. 复跑 用固定 checkpoint 复跑 data validation 和 linked eval 证明修复来自数据,而不是 eval 改口径
5. 复盘 更新数据桶准入卡和 prevention_rule 新 data_version 才能进入下一次训练

如果污染、license 或隐私边界无法解释清楚,应直接 kill 该数据版本。对 mid-train 来说,“可能污染但分数好”不是可接受状态。

7.4 训练事故 runbook

训练事故优先保护可恢复性。发现 numerical 或 resume 类问题后,不要先调学习率碰运气;先确认 checkpoint、optimizer、RNG、data cursor 和代码版本是否能 replay。

步骤 动作 退出条件
1. 停表 标记 incident_id,冻结当前 run,不再写入能力结论 现场日志和状态完整
2. 回放 从最近健康 checkpoint 回放短窗口,确认是否可复现 能复现则定位,不能复现则记录系统不确定性
3. 单变量修复 每次只改一个变量:LR、clip、precision、bad batch、resume 逻辑之一 修复与指标变化可归因
4. 回归 重新跑分桶 loss、base regression 和关键 target eval 没有新增 guardrail 事故
5. 决策 kill / retry / rollback / extend / promote 有 DRI 签字和证据路径

训练继续的最低条件是:数值稳定、系统 replay 成功、数据 manifest 未漂移、eval harness 未漂移。缺任一项,只能 retry 或 rollback,不能 promote。

7.5 评估事故 runbook

评估事故最常见的错误,是把工具变化当成能力变化。只要 prompt、wrapper、judge、答案抽取器、decoding、样本集或 metric 任一项变化,旧分数和新分数都不能直接横比。

排查矩阵 旧 checkpoint 新 checkpoint
旧 harness 复现历史基线 看模型真实增量
新 harness 看工具口径变化 只作为新口径结果

只有当“旧 harness 下新 checkpoint 变好”和“新 harness 下旧 checkpoint 没有同等变好”同时成立,才可以把收益初步归因给模型。若 private holdout 被反复查看或调参,应降级为 dev-private,并重新建立 sealed-private 或 final-blind。

7.6 Post-train 接力事故

Mid-train 的收益如果在 post-train 后消失,先不要简单判定 mid-train 无效。需要同时排查四件事:

排查项 可能问题 处理
recipe 是否冻结 SFT/RL 数据、seed、预算、reward/verifier、decoding 变化 重跑 paired protocol
selection 是否偏差 只挑了 post-train 最好点或 base 最好点 用固定 checkpoint selection policy
能力是否被覆盖 SFT 风格数据压过了目标能力,RL 奖励偏向短答或格式 若调整 post-train 数据/奖励,必须新建 experiment_id 或 paired_protocol_version 后再测 readiness
收益是否是假阳性 base eval 污染、public 过拟合、样例太窄 回到第 6 章 eval registry 和第 7.5 节

如果 post-train 接力连续两轮在 paired protocol 下失败,且 base 端收益只存在于 public benchmark 或单个 seed,应 kill 该 mid-train 方向;如果 base 端收益稳定但被 SFT/RL 覆盖,则把结论写成“post-train handoff 未打通”,不要写成“mid-train 无收益”。为排查覆盖问题而调整 SFT/RL 数据、reward、verifier、预算或 seed 时,旧 paired protocol 的结论不能继续作为 mid-train 收益证据,只能作为诊断线索。

7.7 事故复盘模板

每个警报或阻断级事故都要有一条复盘记录。复盘不是追责文档,而是让下一次训练能少踩同一个坑。

incident_id:
experiment_id:
incident_type: numerical | data | eval | infra | capability | post-train handoff
severity: observation | alert | blocker
first_detected_at:
affected_checkpoint:
symptom:
root_cause: confirmed | suspected | unresolved
changed_variables:
rollback_point:
evidence_paths:
four_layer_isolation:
  system_replay:
  data_manifest_diff:
  eval_harness_diff:
  model_checkpoint_diff:
decision: kill | retry | rollback | extend | promote | unresolved
prevention_rule:
owner:
reviewed_by:

如果 root_cause 仍是 unresolved,事故可以关闭训练动作,但不能关闭认知结论:文档中只能写“未归因事故,已隔离”,不能写“模型能力退化”或“某数据桶有效”。

8. 给新团队的 90 天路线图

这张路线图是参考节奏,不是日历承诺。进入下一阶段应由 Gate 0-5 决定,而不是由第几天决定。

8.0 Gate dashboard:每一阶段只回答一个决策问题

90 天路线图的用途不是排期,而是把项目从“想训练”推进到“证据足够再训练”。每个 gate 只回答一个问题:

Gate 决策问题 必备证据 Blocker Owner Next action
Gate 0 这个目标是否真的需要 mid-train charter、不可牺牲能力、v1 eval registry、v1 post-train paired protocol 目标可由 SFT/RAG/产品逻辑解决;eval 或 holdout 未冻结 Model Lead go / no-go charter
Gate 1 数据是否可以进入实验 data manifest/hash、license、污染检查、抽样审查、linked eval 数据来源不清、合成生成器读过 eval、holdout 泄漏 Data DRI data readiness memo
Gate 2 proxy ablation 是否排除了坏方向 目标收益、通用回撤、两个 scale 或 target 短程信号、失败样例簇 只有 public benchmark 涨;合成数据模板化;proxy 结论不稳定 Eval DRI ablation decision memo
Gate 3 主模型短程是否值得继续 checkpoint 曲线、分桶 loss、scorecard、事故记录、Pareto 结果 NaN/loss spike、resume 不连续、guardrail 越线、长上下文伤短任务 Training Infra DRI extend / rollback / kill
Gate 4 收益能否被 post-train 保留 paired SFT/RL 结果、seed、AUC、raw outputs、reward/safety 回归 base 涨但 post-train 后消失;recipe 中途改变;reward hacking 增加 Post-train DRI readiness report
Gate 5 是否进入放大训练或收缩重做 go/no-go memo、model registry、rollback checkpoint、成本收益判断 收益来自污染/窄评估/单 seed;事故未归因;无法解释回撤 Decision owner scale / shrink / stop

只要某个 gate 的证据不完整,就不要用“再训一点看看”绕过去。Mid-train 的项目成本高,真正的节奏控制来自 gate,而不是日历。

每个 gate 的 dashboard 记录还必须包含 status、owner、evidence_path、version_hash、stale_after 和 next_action。没有证据路径的绿色状态,应视为黄色。

第 0-14 天:定义目标和评估

对应 Gate 0,主责为 Model Lead、Eval DRI 和 Post-train DRI;本阶段的决策会议只回答一个问题:这个目标是否真的需要 mid-train。

交付物:

Go/no-go:

第 15-35 天:数据和小模型 ablation

对应 Gate 1-2,主责为 Data DRI 和 Eval DRI;所有实验必须登记到 4.6 的实验台账。

交付物:

Go/no-go:

第 36-60 天:主模型短程 mid-train

对应 Gate 3,主责为 Training Infra DRI、Eval DRI 和 Model Lead;本阶段必须先定义 kill switch,再启动训练。

交付物:

Go/no-go:

第 61-75 天:post-train 接力验证

对应 Gate 4,主责为 Post-train DRI 和 Eval DRI;如果 post-train recipe 在本阶段改变,mid-train 结论应视为无效或重新标记实验 ID。

交付物:

Go/no-go:

第 76-90 天:放大或收缩决策

对应 Gate 5,主责为 Decision owner、Model Lead 和 Release owner;本阶段不是自动放大,而是决定继续、收缩、重做数据或停止。

交付物:

Go/no-go:

9. 可执行 checklist

9.0 最小交付包与交付物索引

如果团队不想一开始就维护完整文档体系,至少要有下面 8 个交付物。缺任意一个,mid-train 结论都很难复盘。

交付物 Owner 模板位置 冻结 Gate 用在哪个会议
Mid-train charter Model Lead 0.2 / 8.0 Gate 0 启动会、go/no-go 会
Data manifest Data DRI 4.2.1 / 9.1 Gate 1 数据 readiness 会、事故复盘
Eval registry Eval DRI 6.1 / 9.3 Gate 0-1 eval freeze 会、checkpoint review
Training runbook Training Infra DRI 4.3.1 / 5 / 7.4 Gate 3 train launch 会、事故处理
Experiment ledger Model Lead / PM 4.6 Gate 0 后持续更新 每周实验例会
Checkpoint scorecard Eval DRI 6.7 Gate 3-5 checkpoint review、放大决策
Post-train readiness report Post-train DRI 6.6 / 7.6 Gate 4 post-train handoff 会
Incident review 事故 owner 7.7 警报/阻断事故后 事故复盘、prevention review
Go/no-go memo Decision owner 8.0 / 9.4 Gate 5 放大、收缩或停止决策

Checklist 的作用是验收这些交付物,不是制造流程负担。对新团队来说,先把最小交付包跑通,比追求完美平台更重要。

每个 checklist 项都不应只打勾,还要绑定最小审计字段:

owner:
evidence_path:
version_hash:
stale_after:
gate_role: primary | guardrail | diagnostic
status: green | yellow | red

如果一项检查没有 evidence_path 或 version_hash,它最多只能算 yellow,不能作为 gate 通过证据。

9.1 数据 checklist

9.2 训练 checklist

9.3 评估 checklist

9.4 组织 checklist

10. 对有 post-train 经验的基模团队的特别提醒

第一,不要用 SFT 的心智做 mid-train。Mid-train 数据可以包含 QA、CoT、代码任务,但其目标不是让模型学会产品回答格式,而是改变能力分布。

第二,不要让 RL 背所有锅。如果 base model 没有足够的数学、代码、长上下文和自我纠错 substrate,RL 很可能只学到表面搜索或冗长推理。

第三,不要只追榜。Mid-train 的真实收益要在私有任务、真实产品任务和 post-train 接力中同时成立。

第四,不要一开始就追 1M context。对多数团队,先把 32K/128K 做到可靠,比展示极长 context 更实际。

第五,不要忽视数据工程。Mid-train 项目中,训练代码常常不是瓶颈,数据 lineage、污染控制、分桶 eval 和实验纪律才是。

11. 第一轮搜索空间:示例搜索网格,不可直接作为默认 mix

这一章是工作样例,不是配方。它的用途是帮助第一次做 mid-train 的团队把数据、训练、评估和 post-train 接力串成一个最小证据链。

如果团队已有一个可用 base model 和稳定 post-train pipeline,建议第一轮不要做大而全,先做一个“能力型 mid-train + post-train 接力”的最小闭环。以下比例不是推荐 recipe,而是用于启动 ablation 的搜索空间;不同模型规模、预训练历史、目标语言和产品任务会显著改变最优 mix,主训练前必须通过 proxy scale 和短程主模型验证。

这里的“最小闭环”不是最小训练配方,而是用尽可能小的实验代价验证数据、训练、评估和 post-train 接力是否能形成可解释结论。下列比例和 token 区间只用于设计 ablation 变量,不得作为默认 mix、默认 LR 或默认预算。

只有在 base checkpoint、目标能力、不可牺牲能力、eval registry、data manifest 和 post-train paired protocol 已冻结后,下面的区间才可作为 ablation 变量;否则不应进入训练配置。

目标:

数据 mix 搜索空间(bucket sensitivity sweep 轴):

这些 bucket 轴只用于第一轮单变量或少变量搜索,不是要同时满足的归一化比例表。实际 mix 必须通过小模型和短程主模型实验决定。

这个起点不是 OLMo 2、Qwen3、Llama 3 或 Phi-4 的复刻配方,也不是从公开报告反推出的最优比例。它只是一组便于新团队暴露数据冲突、遗忘风险和合成数据边界的搜索网格。

主训练前必须有 mix sensitivity curve,而不是只选择一个看起来最好的点。至少回答:

第一轮不要只跑一个 mix。更好的做法是保留一个 control mix,再围绕单一变量做小矩阵:

变体 改什么 不改什么 目的
Control 低风险通用保真 mix LR、token budget、context length 建立回归底线
Math/STEM up 只提高数学/STEM 代码、通用、LR 不变 判断推理注入收益和遗忘代价
Code/FIM up 只提高代码/FIM 数学、通用、LR 不变 判断代码能力和普通生成漂移
Synthetic cap 限制 synthetic 上限 其它桶不变 判断合成数据是否带来模板化
General retain 提高高质量通用数据 目标桶不变 判断通用保真能否降低回撤
LR lower 只降低 LR 数据 mix 不变 区分数据问题和优化问题

每个变体只能改 1-2 个主变量。边训边改 mix、过滤器、LR 或 eval 版本,会让实验无法解释。

通过 Gate 2 后的主模型短程验证起点:

评估起点:

如果这轮闭环没有稳定收益,不要急着扩大 token budget。先回到数据和学习率。

12. 资料地图

本章不是文献综述的尾注,而是读者复核本文结论的路线图。建议团队把资料分成三类读:先读一手报告确认事实边界,再读综述建立 taxonomy,最后读受控实验形成内部 ablation 假设。

12.1 一手技术报告:事实底座

资料 原文可优先核查 本文如何使用 不能推出什么
OLMo 2 Technical Report: https://arxiv.org/abs/2501.00656 报告明确使用 mid-training 分层,并披露数据混合、mid-training、post-training 和开放工件 狭义 mid-training 的公开范式;学习阶段命名、数据 lineage 和透明实验台账 不能推出 OLMo 2 的数据比例适合中文、多语、agentic coding 或闭源产品模型
Qwen3 Technical Report: https://arxiv.org/abs/2505.09388 三阶段 pre-training:通用知识、STEM/代码/推理增强、长上下文;以及推理外推/部署技术 工程上归入 capability shaping + context adaptation 的 mid-train-like 案例 不能把 Qwen3 原报告改称为 mid-training,也不能反推完整数据配比
DeepSeek-V3 Technical Report: https://arxiv.org/abs/2412.19437 14.8T token 预训练、32K/128K context extension,以及 MLA/MoE/MTP 等架构与训练协同 说明长上下文扩展必须和架构、系统、训练稳定性一起看 不能把 context extension 孤立成普通数据继续训练 recipe
Phi-4 Technical Report: https://arxiv.org/abs/2412.08905 synthetic data for pretraining and midtraining;midtraining 中 4K -> 16K context 扩展,约 250B tokens 说明合成数据能成为训练策略核心,同时提醒显式 midtraining 主要承担 context 扩展 不能把 Phi-4 简化成“reasoning mid-train 只靠合成 CoT”,也不能精确归因各部分贡献
Qwen2.5-1M Technical Report: https://arxiv.org/abs/2501.15383 progressive long-context pre-training 到 256K、长上下文 post-training、DCA/YaRN 外推、稀疏注意力和 chunked prefill 部署优化 拆清训练扩展、1M 推理外推和部署优化的边界 不能把 1M context 写成“直接 mid-train 到 1M”,也不能说训练不重要
The Llama 3 Herd of Models: https://arxiv.org/abs/2407.21783 405B initial pre-training 约 15.6T tokens;long-context pre-training 约 800B tokens 到 128K;最后 40M tokens annealing 保守参考:continued pre-training、long-context 和 annealing 要拆成可观测阶段 不能把 Llama 3 的 continued pre-training 直接等同于它自己命名的 mid-training,也不能迁移为小团队默认预算

12.2 综述和受控实证研究:假设来源

资料 主要用途 使用边界
Mid-Training of Large Language Models: A Survey: https://arxiv.org/abs/2510.06826 建立 mid-training taxonomy、任务类型和资料入口 综述是二手归纳,不能替代原报告事实核查
A Survey on LLM Mid-training: https://arxiv.org/abs/2510.23081 对比不同 mid-training 目标、数据形态和评估口径 taxonomy 可借鉴,具体配方仍需内部实验验证
PRISM: Demystifying Retention and Interaction in Mid-Training: https://arxiv.org/abs/2603.17074 设计 retention / interaction / capability transfer 的受控 ablation 受控实验的模型规模、数据和任务分布有限,不能直接外推为主模型预算
On the Interplay of Pre-Training, Mid-Training, and RL on Reasoning Language Models: https://arxiv.org/abs/2512.07783 建立“RL 是否依赖 pre/mid 阶段能力边界”的实验假设 reasoning/RL 结论尤其要保守,需用团队自己的 RLVR/SFT paired protocol 验证

12.3 Claim / source matrix

Claim 正文位置 最强支撑 支持强度 建议措辞
狭义 mid-training 可以独立管理 0 / 1 / 3.1 / 4.6 OLMo 2 明确使用 mid-training;Phi-4 使用 pretraining/midtraining/post-training 分层 强:报告事实 + 工程归纳 “公开报告中已有把 mid-training 独立成阶段的样本;团队可借鉴其治理方式。”
许多案例只是 mid-train-like 0 / 2 / 3 Qwen3、DeepSeek-V3、Llama 3、Qwen2.5-1M 的原报告术语 强:报告事实 “本文在工程意义上类比,不改写原报告术语。”
Qwen3 有 General / Reasoning / Long Context 三个 pre-training stage 3.2 / 12.1 Qwen3 Technical Report 强:报告事实 “Qwen3 原文称 Pre-training Stage,不称 mid-training。”
DeepSeek-V3 的长上下文扩展是 14.8T base pre-training 后两段 1000 steps 3.3 / 12.1 DeepSeek-V3 Technical Report 强:报告事实 “支持阶段化 context extension;不支持反推通用数据 mix。”
Qwen2.5-1M 的 1M 能力来自训练、post-training、外推和部署协同 3.5 / 12.1 Qwen2.5-1M Technical Report 强:报告事实 + 工程归纳 “不是直接训练到 1M,也不是纯推理技巧。”
Llama 3 的 long-context 和 annealing 可作为 late-stage 参考 3.6 / 12.1 Llama 3 Technical Report 强:报告事实 “405B 规模样本,不是小团队预算建议。”
合成数据有价值,但必须治理模板化、污染和 teacher 错误 3.4 / 4.2.2 / 12.1 Phi-4、Qwen3,以及合成数据相关受控研究 中强:报告事实 + 论文归纳 “合成数据是可验证能力放大器,不是低成本 token 替代品。”
Reasoning mid-train 更像提高 RL substrate 的工程假设 2.4 / 3.7 / 6.6 PRISM、pre/mid/RL interplay 论文 中:论文归纳 + 待验证假设 “需用团队自己的 paired RL/SFT protocol 验证。”
Public benchmark 上涨不足以证明 mid-train 成功 6 / 7 / 8 多个公开报告的评估实践 + 本文工程治理 中:工程归纳 “必须看 private holdout、raw output、污染和 post-train readiness。”
公开报告通常不能给出可复制 recipe 4 / 11 / 12 一手报告共同体现关键细节不完整公开 中:工程归纳 “本文 recipe 表是搜索空间和质量门,不是公开模型复刻配方。”

12.4 推荐阅读顺序

  1. 先读 OLMo 2:理解 mid-training 作为独立阶段时,文档、数据、checkpoint 和 post-training 如何分层。
  2. 再读 Qwen3:理解“通用 -> 能力增强 -> 长上下文”的阶段设计,同时注意原报告用的是 pre-training stages。
  3. 再读 DeepSeek-V3 和 Qwen2.5-1M:理解长上下文扩展不能脱离架构、推理外推和 serving 系统。
  4. 再读 Phi-4:理解合成数据的价值与边界,尤其不要把 synthetic-heavy strategy 简化成单一 reasoning mid-train。
  5. 再读 Llama 3:理解 continued pre-training、long-context pre-training 和 annealing 的保守路线。
  6. 最后读 survey、PRISM 和 pre/mid/RL 论文:把机制假设转成团队自己的 ablation,而不是把论文结论直接写进训练决策。

13. Go/no-go memo 最小模板

具体启动动作见 0.2,交付物索引见 9.0。正文最后只保留一个决策模板:每一次 go/no-go 都必须能追到证据路径、版本和 owner。

decision_id:
gate:
status: green | yellow | red
decision: go | no-go | retry | rollback | kill
target_capability:
non_regression_guardrails:
evidence_paths:
version_hash:
stale_after:
data_manifest_hash:
eval_registry_version:
post_train_protocol_version:
checkpoint_or_run_id:
known_risks:
owner:
signoff:
reviewed_by:
next_action:

一个成熟的 mid-train 项目不是“训练跑起来”才开始,而是在第一个 checkpoint 产生前就已经能回答:目标是什么、不能牺牲什么、证据在哪里、谁来判定继续或停止。

附录 A:审稿意见吸收记录

技术专家挑刺后,作者已做以下修订:

编辑挑刺后,作者已做以下修订:

第一次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

第二次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

第三次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

第四次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

第五次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

第六次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

第七次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

第八次定时优化中,作者吸收技术评审和编辑评审后做了以下修订:

附录 B:最终质量说明

本文当前可作为基模团队启动 mid-train 项目的内部手册使用,但仍不是训练配方,也不是对公开模型的复刻说明。

维度 最终状态 剩余边界
结构 已形成“使用导航 -> 定义边界 -> 证据地图 -> 实验设计 -> 工程检查 -> eval registry -> runbook -> roadmap -> checklist -> source map -> go/no-go memo”的闭环 篇幅偏长,适合作为内部手册;若公开发布,应另行压缩成短文
事实限定 区分报告事实、论文归纳、工程归纳和待验证假设,并在第 12 章维护 claim/source matrix 使用前仍应复核一手报告和论文最新版本,尤其是 2026 年后的新资料
执行路线 Gate 0-5 dashboard、最小交付包、scorecard、incident runbook 和 go/no-go memo 已能支撑项目启动会 阈值、预算、模型规模和验收线必须由团队按自身模型与产品目标设定
Recipe 边界 第 11 章已降级为 sensitivity sweep 样例,避免被复制成默认 mix、LR 或 token budget 任何放大训练前仍需内部 ablation、污染检查、holdout 管理和 post-train paired protocol 共同验证
风险控制 已覆盖数据、训练、eval、infra、capability、post-train handoff 六类事故,并要求证据路径与版本 hash 需要接入团队真实训练平台、eval 系统、model registry 和权限审计后才算工程落地
审稿吸收 八轮技术评审和编辑评审意见已记录在附录 A,核心分歧均已吸收入正文 后续若新增案例或论文,应继续用同一套 claim/source matrix 和 gate 口径维护