GLM-4.5:面向智能体、推理与编码的高效混合专家大模型训练方法解读

1. 模型概览与核心目标

GLM-4.5 是智谱 AI 与清华大学联合发布的开源 混合专家(Mixture-of-Experts, MoE)大语言模型,总参数量 355B,激活参数量仅 32B。其设计目标是统一三大核心能力:

  • Agentic(智能体):与工具、环境交互,完成多步任务;
  • Reasoning(推理):解决数学、科学等复杂逻辑问题;
  • Coding(编码):处理真实软件工程任务(如 GitHub issue 修复)。

“We identify three critical, interconnected capabilities as the measure of a truly generalist model: Agentic abilities for interacting with external tools and the real world; complex Reasoning for solving multi-step problems in domains like mathematics and science; and advanced Coding skills for tackling real-world software engineering tasks.”(§1)

该模型在 SWE-bench Verified 上达到 64.2%,在 AIME 2024 上达到 91.0%,在 TAU-Bench 上达到 70.1%,综合性能位列全球第三(截至 2025 年 7 月)。


2. 数据构造:多阶段、高质量、领域增强

2.1 预训练数据(23T tokens)

数据来源包括网页、社交媒体、书籍、论文、代码仓库,采用精细化分层采样策略:

  1. 网页数据
    • 使用质量评分桶(quality buckets),对高分文档上采样(>3.2 epochs);
    • 使用 SemDedup(基于嵌入的语义去重)去除模板生成的相似页面(MinHash 无法处理)。
【问题1】什么是“上采样”和“SemDedup”?
  • 上采样(Upsampling):指对高质量数据增加其在训练流中的出现频率。例如,一篇被分类为“教育价值高”的文档可能被重复加载 3–5 次,而低质量文档只加载 1 次。这确保模型更频繁地学习高质量知识。
  • SemDedup(Semantic Deduplication):一种基于句子嵌入(sentence embeddings)的去重技术。与传统 MinHash 仅比较文本哈希不同,SemDedup 计算文档的向量表示,然后通过聚类或近邻搜索识别语义相似但文本不同的页面(如多个网站复制同一篇教程)。这对于清除“伪原创”内容至关重要。

“Such webpages cannot be removed by MinHash deduplication. We additionally apply the SemDedup[1] pipeline to remove those similar webpages based on document embeddings.”

  1. 代码数据

    • 来源:GitHub + 代码相关网页;
    • 质量分级:高/中/低三档,仅上采样高质量代码,排除低质量样本;
    • 训练目标:Fill-In-the-Middle(FIM)应用于所有代码;
    • 网页代码提取:两阶段检索(HTML tag + FastText 分类器)+ 专用质量模型评分。
  2. 数学与科学数据

    • 使用 LLM 对文档打分(教育内容占比);
    • 训练小型分类器预测分数,对高分文档上采样

【我认为,这种基于“可学习性”而非单纯来源的数据筛选策略非常先进。传统方法依赖人工规则或通用过滤器,而 GLM-4.5 通过训练轻量级分类器来量化文档价值,更具适应性和效率。】

2.2 中期训练(Mid-Training):领域强化

在预训练后,引入三个专项中期训练阶段,扩展上下文长度并注入领域知识(Figure 3):

  1. Repo-level Code Training(500B tokens):

    • 拼接同一仓库的多个文件,学习跨文件依赖;
    • 包含 GitHub issues/PRs/commits,以 diff 格式组织;
    • 上下文长度从 4K 扩展至 32K
  2. Synthetic Reasoning Data Training(500B tokens):

    • 合成数学、科学、编程竞赛的推理过程;
    • 使用推理模型从 Q&A 对生成 CoT(Chain-of-Thought)。
  3. Long-context & Agent Training(100B tokens):

    • 上采样长文档;
    • 注入大规模合成智能体轨迹(agent trajectories);
    • 上下文长度扩展至 128K
    • 使用 best-fit packing 避免截断推理链或代码仓库。
