GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models
GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models
GLM-4.5: 代理、推理和编码(ARC)基础模型
作者/机构: GLM-4.5 团队,智谱AI & 清华大学
A1 主要贡献
本文介绍了两个新的大型语言模型:GLM-4.5 和 GLM-4.5-Air,旨在统一代理(Agentic)、推理(Reasoning)和编码(Coding)这三种关键能力,以推动大型语言模型(LLM)从通用知识库向通用问题解决器演进。当前最先进的专有模型在某些ARC领域表现出色,但缺乏一个能在所有三个领域都表现卓越的强大开源模型。
核心贡献如下:
1. 模型发布:推出了GLM-4.5,这是一个拥有3550亿总参数和320亿激活参数的混合专家(MoE)模型;同时推出了其紧凑版本GLM-4.5-Air,拥有1060亿参数。这两个模型均开源,旨在推动推理和代理AI系统的研究。
2. 混合推理模式:模型支持两种推理模式:用于复杂推理和代理任务的“思考模式”(thinking mode),以及用于即时响应的“非思考模式”(non-thinking mode)。
3. 卓越的性能:通过在23T tokens上进行多阶段训练,并结合专家模型迭代和强化学习进行全面的后训练,GLM-4.5在多个ARC基准测试中取得了强大的性能。
* 代理能力:在TAU-Bench上得分70.1%,在BFCL v3上得分77.8%,与Claude Sonnet 4相当。在网页浏览代理任务BrowseComp上得分26.4%,优于Claude Opus 4(18.8%)。
* 推理能力:在AIME 24上得分91.0%,在GPQA上得分79.1%,在LiveCodeBench上得分72.9%,在HLE上得分14.4%。
* 编码能力:在SWE-bench Verified上得分64.2%,在Terminal-Bench上得分37.5%,优于GPT-4.1和Gemini-2.5-pro。
4. 高参数效率:在12个ARC基准测试的综合评估中,GLM-4.5总体排名第三,代理任务排名第二。尽管其参数量远少于竞争对手(如DeepSeek-R1的一半,Kimi K2的三分之一),但它在性能与参数量的帕累托前沿上表现出色,特别是在SWE-bench Verified基准上(如图2所示)。
5. 开源与可复现性:模型权重和代码已在GitHub和Hugging Face上开源,并提供了一个评估工具包以确保基准测试结果的可复现性。
A2 方法细节
2 预训练
2.1 架构
采用MoE架构并优化深度与宽度。GLM-4.5系列采用了混合专家(MoE)架构,以提高训练和推理的计算效率。我们使用了无损失平衡路由(loss-free balance routing)【40,Auxiliary-loss-free load balancing strategy for mixture-of-experts,2024】和Sigmoid门控【23,Deepseek-v3 technical report,2024】用于MoE层。与DeepSeek-V3【23,Deepseek-v3 technical report,2024】和Kimi K2【34,Kimi k2: Open agentic intelligence,2025】不同,我们减少了模型的宽度(隐藏维度和路由专家数量)并增加了其高度(层数),因为我们发现更深的模型表现出更好的推理能力。在自注意力组件中,我们采用了带有部分RoPE的分组查询注意力(Grouped-Query Attention)。此外,我们使用了多出2.5倍的注意力头(对于5120的隐藏维度使用了96个头)。虽然直觉上增加头数并未改善训练损失,但它在MMLU和BBH等推理基准上持续提升了性能。我们还引入了QK-Norm【15,Query-key normalization for transformers,2020】来稳定注意力logit的范围。对于GLM-4.5和GLM-4.5-Air,我们都增加了一个MoE层作为多词元预测(MTP)层【12,Better & faster large language models via multi-token prediction,2024】,以支持推理过程中的推测解码。
2.2 预训练数据
多源预训练语料库。我们的预训练语料库包括来自网页、社交媒体、书籍、论文和代码仓库的文档。我们为不同来源的数据精心设计了处理流水线。
高质量网页数据处理。我们预训练文档的大部分是来自互联网的英文和中文网页。受Nemotron-CC【32,Nemotron-cc: Transforming common crawl into a refined long-horizon pretraining dataset,2024】的启发,我们将爬取的网页根据不同的质量得分分成多个桶。我们对高质量得分桶中的文档进行上采样,并丢弃最低质量得分桶中的文档。最高质量得分的桶在预训练中贡献了超过3.2个epoch。通过这种方式,预训练语料库可以强调推理任务的高频知识,并提高长尾世界知识的覆盖率。我们还发现大量由模板自动生成的相似网页被赋予了高分,这类网页无法通过MinHash去重移除。因此,我们额外应用了SemDedup【1,Semdedup: Data-efficient learning at web-scale through semantic deduplication,2023】流水线,根据文档嵌入来移除这些相似的网页。
多语言数据增强。为了支持更多自然语言,我们在预训练语料库中加入了多语言文档。多语言语料库来自我们爬取的网页和Fineweb-2【27,Fineweb2: One pipeline to scale them all–adapting pre-training data processing to every language,2025】。我们应用了一个质量分类器来判断文档的教育效用,并对高质量的多语言文档进行上采样。
高质量代码数据处理与FIM目标。我们从GitHub和各种代码托管平台整理了源代码数据。代码语料库首先经过基于规则的初步过滤,然后使用特定语言的质量模型进行分类,将样本分为高质量、中等质量和低质量三档。在训练期间,我们对高质量代码进行上采样,同时排除了低质量样本。此外,我们对所有源代码数据应用了“中间填充”(Fill-In-the-Middle)【5,Efficient training of language models to fill in the middle,2022】的训练目标。对于与代码相关的网页文档,我们采用了从文本预训练语料库中进行的两阶段检索过程。首先根据两个标准选择文档:存在HTML代码标签,或者被一个训练用于检测代码相关内容的FastText【22,Bag of tricks for efficient text classification,2017】分类器识别。随后,使用一个专门的模型对检索到的文档进行质量评估,将其分为高、中、低质量类别,并遵循与源代码相同的基于质量的采样策略。最后,采用一个细粒度的解析器重新解析选定的网页,以更好地保留代码的格式和内容。
增强数学与科学推理能力的数据。为了增强推理能力,我们从网页、书籍和论文中收集与数学和科学相关的文档。我们应用一个大型语言模型,根据数学和科学教育内容的比例为候选文档打分,并训练一个小型分类器来预测这些分数。预训练语料库中得分高于特定阈值的文档被上采样。
两阶段预训练过程。GLM-4.5的预训练过程分为两个阶段。在第一阶段,模型主要在来自网页的通用文档上进行训练。在第二阶段,我们对来自GitHub的源代码以及与编码、数学和科学相关的网页进行上采样。
2.3 中间训练:提升推理与代理能力
中训练阶段以提升领域能力。预训练之后,我们增加了几个阶段来进一步提升模型在重要应用领域的性能。与在海量通用文档上进行的传统预训练不同,这些训练阶段利用中等规模的领域特定数据集,包括指令数据。因此,我们将这些训练阶段称为中间训练(mid-training),包括以下内容。
仓库级代码训练。在这个训练阶段,我们加入了来自同一代码仓库的拼接代码文件,以学习跨文件依赖。为了提高模型的软件工程能力,我们还纳入了经过模型筛选的GitHub问题(issues)、拉取请求(PRs)和提交(commits),相关的issues、PRs和commits被拼接成一个上下文,commits则以类似diff的格式组织。我们将训练序列长度从4K扩展到32K,以容纳大型代码仓库。
合成推理数据训练。在这个阶段,我们为数学、科学和编码竞赛添加了合成的推理内容。我们从网页和书籍中收集了大量与推理任务相关的问题和答案,并使用一个推理模型合成了推理过程。
长上下文与Agent训练。为了进一步提升模型的长上下文性能,我们将训练序列长度从32K扩展到128K,并对预训练语料库中的长文档进行上采样。此阶段还加入了大规模的合成代理轨迹数据。
训练阶段总结与数据打包策略。我们在图3中展示了预训练和中间训练的完整阶段。在预训练中,最大序列长度保持在4,096,在中间训练中从32,768扩展到131,072。在预训练期间,我们没有使用best-fit packing【11,Fewer truncations improve language modeling,2024】,因为随机截断对于预训练文档是一种很好的数据增强策略。对于中间训练中的数据集,我们应用了best-fit packing,以避免截断推理过程或仓库级代码。
2.4 超参数
优化器与学习率调度。我们对除词嵌入、偏置和RMSNorm权重外的所有参数使用了Muon优化器【21,Muon: An optimizer for hidden layers in neural networks,2024;24,Muon is scalable for llm training,2025】。对于超参数,我们将Newton-Schulz迭代步数N设为5,动量µ设为0.95,并将Muon的更新RMS缩放到0.2。我们观察到Muon优化器可以加速收敛并容忍更大的批量大小。我们使用了余弦衰减学习率调度,而不是预热-稳定-衰减(WSD)调度【17,Minicpm: Unveiling the potential of small language models with scalable training strategies,First Conference on Language Modeling】。我们的早期实验表明,使用WSD调度训练的模型在通用基准(SimpleQA, MMLU)上表现较差,表明在稳定阶段存在欠拟合。学习率经历了一个从0到2.5e-4的预热阶段,然后衰减到2.5e-5,直到中间训练结束。我们使用了批量大小预热策略,在前500B tokens的训练中,批量大小从16M tokens逐渐增加到64M tokens,并在剩余的训练中保持不变。对于正则化,我们将权重衰减率设为0.1,并且没有使用dropout。预训练期间最大序列长度设为4,096,在中间训练阶段如图3所示扩展到32,768和131,072。当序列长度扩展到32K时,我们还将RoPE的基础频率从10,000调整到1,000,000,以获得更好的长上下文建模能力。对于无损失平衡路由,我们在前15T tokens中将偏置更新率设为0.001,在剩余tokens中设为0.0。我们还应用了权重为0.0001的辅助序列级平衡损失,以避免任何单个序列内的极端不平衡。MTP损失权重λ在前15T tokens中设为0.3,在剩余tokens中设为0.1。
3 后训练:专家模型迭代
两阶段后训练流程。我们将后训练过程分为两个不同阶段。在第一阶段(专家训练),我们构建了专门从事三个领域的专家模型:推理、代理和通用聊天。在第二阶段(统一训练),我们采用自蒸馏技术来整合多个专家,最终交付一个能够通过深思熟虑的推理和直接响应两种模式生成回答的综合模型。
3.1 监督微调
SFT在后训练中的作用。我们在第一阶段(专家训练)和第二阶段(统一训练)的开始都进行了监督微调(SFT)。在专家训练阶段,SFT的主要作用是提供一个冷启动,赋予模型基本的聊天、推理和工具使用能力,这些能力随后可以在专家强化学习训练中得到进一步增强以获得更好的性能。在统一训练阶段,SFT的目的是将不同专家模型的能力蒸馏到一个能够处理不同类型任务的混合推理通用模型中。
冷启动SFT。在冷启动阶段,我们利用一小部分带有扩展思维链(CoT)响应的监督微调(SFT)数据。这种方法确保每个专家模型在进入强化学习阶段之前都具备足够的基础能力。
统一SFT阶段。在整体SFT阶段,我们从之前训练的专家模型中收集了数百万个样本,涵盖推理任务(数学、代码、科学等)、通用聊天(写作、翻译、摘要、闲聊等)、代理任务(基本工具使用、特别是在真实项目开发中的编码能力等)和长上下文理解任务,并以最大128K tokens的上下文长度训练基础模型。通过从不同专家的输出中蒸馏,模型学会了为每个任务应用最有效的长CoT推理以得出准确答案。特别地,我们认识到对于某些需要快速响应的领域(如闲聊),冗长的思考过程是不必要的,因此我们精心平衡了包含完整推理过程的训练数据和缺乏明确思考过程的数据。这种方法使模型能够以反思性和即时响应两种模式运行,从而创建了一个混合推理模型。
SFT数据准备策略。此外,我们发现以下策略有助于准备SFT数据以获得最佳性能。
减少函数调用模板中的字符转义。尽管当前实现中函数调用参数主要以JSON格式表示,但当这些参数包含代码段时,一个显著的挑战出现了。在这种情况下,代码中相当大比例的字符需要转义,迫使模型生成大量的转义字符,从而增加了模型的学习负担。虽然这个问题对于主要设计用于通用聊天的模型来说影响不大,但对于以函数调用为核心能力的代理基础模型来说,这是一个不容忽视的挑战。为了缓解这一限制,我们提出了一种新颖的函数调用模板,该模板将函数调用的键和值封装在类XML的特殊标记中。这种方法极大地减少了代码段中字符转义的必要性,因为绝大多数代码可以以其原生形式表示而无需转义。实验结果表明,所提出的函数调用模板在不影响函数调用执行性能的同时减少了转义。以下示例(图4)说明了我们提出的函数调用模板的结构。详细的代码实现可以在我们的开源仓库中找到。
拒绝采样策略。当从专家模型采样时,我们采用了一个全面的多阶段过滤流水线,包括:(1)移除重复、过短或截断的样本,以及那些不符合有效推理格式的样本;(2)对具有客观答案的样本进行正确性验证;(3)利用奖励模型过滤对主观问题的响应;以及(4)对于工具调用场景,确保遵守正确的工具调用协议并验证轨迹是否达到预期的终止状态。
提示选择与响应级缩放。过滤具有挑战性的提示并在其上进行响应缩放是有效的。我们实验了根据响应长度移除排名后50%的提示,尽管只用了一半的数据进行训练,但在数学和科学任务上获得了2%-4%的提升。值得注意的是,我们发现对这些困难提示应用响应缩放可以带来进一步的收益。为每个提示生成四个响应带来了额外的1%-2%的提升。
自动化构建Agentic SFT数据。代理SFT数据的构建涉及四个步骤:1. 代理框架和工具收集:我们收集了一系列代理框架和真实世界的工具API及MCP服务器,同时利用LLM自动构建和模拟一批工具。2. 任务合成:基于这些框架和工具,我们自动合成了大量的代理任务。一方面,对于相对成熟的框架,我们利用LLM理解其功能并自动生成相关查询或任务。另一方面,对于更零散的工具,我们首先选择一个有代表性的子集,并同样使用LLM构建关于该子集的任务。这些任务涵盖了单步和多步工具调用场景。3. 轨迹生成:对于每个合成的任务,我们利用现有的LLM生成工具调用轨迹。此外,通过使用LLM作为用户模拟器,将多步工具调用任务转换为多轮对话的轨迹。4. 质量过滤:对于每个轨迹,使用多个判断代理来评估任务是否完成。只保留成功的轨迹。
3.2 推理强化学习
推理RL的目标与方法。推理强化学习(Reasoning RL)专注于增强模型在需要逻辑推导、结构化问题解决和可验证准确性的领域中的能力。这包括数学、代码生成和科学推理等关键领域。这些任务的一个决定性特征是其奖励信号的高精度,因为正确性通常可以通过编程或客观清晰度来确定。在这些领域的精通不仅对于提升模型的原始智能至关重要,也是更复杂、多步代理行为的基础构建块。认识到推理RL中的独特挑战和机遇,我们开发了一套专门的技术来有效训练我们的模型。这些方法,详述如下,旨在解决训练效率、样本多样性和数据质量等问题。我们的整体RL算法建立在GRPO【31,Deepseekmath: Pushing the limits of mathematical reasoning in open language models,2024】框架之上,不包括KL损失项。本节中显示的比较曲线基于我们较小的实验模型,而非GLM-4.5。
基于难度的课程学习。在强化学习期间,模型的熟练度会不断变化,这与静态训练数据会产生不匹配。在后期阶段,随着模型能力的增强,过于简单的数据可能导致所有奖励均为1的rollouts。相反,在早期阶段,过难的数据通常导致所有奖励均为0的批次。在这两种情况下,奖励方差的缺乏都无法提供有用的梯度信号,严重阻碍了训练效率。为应对这一挑战,我们采用了两阶段的基于难度的RL课程。此策略及下文讨论的其他策略的有效性通过在较小模型上进行的对照实验得到验证,这使得快速迭代和精确的消融研究成为可能。如图5所示,这种两阶段方法使模型能够持续突破其性能上限。至关重要的是,为保持高信号质量并减少噪声,第二阶段使用的所有问题都严格来源于一个答案经过验证的正确问题池。
在64K输出长度下的单阶段RL。先前的研究【25,Deepscaler: Surpassing o1-preview with a 1.5b model by scaling rl,2025】建议以逐步增加最大输出长度的方式分多阶段进行RL。然而,我们的实验表明,这种多阶段方法不如直接在最大目标长度64K下进行的单阶段RL过程有效。由于初始的监督微调(SFT)已经使模型适应于生成64K长度的响应,引入较短最大长度的RL阶段可能导致模型“遗忘”其长上下文能力。这通常会导致性能显著且不可逆的下降,因为模型的平均输出长度减少了。这种退化在最后的64K长度RL阶段很难恢复,从而限制了进一步的改进。我们的实验证实了这一观察:如图6所示,直接在完整的64K长度上应用RL,能持续推动模型的极限并产生更好的性能。
动态采样温度。在RL中,采样温度是控制轨迹多样性的关键参数。过低的温度会导致收敛、探索性较差的输出,而过高的温度则会引入低质量、嘈杂的样本,从而损害模型准确性和训练效率。使用固定的采样温度是次优的,因为它无法适应策略分布变得更加集中(即熵更低)的情况,通常导致后期阶段探索不足。因此,我们提出动态调整采样温度,以在准确性和探索之间保持健康的平衡。具体来说,当rollouts的平均奖励稳定时,我们将其识别为收敛阶段,并增加采样温度以鼓励更大的多样性。为减轻引入过多噪声的风险,我们实施了一种质量控制机制:我们定期在一系列温度下,在保留的验证集上评估模型性能。然后,下一训练阶段的温度被设置为不会导致性能从当前最优值下降超过1%的最大值【2,Polaris: A post-training recipe for scaling reinforcement learning on advanced reasoning models,2025】。
代码和科学RL的经验。与数学相比,编码和科学领域的RL在文献中受到的关注较少。我们在这些领域进行了广泛的受控RL实验,并得出了以下经验性结论。对于代码RL,我们发现损失计算方法的选择对训练效率至关重要。如图7(左)所示,与传统的序列平均损失相比,采用词元加权平均损失非常有益。词元加权方法提供了更细粒度、更稳定的梯度信号,从而导致收敛速度显著加快。该方法还有助于减轻序列级奖励固有的长度偏差,并有效抑制训练过程中过于简单或重复的“基本情况”样本的生成。对于科学RL,我们在GPQA-Diamond基准上的发现强调,数据质量和类型是至关重要的因素。如图7(右)所示,仅使用经过专家验证的多项选择题进行RL,其性能显著优于使用混合质量或未验证数据进行训练。这一结果强调,即使对于像多项选择题这样格式简单的任务,严格筛选RL数据池以仅包含高质量、具有挑战性的实例,对于有效的模型改进至关重要。
3.3 代理强化学习
Agentic RL的设置。从人类反馈中进行强化学习(RLHF)有助于语言模型更忠实地遵循人类指令。将RL应用于数学和编程竞赛进一步揭示了其在结果可被客观验证的任务上的强大推理能力和有利的扩展行为。基于这些见解,我们专注于代理设置——特别是网络搜索和代码生成代理——其中每个动作或答案都可以被自动检查。这种内置的可验证性提供了密集、可靠的奖励,使我们能够更有效地扩展RL训练。
3.3.1 代理的数据收集与合成
Web搜索任务的数据合成。对于网络搜索任务和开放领域信息检索,我们开发了一个数据合成流水线,该流水线能产生需要跨多个网络源进行多步推理的高难度问答对。这个语料库旨在提升GLM在互联网上发现难以捉摸、相互交织的事实的能力。数据集的构建融合了两种方法:(1)一个基于知识图谱多跳推理的自动化流水线,以及(2)通过人机协同从多个网页中提取并选择性地混淆内容,以准备强化学习训练信号。
软件工程任务的数据收集。对于软件工程任务,我们整理了大量GitHub拉取请求和问题,创建了一个包含用户提示和可执行单元测试的现实软件开发基准。所有评估都在一个加固的沙箱内运行,该沙箱使用分布式系统,提供了水平可扩展性和强大的隔离保障。
3.3.2 通过强化学习和迭代自蒸馏推动极限
采用组策略优化算法 (GRPO)。我们采用组策略优化算法进行RL训练。对于每个问题x,我们从先前的策略π_old中采样K个代理轨迹{y1, ..., yk},并针对以下目标优化模型π_θ:
其中r¯(x) = (1/k) * Σ(r(x, yi)) 是采样响应的平均奖励。值得注意的是,只有模型生成的词元用于优化,而环境反馈在损失计算中被忽略。
结果监督与过程动作格式惩罚。对于网络搜索任务,我们使用最终答案的准确性作为整个代理轨迹的奖励。对于编码代理,我们主要利用带有可验证测试用例的SWE数据进行RL训练。我们的实验表明,在网络搜索和SWE任务上的RL训练能够推广到其他任务和基准上性能的提升,例如通用工具使用和像Terminal-Bench这样的编码任务。此外,我们应用了过程格式惩罚,以确保模型生成正确的工具调用格式。如果模型在代理轨迹生成过程中未能产生正确的工具格式,该过程将被中止,且该轨迹将获得零奖励。
迭代蒸馏。由于代理任务的RL训练非常耗时,我们采用了一种自蒸馏方法,在恢复对此改进模型的RL训练之前,迭代地增强SFT冷启动模型的性能。具体来说,我们首先在初始的冷启动模型上进行RL训练以提升代理性能。一旦训练达到一定的步数或进入平台期,我们通过用RL训练模型生成的响应替换原始的冷启动数据来进行自蒸馏,从而创建一个更优的SFT模型。然后,我们在这个增强的模型上进行进一步的RL训练,并逐步增加训练难度。这种迭代策略使我们能够有效地推动RL训练模型的性能极限。
通过交互轮次扩展测试时计算。对于代理任务,我们观察到随着与环境交互轮次的增加,性能有显著提升。与推理模型中扩展输出词元的测试时扩展不同,代理任务通过与环境的持续交互来利用测试时计算,例如,为寻找难以发现的网络信息而进行广泛搜索,或为编码任务编写测试用发以进行自验证和自纠正。图8显示,随着浏览努力的不同,准确性与测试时计算平滑地扩展。
3.4 通用强化学习
通用RL的目标与方法。通用RL旨在全面提升模型的整体性能,修复潜在问题,并加强关键能力。我们方法的核心是一个多源反馈系统,该系统协同利用了基于规则的反馈、人类反馈(RLHF)和基于模型的反馈(RLAIF)。这个混合框架提供了更稳健的训练信号,并使我们能够利用每种来源的独特优势:自动化规则的精确性、人类标注者的细致判断以及AI驱动评估的可扩展性。
整体性RL。整体性RL旨在实现跨多个领域的广泛性能提升。为此,我们首先构建了一个包含约5000个提示的平衡数据集,涵盖7个主要类别、33个次要类别和139个三级类别。整体性RL的奖励信号来源于人类和AI的反馈。对于人类反馈,我们基于偏好标注训练了一个奖励模型。标注者比较模型响应,并根据对指令遵循、安全性、事实正确性等多个维度的综合评估来分配偏好标签。对于模型反馈,我们设计了不同的评分标准,这取决于提示是否具有客观的基准答案。融合这两种反馈来源可以产生更可靠、更具表现力的奖励信号,从而减轻了每种单一方法的固有局限性。
指令遵循RL。指令遵循RL旨在提升模型理解和满足复杂指令的能力。为此,我们创建了一个包含7个主要类别和151个次要约束类型的细粒度分类体系,涵盖内容要求、格式规则等。基于此分类体系,我们组建了一个专门的、包含挑战性指令的训练集,以覆盖每种约束类型。反馈系统由确定性验证规则、一个训练好的奖励模型和一个批判模型组成。在GRPO训练期间,这个混合反馈系统的稳健性被证明至关重要。我们观察到奖励 hacking 现象得到了缓解,使得策略模型在指令遵循方面能够实现持续稳定的改进,如图9所示。
函数调用RL。函数调用RL分为分步式基于规则的RL和端到端多轮RL。由于它们的输出长度和收敛速度相似,我们将分步式基于规则的RL直接整合到我们的通用RL框架中。对于端到端多轮RL,我们首先训练专门的专家模型,然后将这些专家蒸馏到主模型中。
-
分步式基于规则的RL:对于具有明确工具调用程序的任务,我们在训练数据中为每个步骤/轮次标注了基准函数调用。给定任务和先前步骤/轮次的函数调用,模型被训练以生成下一个助手响应,这可以是一个函数调用或对用户的回复。使用基于规则的奖励,我们引导模型在连续几轮中进行正确的函数调用。因此,我们设计了以下严格的奖励函数:
奖励 = 1,如果 FormatCorrect(at) 且 Match(at, a*t);否则为 0
这里,at表示模型生成的第t个函数调用,a*t是对应的基准函数调用。只有当at格式正确且与基准完全匹配(包括名称、参数和每个字段)时,才会给予1的奖励。否则,奖励为0。这种严格的奖励规则不仅引导模型生成正确的函数调用,还强有力地强制执行输出格式,提高了模型在真实世界交互中的可用性和稳健性。 -
端到端多轮RL:分步式基于规则的RL将任务分解为静态、预定的决策流程。在此过程中,模型缺乏与环境的动态交互,无法自主探索、规划或处理复杂情况,从而限制了其在真实世界中的问题解决能力。为了解决这些问题,我们引入了端到端多轮函数调用RL,模型首先生成完整的轨迹,然后根据任务完成情况获得奖励。通过这种方式,模型可以通过与工具反馈的持续试错来优化其行动策略,显著增强其在自主规划和决策方面的能力。具体来说,端到端多轮函数调用RL考虑了两种复杂任务:1. 单轮多步任务:模型需要进行多步函数调用并与环境交互以完成此类任务。我们使用基于MCP服务器自动合成的复杂任务,以及一些具有可运行环境的开源代理数据集,如Agentgym【46,Agentgym: Evolving large language model-based agents across diverse environments,2024】。2. 多轮多步任务:除了与工具执行环境交互,模型还需要与一个LLM模拟的用户代理交互,以获取完整的任务信息并完成整体任务。端到端多轮函数调用RL的奖励计算如下:
奖励 = 1,如果 FormatCorrect(a1, ..., aT) 且 TaskCompleted(I, o0, a1, o1, ..., aT, oT);否则为 0
这里,I指的是原始的复杂任务,at是第t个函数调用,ot是工具反馈或用户信息。TaskCompleted(...)表示任务是否完成,这由环境根据预定义规则或由LLM判断代理确定。
病理RL。作为后训练的最后阶段,通用RL需要纠正潜在问题,如语言混用、过度重复和格式错误。尽管在上述通用RL任务中惩罚此类行为是有效的,但这些病理行为的低发生率(通常低于输出的1%)使得这成为一种样本效率低的优化策略。因此,我们通过识别极有可能触发这些病理行为的提示,为病理RL策划了一个目标数据集。在此数据集上进行训练使我们能够施加有效的惩罚,进一步降低这些问题行为的残留错误率。
3.5 强化学习基础设施
基于Slime的RL基础设施。我们的RL基础设施建立在我们开发的开源框架Slime1之上。该框架设计了几个关键优化,以增强灵活性、效率和可扩展性。
灵活的混合训练与数据生成架构。我们基础设施的一个核心特性是在一个统一的系统中支持高度灵活的训练范式和数据生成策略。这种设计使我们能够通过支持共置同步模式和分离异步模式来满足各种RL任务的不同需求。数据生成的这种灵活性对于将我们的RL能力扩展到新领域和更复杂的代理环境至关重要。我们观察到不同的RL任务受益于不同的调度方法。对于通用RL任务或旨在增强模型推理能力的任务(例如,在数学和代码生成中),同步、共置的架构更有效。在这种设置中,训练和推理引擎位于同一个工作节点上。这与动态采样相结合,显著减少了GPU空闲时间并最大化了资源利用率。相反,对于代理任务,例如软件工程(SWE)中的任务,数据生成过程通常是漫长的,并涉及复杂的系统交互。为确保代理环境能够连续运行并最大化数据吞吐量,我们采用分离、异步的模型。RL框架的rollout组件直接暴露给代理环境,而用于训练和推理的GPU则独立调度。这种解耦使代理环境能够持续生成新数据,而不会被训练周期所拖延。通过利用Ray框架的资源调度和异步能力,我们可以灵活地将推理和训练引擎放置在同一个GPU上或不同的GPU上。这种对同步和异步训练的双重支持使得多样化的RL任务能够共享一套通用的训练和推理优化。
使用混合精度推理加速Rollout。Rollout效率是RL训练中一个持续存在的瓶颈。为了解决这个问题,我们的基础设施支持BF16进行训练,同时利用FP8进行推理以加速数据生成阶段。在每个策略更新迭代中,我们在模型参数分派用于rollout之前,对其进行在线、逐块的FP8量化。这种动态量化实现了高效的FP8推理,显著提高了数据收集过程的整体吞吐量。
面向Agent的RL基础设施设计。为了对代理任务进行RL,我们设计了一个完全异步和解耦的RL基础设施,它能高效处理长周期的代理rollouts,并支持跨多种代理框架的灵活多任务RL训练。
处理长时程Agent Rollout。代理rollouts通常需要与复杂环境进行长时间的交互,这会显著减慢整个RL训练过程。为了克服这一点,我们首先设计了一个基于Docker的高并发运行时,为每个任务提供隔离的环境,从而大幅减少了rollout开销。此外,我们实现了一个完全异步的RL训练循环。由于代理任务的类型和轨迹长度可能各不相同,同步RL训练常常导致严重的GPU利用率不足,因为工作节点需要等待最慢的rollouts完成。我们的方法将GPU划分为专用的rollout引擎和训练引擎:rollout引擎持续生成轨迹,而训练引擎更新模型权重并定期将其同步回rollout引擎。这种解耦设计防止了长或多样化的轨迹阻塞整个训练流程,从而实现了持续的高吞吐量,特别是在代理交互变化很大的场景中。
支持多样的Agent框架。另一个关键挑战是现有代理框架的多样性,这些框架为不同任务量身定制。利用这些框架不仅可以提高特定任务的性能,还能保持训练和推理之间的一致性。为了实现这一点,我们引入了一个统一的HTTP端点接口,并配有一个集中的数据池。由于大多数代理框架以消息列表格式产生rollouts,所有轨迹都存储在这个数据池中,作为训练的共享来源。这种架构清晰地将特定任务的rollout逻辑与RL训练过程解耦,实现了异构代理框架的无缝集成。此外,该数据池支持可定制的、特定任务的过滤和动态采样策略,以确保跨多样任务的高质量RL训练数据。
系统总结。通过这两项核心设计,我们的系统为长周期代理RL提供了一个可扩展、灵活且高性能的解决方案,并能支持长周期rollouts,适应广泛的代理任务。
A4 实验环境与结果
实验环境
- 模型:
- GLM-4.5: 3550亿总参数,320亿激活参数的MoE模型。
- GLM-4.5-Air: 1060亿参数的MoE模型。
- 数据集:
- ARC基准:MMLU-Pro, AIME 24, MATH-500, SciCode, GPQA, HLE, LCB (2407-2501), SWE-Bench Verified, Terminal-Bench, TAU-Bench, BFCL V3, BrowseComp。
- 通用能力基准:MMLU (EM), SimpleQA, IFEval (Prompt Strict), SysBench (ISR), MultiChallenge。
- 安全基准:SafetyBench (包含7个安全类别,11,435个多项选择题)。
- 手动评估数据集:包含660个(392英、108中、160其他语言)真实场景提示,覆盖数学、文本处理、生成、问答、逻辑推理和代码指令;CC-Bench (基于Claude Code的52个编程任务);以及为评估逻辑推理而构建的新型复杂问题集。
- 硬件配置:论文未明确提及。
- 软件配置:
- 代码实现:在开源框架
Slime上构建RL基础设施。 - 评估框架:使用
OpenHands v0.34.0评估SWE-bench;使用Terminus框架评估Terminal-Bench。 - 开源工具:在
https://github.com/zai-org/glm-simple-evals开源了评估工具包。
实验结果
4.1 基础模型评估
- 实验内容:评估预训练最后阶段的基础模型GLM-4.5-Base在多个基准上的表现。
- 实验结果:如表2所示,GLM-4.5-Base在英语、代码、数学和中文等所有不同基准上表现稳定。
- 分析结论:这验证了将所有能力统一到一个模型中的设计思想是成功的。
4.2 ARC(代理、推理、编码)基准评估
4.2.1 代理能力评估
- 实验内容:在TAU-bench、BFCL V3和BrowseComp上评估代理能力。
- 实验结果(表3):
- TAU-bench: GLM-4.5性能优于Gemini 2.5 Pro,接近Claude Sonnet 4。
- BFCL V3: GLM-4.5在所有基线模型中取得最佳总分。
- BrowseComp: GLM-4.5性能接近第二名(o4-mini),并显著优于Claude Opus 4。
- 分析结论:GLM-4.5在函数调用和网页浏览等代理任务中展现出顶尖的性能。
4.2.2 推理能力评估
- 实验内容:在MMLU-Pro、AIME 24、MATH 500、SciCode、GPQA、HLE和LCB七个基准上评估推理能力。
- 实验结果(表4):
- GLM-4.5在AIME 24和SciCode上优于OpenAI o3。
- 平均性能上,GLM-4.5优于Claude Opus 4,并接近DeepSeek-R1-0528。
- 分析结论:GLM-4.5在多种复杂的推理任务中表现出强大的能力,特别是在数学和科学领域。
4.2.3 编码能力评估
- 实验内容:在SWE-bench Verified和Terminal-Bench上评估真实世界编码任务的完成能力。
- 实验结果(表5):
- SWE-bench Verified: GLM-4.5优于GPT-4.1和Gemini-2.5-Pro。
- Terminal-Bench: GLM-4.5优于Claude Sonnet 4。
- 分析结论:在编码任务上,GLM-4.5是Claude Sonnet 4的最有力竞争者。
4.2.4 通用能力评估
- 实验内容:在MMLU、SimpleQA、IFEval、SysBench和MultiChallenge等通用聊天基准上进行评估。
- 实验结果(表6):GLM-4.5在MMLU上与其他旗舰模型相当,在SimpleQA上以更少参数量匹敌DeepSeek V3/R1,并在IFEval、Sysbench和MultiChallenge上表现优于多个竞争对手。
- 分析结论:GLM-4.5在知识密集型任务和指令遵循任务上均表现出强大的通用能力。
4.2.5 安全性评估
- 实验内容:使用SafetyBench评估模型的安全对齐。
- 实验结果(表7):GLM-4.5的总分(89.87)与Kimi-K2(90.48)和GPT-4.1(89.71)相当。在伦理道德、心理健康和身体健康方面表现尤为突出。
- 分析结论:GLM-4.5达到了强大的安全水平,与顶级模型具有竞争力,但在处理不公平和偏见方面仍有提升空间。
4.3 实践体验评估
4.3.1 通用聊天手动评估
- 实验内容:在覆盖多语言、多场景的660个真实用户提示上,由人类评估员对GLM-4.5、Deepseek-R1-0528和Kimi K2进行0-10分打分。
- 实验结果:在英语(表8)、中文(表9)和其他语言(表10)的提示集上,GLM-4.5均获得了最高的平均分,尤其在数学、客观问答、文本生成、逻辑推理和代码指令方面表现出色。
- 分析结论:手动评估证实了GLM-4.5在真实应用场景中的卓越性能,优于其他强大的开源模型。
4.3.2 编码代理评估
- 实验内容:在自建的CC-Bench上,与Claude Sonnet 4、Kimi K2和Qwen3-Coder进行头对头比较。
- 实验结果:GLM-4.5在与开源模型的对抗中胜率显著(对Kimi K2胜率53.9%,对Qwen3-Coder胜率80.8%),并与闭源模型Claude Sonnet 4表现出竞争力(胜率40.4%)(图12)。其工具调用成功率最高(90.6%)(图13)。
- 分析结论:GLM-4.5在真实世界开发场景中展现了强大的代理编码能力、任务完成一致性和执行鲁棒性。
4.3.3 逻辑推理评估
- 实验内容:在一个为避免数据污染而构建的新型、复杂的逻辑推理问题集上,由人类专家对模型进行评分。
- 实验结果(表11):GLM-4.5的表现与领先模型相当。
- 分析结论:模型具备强大的、未经污染的真实逻辑推理能力。
4.4 翻译能力评估
- 实验内容:在100个挑战性的、易被误译的真实案例(涉及网络俚语、领域昵称、文化符号等)上,对GLM-4.5和多个专业翻译模型进行盲测人工评估。
- 实验结果(表12):GLM-4.5显著优于专业翻译模型,能够准确理解并翻译深层文化和语境含义。
- 分析结论:现代翻译是深度依赖知识和推理的任务,通用大模型GLM-4.5在此方面展现出超越专业模型的优势。
A5 结论
本报告介绍了GLM-4.5模型系列,包括GLM-4.5和GLM-4.5-Air。两款模型均采用混合专家(MoE)架构,与之前的GLM模型相比,计算效率更高。GLM-4.5在推理、编码和代理任务方面表现卓越,在全球开源和专有模型中综合排名第三。我们发布了GLM-4.5和GLM-4.5-Air的模型权重,以推动大型语言模型的应用和研究。
方法细节中的引用汇总
-
【1】Semdedup: Data-efficient learning at web-scale through semantic deduplication (2023)
- 引用位置: 2.2 预训练数据
- 原文描述: "We additionally apply the SemDedup [1] pipeline to remove those similar webpages based on document embeddings." (我们额外应用了SemDedup [1] 流水线,根据文档嵌入来移除这些相似的网页。)
- 引用内容: 引用其作为一种基于文档嵌入移除相似网页的技术。
-
【2】Polaris: A post-training recipe for scaling reinforcement learning on advanced reasoning models (2025)
- 引用位置: 3.2 推理强化学习
- 原文描述: "The temperature for the next training phase is then set to the maximum value that does not cause a performance drop of more than 1% from the current optimum [2]." (下一训练阶段的温度被设置为不会导致性能从当前最优值下降超过1%的最大值[2]。)
- 引用内容: 引用其关于动态调整采样温度的质量控制机制,即基于验证集性能选择不会导致性能大幅下降的最高温度。
-
【5】Efficient training of language models to fill in the middle (2022)
- 引用位置: 2.2 预训练数据
- 原文描述: "Moreover, the Fill-In-the-Middle [5] training objective is applied to all source code data." (此外,我们对所有源代码数据应用了“中间填充”[5]的训练目标。)
- 引用内容: 引用其"Fill-In-the-Middle" (FIM) 作为一种适用于代码数据的训练目标。
-
【11】Fewer truncations improve language modeling (2024)
- 引用位置: 2.3 中间训练
- 原文描述: "During pre-training, we did not use best-fit packing [11] since random truncation is a good data-augmentation strategy for pre-training documents. For datasets in mid-training, we applied best-fit packing to avoid truncating the reasoning process or repo-level code." (在预训练期间,我们没有使用best-fit packing [11]...对于中间训练中的数据集,我们应用了best-fit packing...)
- 引用内容: 引用"best-fit packing"作为一种避免截断重要内容的数据打包策略,并解释了在不同训练阶段对其的使用选择。
-
【12】Better & faster large language models via multi-token prediction (2024)
- 引用位置: 2.1 架构
- 原文描述: "For both GLM-4.5 and GLM-4.5-Air, we add an MoE layer as the MTP (Multi-Token Prediction) layer [12] to support speculative decoding during inference." (对于GLM-4.5和GLM-4.5-Air,我们都增加了一个MoE层作为多词元预测(MTP)层[12]...)
- 引用内容: 引用其多词元预测(MTP)层技术,用于支持推测解码。
-
【15】Query-key normalization for transformers (2020)
- 引用位置: 2.1 架构
- 原文描述: "We also incorporate QK-Norm [15] to stabilize the range of attention logits." (我们还引入了QK-Norm [15]来稳定注意力logit的范围。)
- 引用内容: 引用QK-Norm技术,用于稳定注意力分数的范围。
-
【17】Minicpm: Unveiling the potential of small language models with scalable training strategies (First Conference on Language Modeling)
- 引用位置: 2.4 超参数
- 原文描述: "We used cosine decay schedule for learning rate, instead of warmup-stable-decay (WSD) schedule [17]." (我们使用了余弦衰减学习率调度,而不是预热-稳定-衰减(WSD)调度[17]。)
- 引用内容: 引用WSD学习率调度方案作为对比,解释了为何选择余弦衰减方案。
-
【21】Muon: An optimizer for hidden layers in neural networks (2024) & 【24】Muon is scalable for llm training (2025)
- 引用位置: 2.4 超参数
- 原文描述: "We employed the Muon optimizer [21; 24] for all parameters except word embedding, bias, and weights for RMSNorm." (我们对...所有参数使用了Muon优化器[21; 24]。)
- 引用内容: 引用Muon作为其选择的优化器。
-
【22】Bag of tricks for efficient text classification (2017)
- 引用位置: 2.2 预训练数据
- 原文描述: "...or identification by a FastText [22] classifier trained to detect code-related content." (...或者被一个训练用于检测代码相关内容的FastText [22]分类器识别。)
- 引用内容: 引用FastText分类器作为一种识别代码相关网页文档的工具。
-
【23】Deepseek-v3 technical report (2024)
- 引用位置: 2.1 架构
- 原文描述: "We employ loss-free balance routing [40] and sigmoid gates for MoE layers [23]. Different from DeepSeek-V3 [23] and Kimi K2 [34]..." (我们使用了...Sigmoid门控用于MoE层[23]。与DeepSeek-V3 [23]...不同)
- 引用内容: 引用其在MoE层中使用Sigmoid门控的技术,并将其模型架构(宽度和深度)与之进行对比。
-
【25】Deepscaler: Surpassing o1-preview with a 1.5b model by scaling rl (2025)
- 引用位置: 3.2 推理强化学习
- 原文描述: "Previous research [25] has suggested conducting RL in multiple stages with progressively increasing maximum output lengths. However, our experiments reveal that this multi-stage approach is less effective..." (先前的研究[25]建议以逐步增加最大输出长度的方式分多阶段进行RL。然而,我们的实验表明...)
- 引用内容: 引用其提出的多阶段RL训练策略作为对比,并论证了单阶段RL的优越性。
-
【27】Fineweb2: One pipeline to scale them all–adapting pre-training data processing to every language (2025)
- 引用位置: 2.2 预训练数据
- 原文描述: "The multilingual corpus comes from both our crawled webpages and Fineweb-2 [27]." (多语言语料库来自我们爬取的网页和Fineweb-2 [27]。)
- 引用内容: 引用Fineweb-2作为其多语言预训练数据的来源之一。
-
【31】Deepseekmath: Pushing the limits of mathematical reasoning in open language models (2024)
- 引用位置: 3.2 推理强化学习
- 原文描述: "Our overall RL algorithm builds upon the GRPO [31] framework, excluding the KL loss term." (我们的整体RL算法建立在GRPO [31]框架之上,不包括KL损失项。)
- 引用内容: 引用GRPO作为其推理RL算法的基础框架。
-
【32】Nemotron-cc: Transforming common crawl into a refined long-horizon pretraining dataset (2024)
- 引用位置: 2.2 预训练数据
- 原文描述: "Inspired by Nemotron-CC [32], we divide the crawled webpages into buckets of different quality scores." (受Nemotron-CC [32]的启发,我们将爬取的网页根据不同的质量得分分成多个桶。)
- 引用内容: 引用其对网页数据进行质量分桶处理的方法。
-
【34】Kimi k2: Open agentic intelligence (2025)
- 引用位置: 2.1 架构
- 原文描述: "Different from DeepSeek-V3 [23] and Kimi K2 [34], we reduce the width (hidden dimension and number of routed experts) of the model and increase its height (number of layers)..." (与DeepSeek-V3 [23]和Kimi K2 [34]不同,我们减少了模型的宽度...并增加了其高度...)
- 引用内容: 引用Kimi K2的模型架构作为对比,以凸显自身在深度和宽度设计上的不同。
-
【40】Auxiliary-loss-free load balancing strategy for mixture-of-experts (2024)
- 引用位置: 2.1 架构
- 原文描述: "We employ loss-free balance routing [40] and sigmoid gates for MoE layers [23]." (我们使用了无损失平衡路由[40]...用于MoE层。)
- 引用内容: 引用其提出的无损失平衡路由作为MoE层中的专家路由策略。
-
【46】Agentgym: Evolving large language model-based agents across diverse environments (2024)
- 引用位置: 3.4 通用强化学习
- 原文描述: "...as well as some open-source agentic datasets with runnable environments, such as Agentgym [46]." (...以及一些具有可运行环境的开源代理数据集,如Agentgym [46]。)
- 引用内容: 引用Agentgym作为用于端到端多轮函数调用RL的开源代理数据集之一。
💬 评论讨论
欢迎在这里分享您的想法和见解!