GLM-4.5 论文解读:全球第一个把推理、编程、Agent 三件事焊死在一起的开源模型
论文:GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models 作者:智谱AI(Zhipu AI) arXiv: 2508.06471 这篇是 2025 年 8 月的技术报告,也是智谱第一次把”ARC”这个概念喊出来——Agentic、Reasoning、Coding,三合一。355B 总参数、32B 激活的 MoE,MIT 协议直接扔出来,12 项基准综合全球前三,开源第一。最让我兴奋的不是分数,是它把推理、编程和 Agent 能力当成一个整体来训练这件事——以前没人这么干过。
一、先说背景:为什么”三合一”是个真问题
过去两年的开源模型有个通病:推理强的不会写代码,写代码的不会调工具,会调工具的推理能力拉胯。你去看各家发布会,模型A在数学上登顶,模型B在编程上屠榜,模型C在Agent上称霸——但没有一个能同时把三件事做到顶级。
举个具体的例子。你想让一个模型帮你修一个 GitHub issue,它需要先推理出 bug 在哪(推理能力),然后写出修复代码(编程能力),接着跑测试验证(Agent 能力),发现没过还得分析错误信息重新修(又是推理+编程+Agent)。这是一条完整的链路,缺了哪一环都不行。
但以前的模型就是”偏科生”。o1 推理很强,但你让它调 API 它就犯迷糊;CodeLlama 写代码不错,但复杂推理一塌糊涂;早期的 function calling 模型工具调得很溜,但遇到需要多步推理的场景就歇菜。
原因很简单:这三种能力对模型的要求几乎是矛盾的。推理要模型”想得多”——花大量 token 在思维链上反复验证;Agent 要模型”动得快”——别废话直接调工具拿结果;编程要模型”写得准”——语法、逻辑、边界条件一个不能错。以前的做法是各练各的,最后拼起来,结果就是互相拖累。你往一个模型里硬塞三种训练目标,它们会打架。
GLM-4.5 的思路完全不同:从预训练阶段就把三种能力当成一个统一目标来优化。它给这个框架起了个名字叫 ARC——Agentic、Reasoning、Coding 的首字母缩写。不是三个独立任务拼在一起,是一个模型天生就为这三件事服务。数据配比、训练课程、奖励设计,全部围绕”ARC 一体化”来做。这在当时是独一份。
二、架构:MoE 但走的是”深而不宽”的路线
基本规格
先摆数字:
- 总参数 355B,每 token 激活约 32B
- 64 层,每层 160 个路由专家 + 1 个共享专家
- 每 token 选 8 个路由专家激活
- 隐藏层维度 5120,96 个注意力头,8 个 KV 头(GQA)
- 上下文长度 128K
对比一下 DeepSeek-V3 的 671B/37B,GLM-4.5 的总参数差不多是一半,但激活参数接近。这意味着什么?意味着 GLM-4.5 选择了”深而不宽”的策略——用更多层、每层更少的专家,而不是一层塞一堆专家。
论文做了消融实验证明这个选择:在相同参数预算下,更深的网络在推理任务上显著优于更宽的网络。这个结论其实有点反直觉——MoE 领域以前的主流是”往宽了堆”,DeepSeek 和 Mixtral 都是这个路子。GLM-4.5 说不对,推理需要的是深度。
无损平衡路由(Lossless Balanced Routing)
MoE 的老大难问题:怎么让专家负载均衡?传统做法是加一个辅助损失函数(auxiliary loss)来强制均衡,但这是有代价的——损失函数本身会干扰主损失,相当于给模型加了个”紧箍咒”。
GLM-4.5 用了一个叫 Lossless Balanced Routing(无损平衡路由) 的方案,配合 Sigmoid 门控。具体来说:
- 门控函数用 Sigmoid 而不是 Softmax。Softmax 天然是竞争性的——你分多了我就少了,这会导致路由不稳定。Sigmoid 是独立的——每个专家有自己的开关,互不干扰。
- Top-8 选择:从 160 个专家里选 8 个最相关的。
- 1 个共享专家(shared expert)永远在线,负责通用知识。
- 负载均衡靠辅助损失,但因为 Sigmoid 的独立性,这个辅助损失的干扰比 Softmax 方案小得多。
论文叫它”无损”,意思是:在保证均衡的前提下,对主任务性能的影响几乎可以忽略。
QK-Norm:给注意力装稳定器
64 层深网络有个经典问题:注意力 logits 随深度爆炸。层数越多,Q 和 K 的点积越大,softmax 就越接近 one-hot,梯度就消失了。
GLM-4.5 的解法很朴素但很有效:对 Query 和 Key 向量做 LayerNorm,也就是 QK-Norm。消融实验显示,去掉 QK-Norm 后训练不稳定,数学性能也掉了。
Partial RoPE:只给一半维度上旋转
位置编码用的是 Partial RoPE——旋转位置编码只应用于注意力头维度的一半。这是 GLM 系列的传统艺能了,好处是长上下文外推更稳定,因为不是所有维度都被位置信息绑架持。
MTP:多 Token 预测,训练提速 5-10%
预训练不是一步预测一个 token,而是加了 MTP(Multi-Token Prediction)模块,一次预测两个未来 token。这个模块有自己独立的路由,但共享专家池。
效果:训练效率提升约 5-10%,同时对代码生成有轻微提升。更重要的是,MTP 模块可以直接当**推测解码(Speculative Decoding)**的草稿模型用——配合 EAGLE 方法,推理速度能加速 2-3 倍。
一个设计,训练和推理两头都占便宜,很划算。
三、训练:三阶段课程学习,15T + 8T 的暴力美学
预训练:15T 通用 + 8T 高价值数据
总预训练语料 23T tokens,其中:
- 15T:通用网页、书籍、对话等
- 8T:高价值代码、数学、科学、推理数据
数据处理流程:
- 质量加权采样:用 fastText 风格的分类器给数据打分,高质量数据被更频繁采样
- 语义去重:基于 embedding 聚类做语义级去重,不只是精确字符串匹配
- 规则和模型过滤:双重过滤
- 领域配比动态调整:训练过程中不同阶段的数据配比会变
消融数据:质量上采样让知识类任务涨了 2-3 个点;语义去重比精确去重多降了一些困惑度,下游任务也更好。
优化器用的是 Muon(Newton-Schulz 步数 5,动量系数 0.95),学习率 cosine decay,batch size 从 16M warm up 到 64M tokens。
代码数据还专门用了 Fill-in-the-Middle(FIM,中间填充) 训练——不只是从左到右生成,还要能补中间。消融显示 FIM 让 HumanEval+ 涨了超过 10 个点。
中期训练:从 4K 到 128K 的渐进式扩展
上下文长度不是一步到位的,而是分阶段从 4K → 128K 逐步扩展。方法是提升 RoPE 基频 + 加入长文档、长代码和书籍。
结果:128K 长度下的困惑度跟短上下文差不多。
仓库级代码训练是另一个亮点:把相关文件按依赖关系拼接,加文件边界标记,还加入了 pull request、issue、commit、diff 数据。消融显示这直接让 SWE-bench 涨了约 12 个点。
另外还加入了早期强模型生成的合成思维链数据,覆盖数学、科学和逻辑。
后训练:三个专家模型 + 交叉蒸馏
后训练的思路很有意思:不是一个模型从头训到尾,而是先训三个领域专家,再合在一起。
三个专家分别是:
- 推理专家:专攻数学、逻辑、竞赛编程
- Agent/工具专家:专攻工具调用、搜索、代码解释器、API、数据库查询、文件操作
- 通用对话专家:日常问答、写作、指令遵循
每个专家独立训练,然后把三个专家的输出混合蒸馏进最终模型。还用了交叉蒸馏——专家之间互相学习。
训练循环包括:RL → 采样成功轨迹 → 替换 SFT 数据 → 重新训练。
推理 RL:难度课程学习(先简单后难),64K 上下文训练。消融显示课程学习让 AIME 涨了约 4 个点。
Agent RL:在沙盒环境里用搜索、代码解释器、API、数据库查询、文件系统操作。工具调用格式错误直接给零分终止。消融显示 Agent RL 让 BFCL 从 ~85 涨到 90.6,TAU-Bench 涨了超过 15 个点。
工具调用格式用 XML 风格字段,减少转义负担。训练数据里还混入了噪声注入——比如超时、错误的工具输出——逼模型学会容错。
RL 框架:用的是智谱自研的 Slime,支持 PPO 和 GRPO。奖励来源包括规则、代码执行结果、API 返回、检索校验、人类偏好和模型评判。
Thinking/Non-thinking 双模式
模型支持两种模式:
- Thinking 模式:显式思维链,先推理再回答
- Non-thinking 模式:直接回答,不输出推理过程
训练数据混合了两种模式,模型可以按需切换。简单问题用 Non-thinking 省 token,复杂推理用 Thinking 保质量。
四、性能:12 项测试综合全球前三,开源第一
关键数字摆出来:
| 基准 | 分数 |
|---|---|
| TAU-Bench(Agent) | 70.1% |
| BFCL-v3(函数调用) | 90.6% |
| SWE-bench Verified(软件工程) | 64.2% |
| AIME 2024(数学竞赛) | 91.0% |
| MATH-500 | 97.8% |
| LiveCodeBench(编程) | 62.3% |
12 项测试综合全球第三,开源第一。编码和 Agent 能力接近 Claude-4 Sonnet。Air 版(106B/12B)在部分指标上超过了 Gemini 2.5 Flash 和 Qwen-3 235B。
几个数字值得单独拎出来说:
BFCL-v3 的 90.6% 是什么概念?这是函数调用的成功率——给模型一个自然语言请求和一组可用函数,它要正确选择函数、正确填参数、正确处理返回值。90.6% 意味着 10 次调用里只有不到 1 次出错。这个水平已经可以在生产环境里当 Agent 用了。
AIME 2024 的 91.0% 更夸张。美国数学邀请赛是竞赛级数学,人类选手平均分大概在 30-40%。GLM-4.5 拿 91%,基本是”碾压人类选手”的水平。
TAU-Bench 70.1% 看着不高,但这个基准是测”多轮复杂 Agent 交互”的——不是一次工具调用,是连续十几轮的工具使用+推理+决策。70% 在当时已经是开源模型的天花板了。
这个成绩在 2025 年 8 月的时间节点上,对开源模型来说是碾压级的。更重要的是,它不是靠”偏科”拿到的——不是在某一两个基准上刷到极高然后其他拉胯,是全面均衡地强。这才是 ARC 三合一训练的真正价值。
五、开源与定价:MIT 协议 + 白菜价 API
MIT 协议开源——这是最宽松的开源协议,商用无限制,不需要开放衍生作品的源码。
API 定价:输入 ¥0.8/百万 token,输出 ¥2/百万 token。这个价格放在 355B MoE 这个体量上,基本是成本价了。
收尾:我的一点看法
这篇论文让我最兴奋的不是某个单点技术突破,是**“三合一”这个设计哲学的胜利**。
过去开源社区做模型,基本是”偏科生”思路——数学强就猛练数学,代码强就猛练代码。GLM-4.5 证明了一条不同的路:推理、编程、Agent 这三种能力不是互相排斥的,是互相促进的。推理帮编程想清楚再动手,编程帮 Agent 精确执行,Agent 帮推理验证假设。当你在预训练阶段就把三者当统一目标来优化,效果是 1+1+1>3 的。
第二个让我佩服的点是架构上的”反主流”。当所有人都在堆宽 MoE 的时候,GLM-4.5 选了”深而不宽”——64 层、每层 160 个专家、只激活 8 个。消融实验证明这个选择在推理上有实打实的优势。这种”大家都往东我往西,而且证明我是对的”的做法,需要勇气也需要实力。
第三个值得说的是训练管线的工程化程度。三个专家模型分别训练再蒸馏合并、Slime 异步 RL 框架、难度课程学习、噪声注入——这些不是论文里画大饼的 idea,是实打实跑出来的工程。特别是 Agent RL 那部分,在沙盒里用真实工具训练、格式错误直接零分——这种”不给活路”的训练方式才能逼出真正可靠的 Agent 行为。
当然也有不足。128K 上下文在 2025 年下半年已经不算长了,DeepSeek-V3.2 和 Gemini 都在往 1M 走。SWE-bench 64.2% 虽然不错但离顶级闭源还有距离。而且 355B 总参数对私有化部署来说门槛还是高了——虽然有 Air 版,但 Air 版的 Agent 能力明显弱于完整版。
但瑕不掩瑜。GLM-4.5 是 2025 年开源模型的一个里程碑:它证明了开源模型可以在推理+编程+Agent 三个维度同时达到准顶级水平,而且用 MIT 协议毫无保留地开放了。这个信号比任何单一跑分都重要。
附:核心数据速查
模型规格
| 指标 | 数值 |
|---|---|
| 总参数 | 355B |
| 激活参数 | ~32B |
| 架构 | MoE,64 层,160 专家/层,Top-8 + 1 共享 |
| 上下文 | 128K |
| 注意力头 | 96 Q / 8 KV(GQA) |
| 隐藏维度 | 5120 |
| 协议 | MIT |
GLM-4.5-Air 规格
| 指标 | 数值 |
|---|---|
| 总参数 | 106B |
| 激活参数 | ~12B |
| 层数 | 48 |
| 专家 | 128/层,Top-8 + 1 共享 |
| 隐藏维度 | 3584 |
训练数据
| 阶段 | 数据量 | 内容 |
|---|---|---|
| 预训练通用 | 15T tokens | 网页、书籍、对话 |
| 预训练高价值 | 8T tokens | 代码、数学、科学、推理 |
| 中期训练 | 4K→128K 渐进扩展 | 长文档、仓库级代码、合成 CoT |
| 后训练 | 三专家蒸馏 + RL | 推理/Agent/通用 |
关键消融数据
| 消融项 | 效果 |
|---|---|
| 深 > 宽(同参数预算) | 推理显著提升 |
| QK-Norm | 去掉后训练不稳、数学掉分 |
| MTP 多 token 预测 | 训练效率 +5-10%,代码微涨 |
| FIM 中间填充 | HumanEval+ 涨 10+ 点 |
| 仓库级数据 | SWE-bench 涨 ~12 点 |
| 课程推理 RL | AIME 涨 ~4 点 |
| Agent RL | BFCL ~85→90.6,TAU-Bench +15 |
| 质量上采样 | 知识任务 +2-3 点 |
性能成绩
| 基准 | GLM-4.5 | 备注 |
|---|---|---|
| AIME 2024 | 91.0% | 数学竞赛 |
| MATH-500 | 97.8% | |
| LiveCodeBench | 62.3% | |
| SWE-bench Verified | 64.2% | |
| BFCL-v3 | 90.6% | 函数调用 |
| TAU-Bench | 70.1% | Agent |
| 综合排名 | 全球第3,开源第1 | 12 项基准 |
API 定价
| 方向 | 价格 |
|---|---|
| 输入 | ¥0.8/百万 token |
| 输出 | ¥2/百万 token |
关键概念清单
- ARC = Agentic, Reasoning, Coding(智能体、推理、编程三合一)
- MoE = Mixture of Experts(混合专家模型)
- Lossless Balanced Routing = 无损平衡路由(Sigmoid 门控 + Top-8 选择)
- Sigmoid 门控 = 独立开关式路由,非竞争性
- QK-Norm = 对 Query/Key 做 LayerNorm 稳定注意力
- Partial RoPE = 只对一半头维度做旋转位置编码
- MTP = Multi-Token Prediction(多 token 预测)
- EAGLE = 推测解码方法(配合 MTP 实现 2-3x 加速)
- GQA = Grouped Query Attention(分组查询注意力)
- FIM = Fill-in-the-Middle(中间填充训练)
- Slime = 智谱自研异步 RL 框架(支持 PPO/GRPO)
- Thinking/Non-thinking = 双模式(显式推理/直接回答)
- SWE-bench = 软件工程基准(修复 GitHub issue)
- TAU-Bench = Agent 任务基准
- BFCL = Berkeley Function Calling Leaderboard(函数调用排行)
- AIME = 美国数学邀请赛
- 课程学习 = Curriculum Learning(先易后难的训练策略)
- 交叉蒸馏 = Cross-distillation(专家间互学)
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





