Tech Analysis · 2026-06-03

Mid-training:预训练和后训练之间真正发生了什么

Niels Rogge 的短帖不是在发明一个漂亮术语,而是在提醒:大模型训练已经不能只用 pre-training / post-training 两段式理解。Mid-training 是把通用 base model 继续推向高价值能力分布的中间层,让后续 SFT、DPO 或 RL 不必在贫弱底座上硬雕行为。

2026原帖发布于 2026-06-02,指向 Papers with Code 方法页。
10TPhi-4 预训练量级约 10T tokens,是宽分布底座。
250BPhi-4 mid-training 量级约 250B tokens,用于长上下文扩展。
8BPhi-4 SFT 量级约 8B tokens,进入更明确的行为对齐层。
01 / Takeaway

核心判断

这条帖子的价值不在于“mid-training”这个名字,而在于它把训练流水线里长期混在一起的两件事拆开了:能力增强行为对齐。预训练让模型拥有宽泛的语言和世界统计,后训练让模型学会以人类偏好的方式回答;mid-training 则把通用 base model 继续压向某个高价值能力分布,例如长上下文、代码、数学、多语言、领域知识或 agent 轨迹。

Niels Rogge 给出的定义足够干净:mid-training 位于 pre-training 与 post-training 之间,通常继续使用接近预训练的目标,但数据混合更小、更高质量、更有目标性。这里最关键的是“通常保留 pre-training-like objective”。这使它和 SFT、DPO、RLHF、RLVR 这类直接塑造回答行为的后训练阶段拉开了边界。

Papers with Code Mid-training 方法页截图,左侧是定义,右侧是预训练、mid-training、SFT、DPO 的 token 金字塔示意
Papers with Code 的 Mid-training 方法页截图:右侧 token 金字塔强调数据规模从预训练到后训练逐层缩小,但目标性和质量要求逐层提高。

我的结论:判断一个训练阶段是否有 mid-training 的实质,不应该只看它是否发生在 pre-training 之后,而要看它是否在用较大规模、高目标性数据改变模型的能力先验。若只是 prompt-response 模仿或 preference pair 对齐,那更接近 post-training;若是在大规模目标分布上继续语言建模,让参数吸收任务结构,那才是这里讨论的 mid-training。

02 / Stages

阶段划分不是营销词差异

传统三段式说法是 pre-training、SFT、RLHF/DPO。但 2024 之后,这个划分越来越不够用,因为很多能力不是靠最后少量指令数据能补出来的。长上下文需要模型真的经历长序列分布;代码 agent 需要模型见过仓库导航、文件编辑、测试反馈;领域模型需要参数吸收密集术语和事实结构。Mid-training 正是在这些场景里显性化。

阶段 主要目标 典型数据 容易误解的地方
Pre-training 学习宽泛语言、知识、代码和世界统计。 Web、书籍、代码、论文、合成数据等超大混合语料。 不是“低质量阶段”,而是通用能力底座;只是分布很宽。
Mid-training 把 base model 推向目标能力分布。 高质量长文档、领域语料、代码仓库、数学推理、agent 轨迹、长上下文数据。 不是所有中间步骤都算;关键看是否强化能力底座,而非直接塑造偏好行为。
SFT 让模型学会指令、聊天格式和专家示范。 Prompt-response、multi-turn chat、工具调用示范。 SFT 能教格式,但很难凭少量样本补足缺失的底层能力。
DPO / RLHF / RLVR 对齐偏好、安全、奖励和解题策略。 Preference pair、reward signal、verifier 标注、环境回报。 RL 能收敛策略,但如果 base 能力不足,奖励会很稀疏且训练昂贵。

所以,那条回复里“这听起来像 post-training”的质疑并不荒谬。现实 pipeline 确实会混入 instruction-like 数据、synthetic reasoning 数据和 agent trace 数据。真正的分界线不是文件长什么样,而是训练信号在系统里承担什么作用:是让模型吸收目标分布,还是让模型按偏好输出。

03 / Mechanism

Mid-training 的本质是分布桥接

把 pre-training 看成宽分布,把 post-training 看成任务和偏好分布,mid-training 的作用就是缩短二者之间的距离。它不是在最后修饰答案风格,而是在参数层面改变模型默认会生成、会理解、会探索的行为空间。

1

识别缺口

先判断 base model 哪些能力在原始预训练中覆盖不足:长上下文、低资源语言、法律/医疗/金融领域、代码修改、数学推理或 agent 工具轨迹。

2

构造目标分布

用更小但更高质量的数据混合继续训练。数据可以来自 curated corpus、过滤后的 web、合成推理、长文档、仓库轨迹或可执行环境记录。

3

交给后训练收敛

Mid-training 先把能力底座抬高,后续 SFT、DPO、RL 再把行为压到可交互、可控、可评测的策略形态。

这个机制解释了一个常见现象:同样是“让模型会写代码”,只做 SFT 可能让它学会答案格式和工具调用模板;但 code-heavy mid-training 会改变它对仓库结构、错误日志、API 约定和补丁模式的默认概率。前者像教学生考试格式,后者像让学生长期浸泡在题型、材料和工作流里。

