Microsoft AI Technical Report · 2026-06-02

MAI-Thinking-1
微软造了一台爬坡机

35B 活跃参数 / 1T 总参数 MoE 模型,从零训练,不用蒸馏。核心不是模型本身,而是建造它的整台「机器」。

35B / 1T 活跃/总参数 · MoE 架构
78 层,Top-8/512 experts
97.0% AIME 2025 数学竞赛
接近竞赛选手水平
30T 预训练 token 数
8K GB200 GPU 训练
49% vs 45% 人类评估 vs Sonnet 4.6
略优,但低于 Opus 4.6

架构拆解

78 层 Transformer,MoE + Dense 交织,三个最不寻常的设计决策

维度规格备注
总参数~1TMoE 稀疏激活
活跃参数35B每 token 只激活 8/512 experts
层数78MoE + Dense FFN 交织
注意力GQA · 8 KV heads周期性 local/global 5:1
上下文256K渐进扩展 16K→64K→256K
词表128Ko200k_base
训练30T tokens · 8K GB200自研 YOLO 框架

交织 MoE + Dense

不是每层都是 MoE。Dense 层作为"保底通道",即使路由崩了也能保证信息流动。纯 MoE 的负载均衡和训练稳定性一直是难题,这个设计巧妙地规避了。

LatentMoE 压缩路由

先过共享 down-projection 降维,然后在压缩空间做路由和 expert 计算。all-to-all 通信量大幅减少,代价只是多一个矩阵乘法——GPU 上非常高效。

Zero-init + 0.15 Dropout

注意力 RMSNorm gain 初始化为零,模型起步等价于纯前馈网络。配合 0.15 高 dropout,确保 MoE 路由不因随机初始化失衡,同时防止过拟合。

模型在训练初期等价于一堆纯前馈层的堆叠,MoE 路由不会因为注意力机制的随机初始化而产生不均衡。

Zero-init attention gains make the model initially behave like a stack of feedforward layers, preventing MoE routing imbalance.

预训练:数据工程

30T token,代码占 54.6%,以及 Rank Non-Invariance 的反直觉发现

数据配比

代码 54.6% · STEM 15.8%

代码占了一半以上。代码是最结构化的人类语言,对推理能力培养有独特价值。Web 文本只占 14.9%。

Rank Non-Invariance

数据配比最优解是规模的函数

小模型上 STEM-heavy 更好,23B 规模 Code-heavy 反超。不能在小模型上做配比实验然后直接放大。

数据过滤

1.2T 页面 → 4.6B 文档

过滤掉 99.6% 的原始 Web 数据。精确去重 + 模糊去重 + 质量评分 + Gopher 式启发式过滤。

Web 数据管道

1.2T 原始页面 政策+黑名单过滤 → 794B 精确去重 → 423B 模糊去重 → 73.4B 英文 质量过滤 → 4.6B

GitHub 代码数据

Files

1.26T tokens

最新版文件,按仓库 DFS 排列。去除 node_modules、build 目录、生成文件。

Commits

4.5T tokens

最近 10K commits。Patch 作为训练目标,pre-commit 状态作为 loss-masked prefix。

PRs

1.19T tokens

PR 标题 + 描述 + 评审 + 补丁。已去污染 SWE-bench。

在预训练数据中,代码比数学更重要。这不是传统直觉——我们通常认为数学训练推理能力,但代码可能更有效,因为代码有明确的执行反馈和结构化的逻辑模式。

RL 爬坡

三个专科模型 + Self-Distillation 整合,从「啥也不会」到「竞赛级选手」

STEM 专科

数学竞赛 + 科学推理

GRPO + 自适应熵控制 + outer ratio clip。AIME 2025 达到 97.0%。

Agentic 专科

265K 真实 SWE 环境

102M PR → 自动构建 Docker → 单元测试评分 → 多轮验证。覆盖 94K 仓库。

Helpfulness + Safety

多轮对话 + 安全红队

奖励模型 + AI Judge + 可验证奖励 + 词典式奖励塑形。