【问题2】什么是“注入大规模合成智能体轨迹”?
  • 智能体轨迹(Agent Trajectory)是指一个 AI 智能体与外部环境(如搜索引擎、代码编辑器、API)交互的完整过程记录,格式通常为:

    User: 查询北京今天的天气
    Model: <tool_call>search_web(query="北京 今天 天气")</tool_call>
    System: [返回网页摘要]
    Model: 今天北京晴,气温 18°C。
    
  • 合成(Synthetic)意味着这些轨迹并非来自人类操作,而是由自动化流水线生成。例如:

    • 用知识图谱生成需要多跳推理的问题;
    • 人工遮蔽网页部分内容,模拟真实搜索场景;
    • 基于 GitHub PR 构建可执行的单元测试作为评估信号。
  • 注入(Incorporate)指将这些合成轨迹作为训练样本,让模型学习如何规划、调用工具、处理反馈。

“Large-scale synthetic agent trajectories are also incorporated at this stage.”(原文)

【我认为,这是构建 agentic 能力的核心。直接训练模型模仿人类交互成本极高,而合成轨迹能低成本生成海量、多样、可控的训练数据。】


3. 训练方法:从预训练到后训练的全栈优化

3.1 预训练阶段

  • 架构:MoE,89 层,160 个专家,每 token 激活 8 个;
  • 注意力机制
    • Grouped-Query Attention(GQA);
    • 96 个注意力头(5120 hidden dim),远超常规(如 Llama 3 为 64);
    • QK-Norm 稳定 attention logits;
    • RoPE base 从 10,000 调整为 1,000,000(用于 32K+ 上下文)。
  • 优化器Muon(非 embedding/bias/RMSNorm 参数),加速收敛,支持更大 batch;
  • Batch 策略:从 16M tokens 逐步 warmup 至 64M tokens;
  • 序列长度:预训练保持 4K,中期训练逐步扩展至 128K。

3.2 后训练:专家模型迭代 + 自蒸馏

后训练分为两个阶段(§3):

阶段一:专家训练(Expert Training)

分别训练三个专家模型:

  • Reasoning Expert
  • Agent Expert
  • General Chat Expert

使用 Cold Start SFT:小规模带 CoT 的监督数据,为 RL 提供良好初始策略。

阶段二:统一训练(Unified Training)

通过 自蒸馏(self-distillation)将专家能力融合到一个通用模型中:

  • 收集数百万样本,覆盖 reasoning、chat、agentic、长上下文任务;
  • 最大上下文长度 128K
  • 混合训练数据:包含完整 CoT 的样本 + 无 CoT 的快速响应样本 → 实现 混合推理模式(thinking / non-thinking mode)。

“This approach allows the model to operate in both the reflective and immediate response modes, thereby creating a hybrid reasoning model.”(§3.1)

【问题3】如何通过自蒸馏整合专家能力?
  • 自蒸馏(Self-Distillation)是一种知识迁移技术,其中学生模型(student)学习模仿教师模型(teacher)的行为。
  • 在 GLM-4.5 中:
    1. 先独立训练三个专家教师模型(Reasoning/Agent/Chat);
    2. 用这些专家模型对大量未标注 prompt 生成高质量响应(即“打标签”);
    3. 将这些“专家生成的响应”作为监督信号,训练一个统一的学生模型
  • 这使得最终模型既能进行深度推理(继承 Reasoning Expert),又能高效调用工具(继承 Agent Expert),还能流畅对话(继承 Chat Expert)。

【我认为,相比多任务联合训练,自蒸馏能避免“负迁移”——即一个任务的更新损害另一个任务的性能。它允许专家模型充分收敛后再融合,稳定性更高。】

3.3 强化学习(RL):领域定制化策略