关键 insight:Mid-training 不是为了替代 post-training,而是为了降低 post-training 的难度。后训练负责把策略变得稳定、可控、偏好一致;mid-training 负责让模型进入一个“后训练有东西可塑”的能力区域。

04 / Phi-4

Phi-4 为什么是好例子

Phi-4 的训练流程能把概念讲清楚。它的报告强调,模型提升主要来自数据质量和训练 pipeline,而不是架构大改。预训练阶段约 10T tokens,数据里包含 web、code、acquired sources、synthetic data 和 web rewrites;mid-training 阶段约 250B tokens,用高质量长样本把上下文从 4K 扩到 16K;随后才进入 8B tokens 的 SFT,以及 Pivotal Token DPO 和 Judge-Guided DPO。

这说明 mid-training 的作用不是“让模型变成聊天助手”,而是让模型真的适应长上下文分布。你可以用 SFT 教模型在回答里说“我能处理长文档”,但如果参数没有经历系统的长序列训练,它在跨 16K token 的引用、定位、干扰抑制和依赖维护上不会自然变强。

能力层

Mid-training 改的是能力底座:上下文长度、领域语义、复杂推理、代码结构和工具轨迹先验。

行为层

Post-training 改的是交互策略:怎么回答、什么时候拒答、怎样遵循偏好、怎样在 verifier 或 reward 下收敛。

因此,Phi-4 的例子也能校正一个误解:mid-training 不一定意味着训练规模很小。它比 pre-training 小很多,但 250B tokens 已经远超大多数 instruction tuning 数据;它是“中等规模能力塑形”,不是普通微调。

05 / Agents

Agentic mid-training 为什么会成为重点

最新一波 mid-training 讨论集中在 agent 上,尤其是代码 agent 和 deep research agent。原因很直接:agent 能力不是最终答案,而是状态、动作、观察、修正的过程分布。模型需要学会怎么读仓库、怎么调用工具、怎么处理失败、怎么从测试日志回到补丁,而这些过程不是少量 SFT 样本能稳定覆盖的。

daVinci-Dev 把这个问题定义成 agent-native mid-training:训练数据不是普通静态代码,而是保留 agent 信息流的 contextually-native trajectories,以及来自真实工具调用和测试执行的 environmentally-native trajectories。这个方向的核心不是“把更多代码丢进去”,而是让训练数据更像真实 agent 工作流。

OpenReview 上关于 Agentic Continual Pre-training 的工作也体现了同一趋势:如果直接把通用 base model 拿来做 agent post-training,模型要同时学习长程探索、工具使用、状态维护和专家示范,优化目标会变得拥挤。先用 mid-training 建一个 agentic foundation,再用 SFT/RL 收敛策略,是更自然的分层。

工程启发:如果要训练 agent,不要只保存最终成功答案。更有价值的是中间状态、工具返回、失败路径、测试日志、修复尝试和环境反馈。Agent 的核心能力不是“知道答案”,而是在不完整状态里推进任务。

06 / Boundaries

术语边界与风险

Mid-training 的危险在于它容易变成筐:凡是在 pre-training 和 post-training 之间发生的事情都往里装。严谨判断时,应追问训练目标、数据规模、数据分布、是否混入 general data、是否控制遗忘、是否和评测集去重,以及后续 post-training 后是否仍有稳定增益。

不是万能补药

如果目标数据质量差,mid-training 会把噪声写进参数;如果领域数据过窄,会牺牲通用能力;如果评测污染没控住,结果会虚高。

不是应用团队默认路线

没有足够大、足够干净、足够可评测的数据时,RAG、工具调用、eval-driven prompt、轻量 SFT 往往更务实。

不是 post-training 的替代

Mid-training 强化能力先验,但不会自动给出安全、偏好、拒答、格式和工具协议的一致行为。

不是只看 token 规模

规模只是条件之一。真正关键的是目标分布是否正确、数据是否去重、curriculum 是否合理、训练后是否可复现增益。

对应用和平台团队来说,比较可靠的判断是:当目标任务离通用 web 分布很远,并且你拥有可治理的大规模目标语料或轨迹时,mid-training 值得进入路线图;如果只是想让模型多知道一些私有事实,优先考虑 RAG;如果只是输出风格不稳定,优先处理 SFT、偏好数据和 eval。

07 / Sources

证据边界与资料索引

本笔记基于 Niels Rogge 原帖、Papers with Code 方法页、Phi-4 技术报告、mid-training 概念综述、distribution bridging 论文、daVinci-Dev 和 Agentic Continual Pre-training 相关材料整理。原帖是概念定义,不是完整论文;因此本文重点放在训练阶段边界、机制解释和工程含义,而不是把原帖逐句复述。

边界说明:不同论文和机构对 mid-training、continued pretraining、supplemental training、agentic CPT 的命名不完全一致。本文按功能划分:大规模目标分布能力塑形归入 mid-training,直接行为对齐归入 post-training。