MAI-Thinking-1
微软造了一台爬坡机
35B 活跃参数 / 1T 总参数 MoE 模型,从零训练,不用蒸馏。核心不是模型本身,而是建造它的整台「机器」。
78 层,Top-8/512 experts
接近竞赛选手水平
8K GB200 GPU 训练
略优,但低于 Opus 4.6
架构拆解
78 层 Transformer,MoE + Dense 交织,三个最不寻常的设计决策
| 维度 | 规格 | 备注 |
|---|---|---|
| 总参数 | ~1T | MoE 稀疏激活 |
| 活跃参数 | 35B | 每 token 只激活 8/512 experts |
| 层数 | 78 | MoE + Dense FFN 交织 |
| 注意力 | GQA · 8 KV heads | 周期性 local/global 5:1 |
| 上下文 | 256K | 渐进扩展 16K→64K→256K |
| 词表 | 128K | o200k_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%。
数据配比最优解是规模的函数
小模型上 STEM-heavy 更好,23B 规模 Code-heavy 反超。不能在小模型上做配比实验然后直接放大。
1.2T 页面 → 4.6B 文档
过滤掉 99.6% 的原始 Web 数据。精确去重 + 模糊去重 + 质量评分 + Gopher 式启发式过滤。
Web 数据管道
GitHub 代码数据
1.26T tokens
最新版文件,按仓库 DFS 排列。去除 node_modules、build 目录、生成文件。
4.5T tokens
最近 10K commits。Patch 作为训练目标,pre-commit 状态作为 loss-masked prefix。
1.19T tokens
PR 标题 + 描述 + 评审 + 补丁。已去污染 SWE-bench。
在预训练数据中,代码比数学更重要。这不是传统直觉——我们通常认为数学训练推理能力,但代码可能更有效,因为代码有明确的执行反馈和结构化的逻辑模式。
RL 爬坡
三个专科模型 + Self-Distillation 整合,从「啥也不会」到「竞赛级选手」
数学竞赛 + 科学推理
GRPO + 自适应熵控制 + outer ratio clip。AIME 2025 达到 97.0%。
265K 真实 SWE 环境
102M PR → 自动构建 Docker → 单元测试评分 → 多轮验证。覆盖 94K 仓库。
多轮对话 + 安全红队
奖励模型 + AI Judge + 可验证奖励 + 词典式奖励塑形。
GRPO 的两个关键修改
积分控制器动态调整熵系数
训练初期高熵(探索),后期低熵(利用)。用反馈控制器自动调节——当前熵低于目标熵就增大系数,反之减小。
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 环境构建流水线
我们从零开始爬坡,没有蒸馏任何第三方的思维链。这给了我们一个干净的视角来观察 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-1 | Sonnet 4.6 | Opus 4.6 | 评价 |
|---|---|---|---|---|
| AIME 2025 | 97.0 | 95.6 | 99.8 | 数学竞赛顶级水平 |
| AIME 2026 | 94.5 | — | — | 更难的版本仍很强 |
| HMMT Feb 2026 | 84.9 | — | — | 高等数学竞赛 |
| GPQA Diamond | 84.2 | — | 96.4 | 与 Opus 差距大 |
| LiveCodeBench v6 | 87.7 | 93.1 | — | 低于 Sonnet |
| SWE-Bench Verified | 53.4 | 72.7 | 72.0 | Agentic 明显短板 |
| SWE-Bench Pro | 52.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/PPO | GRPO + 自适应熵 + outer ratio clip |
| 长 RL 稳定性 | 经常崩溃/遗忘 | Self-distillation(O(1M) traces) |
| SWE 环境 | 手动标注几十个 | 102M PR → 自动构建 → 265K 验证 |
| 长上下文 | 直接训 256K | 渐进扩展,95% NLL 改善在前 10% 步数 |
| MoE 通信 | 标准 all-to-all | LatentMoE 压缩空间路由 |
| 基础设施 | 公有云按需 | 自有集群 + 拓扑调度 + 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、测试、日志),而弱模型只关注怎么改代码。