GRPO 的两个关键修改

自适应熵控制

积分控制器动态调整熵系数

训练初期高熵(探索),后期低熵(利用)。用反馈控制器自动调节——当前熵低于目标熵就增大系数,反之减小。

Outer Ratio Clip

Trajectory-level 概率比裁剪

标准 GRPO 的 ratio clip 在 per-token 级别。长 trajectory 中即使每个 token 的 ratio 都合理,乘积效应也可能导致整体概率比爆炸。trajectory-level clip 解决了这个问题。

Self-Distillation:长 RL 训练的稳定器

关键发现

  • O(1M) 条 traces 就够了——不需要特别多
  • 后期 traces 更有价值——模型更强时产出的质量更高
  • 解决 catastrophic forgetting——RL 训练时间一长会遗忘早期好策略
  • SFT 固化成功策略——不是"自己教自己",是"把偶然发现的好策略记下来"

如果不做会怎样

  • RL 攀爬数周后崩溃——模型开始遗忘早期学到的策略
  • 性能在长时间训练后下降——不是过拟合,是灾难性遗忘
  • 多个专科之间互相干扰——STEM 能力和 Agentic 能力可能冲突

SWE 环境构建流水线

102M GitHub PRs 过滤 → 4.87M Docker 构建 → 2.08M 单元测试 → 745K 验证 → 265K(94K 仓库)

我们从零开始爬坡,没有蒸馏任何第三方的思维链。这给了我们一个干净的视角来观察 CoT 如何随着模型的增强而演化。

We climb from scratch, without distilling on any third-party chain-of-thoughts. This gives us a clean vantage point for studying how CoTs evolve as the model strengthens.

基准结果

数学推理接近 Opus 4.6,Agentic Coding 是短板

基准MAI-Thinking-1Sonnet 4.6Opus 4.6评价
AIME 202597.095.699.8数学竞赛顶级水平
AIME 202694.5更难的版本仍很强
HMMT Feb 202684.9高等数学竞赛
GPQA Diamond84.296.4与 Opus 差距大
LiveCodeBench v687.793.1低于 Sonnet
SWE-Bench Verified53.472.772.0Agentic 明显短板
SWE-Bench Pro52.8新基准,无对比
人类评估

vs Sonnet 4.6:49% 胜 · 45% 负

人类评估中略优于 Sonnet 4.6。这是一个相对诚实的定位。

差距

vs Opus 4.6:43% 胜 · 52% 负

数学推理很强,但 agentic coding 和通用能力还有差距。GPQA 差距尤为明显。

手搓版 vs 官方版

如果自己在 garage 里训一个推理模型,跟微软的做法差在哪?

环节手搓版(DIY)MAI-Thinking-1
架构标准 Transformer + 纯 MoE交织 MoE+Dense + LatentMoE
数据配比经验法则(web 为主)Scaling Ladder 实验确定,代码 54.6%
RL 算法标准 GRPO/PPOGRPO + 自适应熵 + outer ratio clip
长 RL 稳定性经常崩溃/遗忘Self-distillation(O(1M) traces)
SWE 环境手动标注几十个102M PR → 自动构建 → 265K 验证
长上下文直接训 256K渐进扩展,95% NLL 改善在前 10% 步数
MoE 通信标准 all-to-allLatentMoE 压缩空间路由
基础设施公有云按需自有集群 + 拓扑调度 + Goodput 90%

选型决策框架

你的场景是否关注理由
推理模型训练✅ 必须Self-distillation + GRPO 修改是最实用的经验
MoE 架构设计✅ 必须LatentMoE + 交织 Dense 值得尝试
SWE Agent✅ 推荐265K 环境构建是业内最大规模
选模型来用⚠️ 等一等模型未开放,agentic 能力偏弱
RL for LLM 研究✅ 必须Rank non-invariance + 自适应熵是关键洞察
预训练数据工程✅ 推荐数据配比随规模变化挑战传统直觉

苏格拉底对话