(1) 推理 RL(Reasoning RL)
  • 算法:基于 GRPO(Group Relative Policy Optimization),无 KL 散度项
  • 课程学习(Curriculum Learning):
    • 第一阶段:中等难度题(pass@16 > 0);
    • 第二阶段:极难题(pass@8 = 0, pass@512 > 0);
    • 效果:AIME24 准确率从 81.8% → 83.4%(Figure 5)。
  • 损失函数
    • 代码 RL:采用 token-weighted mean loss(而非 sequence-mean),加速收敛(Figure 7 左);
    • 科学 RL:仅使用 专家验证的多选题(expert-verified MCQ),避免噪声数据(Figure 7 右)。
【问题4】什么是“token-weighted mean loss”?
  • 在标准 RL 中,损失通常是整个输出序列的平均奖励(sequence-mean)。
  • Token-weighted mean loss 则是对每个 token 的贡献加权求平均。具体而言:
    L token = 1 N ∑ t = 1 N w t ⋅ r t \mathcal{L}_{\text{token}} = \frac{1}{N} \sum_{t=1}^{N} w_t \cdot r_t Ltoken=N1t=1Nwtrt
    其中 r t r_t rt 是第 t t t 个 token 的局部奖励(如语法正确性), w t w_t wt 是权重(如关键步骤 token 权重更高)。
  • 收益:提供更细粒度的梯度信号,抑制生成冗余或重复内容,并显著加快收敛速度(Figure 7 左显示 LiveCodeBench 准确率更快提升)。
(2) 智能体 RL(Agentic RL)
  • 数据合成
    • Web 搜索:多跳知识图推理 + 人工遮蔽网页内容;
    • 编码任务:GitHub PRs + 可执行单元测试;
    • 所有评估在沙箱环境中运行。
  • 奖励设计
    • Web 搜索:最终答案正确性;
    • 编码:SWE-bench 测试用例通过率;
    • 过程格式惩罚:若工具调用格式错误,轨迹得分为 0。
  • 迭代自蒸馏
    • RL 训练 → 生成新 SFT 数据 → 再 SFT → 再 RL,循环提升性能。
【问题5】什么是“迭代自蒸馏”?
  • 迭代自蒸馏(Iterative Self-Distillation)是一个闭环优化流程:
    1. 用当前模型(cold-start)进行 RL 训练,得到一个性能更强的新模型;
    2. 用这个新模型重新生成 SFT 数据(即“自我标注”);
    3. 用新 SFT 数据进行新一轮监督微调(SFT);
    4. 再次进入 RL 阶段,继续提升。
  • 如此循环,形成“RL → SFT → RL”的螺旋上升过程。
  • 原文明确指出:“Once training has reached a certain step count or plateaued, we apply self-distillation by substituting the original cold-start data with responses generated by the improved model.”

【我认为,这比单轮 RL 更稳定。它利用 SFT 的“平滑”特性吸收 RL 的“跳跃式”更新,防止性能震荡。】

(3) 通用 RL(General RL)
  • 反馈来源:规则 + 人工(RLHF)+ 模型(RLAIF);
  • 函数调用 RL
    • Step-wise RL:每步工具调用需完全匹配(名称、参数、字段),否则 reward=0;
      Reward = { 1 , if FormatCorrect ( a t ) ∧ Match ( a t , a t ∗ ) 0 , otherwise \text{Reward} = \begin{cases} 1, & \text{if FormatCorrect}(a_t) \land \text{Match}(a_t, a_t^*) \\ 0, & \text{otherwise} \end{cases} Reward={1,0,if FormatCorrect(at)Match(at,at)otherwise
    • End-to-end RL:奖励基于任务是否完成,支持动态规划。

【我认为,GLM-4.5 的 RL 设计非常工程化。尤其是“step-wise + end-to-end”双阶段函数调用训练,既保证格式正确性,又提升任务完成能力。但依赖“完全匹配”可能过于严格,现实中工具参数常有等价变体(如 {"city": "Beijing"} vs {"city": "北京市"}),未来可引入语义等价判断。】


4. 关键 Trick 总结与详细展开

1. XML 式函数调用模板(§3.1)

问题背景
在传统基于 JSON 的函数调用格式中,当参数包含代码片段(如 SQL、Python 等)时,大量特殊字符(如引号、反斜杠)需要转义,导致模型需学习冗长且机械的转义序列,显著增加学习负担,尤其对强调工具调用能力的 agentic 模型不利。

解决方案
GLM-4.5 团队提出一种 XML-like 特殊标记模板,将函数名和参数封装在自定义标签中,例如:

<tool_call>get_weather>
<arg_key>city</arg_key><arg_value>Beijing</arg_value>
<arg_key>date</arg_key><arg_value>2024-06-27</arg_value>
<tool_call>

优势

  • 几乎无需对代码内容进行字符转义;
  • 保留原始代码结构,提升可读性与生成准确性;
  • 实验表明该格式 不损害函数调用执行正确率,同时显著降低模型训练难度。

2. 动态采样温度(§3.2)

动机
固定采样温度在强化学习(RL)过程中存在缺陷:初期温度过高引入噪声,后期温度过低导致探索不足、陷入局部最优。

策略

  • 监控 rollout 的平均奖励;
  • 当奖励趋于稳定(即策略收敛),动态提高采样温度以增强探索;
  • 为防止性能下降,在验证集上测试多个温度值,选择“性能下降不超过 1%”的最大可行温度作为下一阶段的采样温度。

效果
在保持稳定性的同时,有效突破性能瓶颈,提升模型在数学、代码等高难度任务上的泛化能力。


3. 单阶段长上下文 RL(§3.2)

传统做法误区
一些研究建议 RL 训练应“逐步延长输出长度”(如从 16K → 32K → 64K),以平滑训练过程。

GLM-4.5 的发现(Figure 6)

  • 若在短上下文(如 16K/32K)阶段进行 RL,模型会 “遗忘”其在 SFT 阶段学到的长上下文生成能力
  • 这种性能损失 不可逆,即使后续切换到 64K 也无法完全恢复;
  • 直接在目标长度(64K)上进行单阶段 RL,可避免能力退化,并持续提升性能。

结论
对于已通过 SFT 掌握长上下文能力的模型,RL 应直接在最大目标长度上进行。


4. 拒绝采样 + 响应缩放(§3.1)

数据筛选策略

  • Prompt 过滤:剔除响应长度排名后 50% 的简单 prompt(通常对应低难度任务),聚焦高挑战性样本;
    • 结果:仅用一半数据,数学/科学任务性能提升 2–4%
  • 响应缩放(Response Scaling):对筛选出的困难 prompt,生成 4 个不同响应,通过多样性提升答案质量;
    • 结果:在此基础上再提升 1–2%

意义
强调“质量优于数量”的 SFT 数据构建原则,通过主动挖掘 hard examples 并增强响应多样性,显著提升模型推理能力。


5. MoE + MTP 层(§2.1)

架构创新

  • MoE(Mixture of Experts):GLM-4.5 为首个 GLM 系列 MoE 模型(355B 总参,32B 激活),兼顾容量与效率;
  • MTP(Multi-Token Prediction)层:在 MoE 架构中额外引入 MTP 层,支持 推测解码(Speculative Decoding)

MTP 作用

  • 允许模型 一次预测多个 token,而非逐 token 生成;
  • 与推测解码结合,可大幅 加速推理过程,尤其在长序列生成场景(如代码、长文档)中收益显著;
  • 论文明确指出 MTP 层被用于 支持高效推理,是推理优化的关键组件。

综上,这五项技巧分别从 函数调用格式设计、RL 训练策略、数据构建方法、推理加速机制 等维度,系统性提升了 GLM-4.5 在 agentic、推理与编码三大核心能力上的表现,体现了其“高效、鲁棒、实用”的工程哲学。

【我认为,GLM-4.5 的最大贡献不是模型本身,而是其系统化的训练 recipe。从数据构造、中期训练、混合推理到领域定制 RL,形成了一套可复现、可扩展的工程范式。尤其对开源社区,其开源的 glm-simple-evals 极大提升了 benchmark 可复现性。】

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