五个关键问题的师徒对话

Q1: 从零训练 vs 蒸馏,值得吗?

学生:微软说从零训练不用蒸馏,代价不是很大吗?

老师:用蒸馏当然更快,但你永远不知道天花板在哪。从零训练让微软可以观察模型推理策略的完整演化。模型会过时,但数据管道、RL 框架、评估体系——这些可以持续复用。报告的标题是 "Building a Hill-Climbing Machine",不是 "A Hill-Climbed Model"。

Q2: 代码占 54.6% 会不会影响自然语言能力?

学生:代码太多了吧?自然语言理解不会受影响吗?

老师:MMLU-Pro 上微软确实只有 74.8%,低于 Sonnet 的 80.2%——自然语言知识能力确实有代价。但 Rank Non-Invariance 的发现意味着代码作为预训练数据的价值被系统性地低估了。代码有独特的性质:逻辑严密、有正确/错误标准、结构化程度高。在你的场景下,数学推理能力和通用知识之间需要权衡。

Q3: Self-Distillation 不会导致退化吗?

学生:用模型自己的输出训练自己,不会退化吗?

老师:关键区别——不是用"所有输出",而是从 RL 过程中 筛选 成功的 rollout traces。而且后期的 traces(模型更强时产出)比前期的更有价值。这不是"自己教自己"的循环论证,而是"把自己偶然发现的好策略固化下来"。

Q4: SWE-Bench 为什么只有 53.4%?

学生:远低于 Claude 的 72%,这是为什么?

老师:这可能反映了 RL 爬坡的一个根本限制——训练数据决定天花板。微软的 265K 环境虽然数量大,但构建过程是高度自动化的。Claude 在 SWE-bench 上的优势,可能部分来自更精细的训练数据设计。

Q5: LatentMoE 会不会丢失信息?

学生:在压缩空间做路由,信息不会丢失吗?

老师:理论上会。但 8K GPU 规模下,通信 >> 计算。down-projection 损失的信息量由压缩比控制,而通信量下降是直接的。微软的消融实验证实了这个 tradeoff 是值得的。

个性化洞察

基于你的技术背景和关注领域,最值得关注的五个发现

洞察 1:Self-Distillation 是长 RL 训练的必备技术

为什么跟你有关:你关注 AI 前沿技术和推理模型训练。O(1M) traces 就够了,后期 traces 更有价值——直接可用的工程参数。

你可以怎么做:做 RL fine-tuning 时,收集成功的 rollout traces 定期 SFT 固化。不需要太多数据,关键是 RL 后期的 traces。

洞察 2:数据配比是模型规模的函数

为什么跟你有关:小模型上的结论不能直接放大。Rank Non-Invariance 挑战了"小模型消融→大模型部署"的通用假设。

你可以怎么做:做小规模实验时,明确标注"结论的适用规模"。不要把小模型消融结论直接用于大模型决策。

洞察 3:代码 > 数学作为推理训练燃料

为什么跟你有关:你做全栈开发和系统架构。代码数据对推理能力的培养可能比数学文本更有效。

你可以怎么做:关注预训练阶段大量使用代码数据的模型。如果你在做代码相关 AI 产品,这些模型可能在推理能力上有结构性优势。

洞察 4:渐进式长上下文扩展

为什么跟你有关:95% 的 NLL 改善在前 1-10% 步数内完成。不需要全程用长序列训练。

你可以怎么做:如果需要长上下文,用短期扩展阶段就够了——大幅降低训练成本。这个"快速适应"现象暗示长上下文能力主要在预训练中就已习得。

洞察 5:Coding Agent 的"证据考古"模式

为什么跟你有关:你日常使用 Claude Code。报告中弱模型(关注编辑操作)和强模型(先做证据考古)的对比直接反映了 coding agent 的质量差异。

你可以怎么做:给模型足够的探索空间——让它先充分理解代码库再动手改。强模型会主动寻找源数据(reverted commit、测试、日志),而弱模型只关注怎么改代码。