【Agent】GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models
GLM-4.5,这是一个开源的混合专家(MoE)大型语言模型,具有355B总参数和32B激活参数,具有支持思考和直接响应模式的混合推理方法。通过对23T令牌进行多阶段训练,并结合专家模型迭代和强化学习进行全面的后训练,GLM-4.5在代理、推理和编码(ARC)任务中取得了较强的性能。引入了构建多个专家多轮多轮迭代优化SFT冷启动数据,RL阶段,基于困难度的课程学习,在长度为64K的单阶段RL,动态
论文:https://arxiv.org/abs/2508.06471
代码:https://github.com/zai-org/GLM-4.5
简介
GLM-4.5,这是一个开源的混合专家(MoE)大型语言模型,具有355B总参数和32B激活参数,具有支持思考和直接响应模式的混合推理方法。通过对23T令牌进行多阶段训练,并结合专家模型迭代和强化学习进行全面的后训练,GLM-4.5在代理、推理和编码(ARC)任务中取得了较强的性能。引入了构建多个专家多轮多轮迭代优化SFT冷启动数据,RL阶段,基于困难度的课程学习,在长度为64K的单阶段RL,动态采样温度,代码和科学RL。
- 任务一个通用智能体的核心能力有三个:(1)与外部工具和现实世界互动的智能体能力;(2)在数学和科学领域解决多步骤问题的复杂推理能力;(3)处理现实世界软件工程任务的高级编程能力。
文中在模型架构上,认为更深的模型会有更好的能力,因此考虑减少宽度,增加模型的层数。
预训练数据来源
Web页面、社交媒体、书籍、论文和代码仓库。
引入中期训练阶段
中等规模的特定领域数据集,包括指令数据、仓库级代码训练、合成推理数据(数学、科学、编程竞赛)和长文数据(预训练阶段为4K,中期阶段训练长度从32K扩展到128K)。
后训练
采用两阶段方式,第一阶段专家训练,构建了三个领域的专家模型(推理、Agent、通用对话)。第二阶段统一训练,采用蒸馏技术整合多个专家,构建一个能够深度思考推理和直接响应的综合模型。
SFT
提供一个冷启动,赋予模型基本的聊天、推理和工具使用能力,然后在随后的专家RL训练中进一步增强,以实现更高的性能。统一训练阶段,SFT的目的是将不同专家模型的能力提炼成一个能够处理不同类型任务的混合推理通才。
冷启动SFT
利用一小组带有扩展COT的SFT数据,确保每个专家模型在RL之前具有足够的基础能力。
整体SFT
收集百万样本,涵盖推理(数学、代码、科学等),通话用聊天(写作、翻译、总结、闲谈等)、Agent任务(工具使用、编码、真实项目开发等)和上下文理解任务,并以最大128k token上下文长度去训练模型。
- funtion call模版:为了减少代码的字符转义问题,采用xml模版来封装function call的key-value,而不是Json。结果发现,这种方式可以减少转义的同时不应系那个函数函数调用的执行性能。
对专家模型的输出样本进行拒采样 - 去除重复的、过短的或截断的样本,以及那些不符合有效推理格式的样本;
- 对有客观答案的样本进行正确性验证;
- 利用奖励模型过滤主观问题的回答;
- 对于工具调用场景,确保遵守适当的工具调用协议,并验证轨迹达到预期的终端状态。
prompt筛选
文中尝试删除响应长度在后50%的prompt,发现在数学和科学任务上性能提高2%-4%。为每个prompt生成4个回复,会额外带来1-2%的提升。
Agent SFT数据构建
- Agent框架和工具集合:收集了一组Agent框架和真实世界的工具API和MCP服务器,同时还利用大型语言模型自动构建和模拟一批工具。
- 任务合成:基于这些框架和工具,自动合成一组Agent任务。一方面,对于相对成熟的框架,利用大型语言模型来理解它们的功能,并自动生成相关的查询或任务。另一方面,对于更分散或不同的工具,首先选择一个有代表性的子集,并类似地使用大型语言模型来构建关于该子集的任务。这些任务包括单步和多步工具调用场景。
- 轨迹生成:对于每个合成任务,利用现有的大型语言模型来生成工具调用轨迹。此外,通过使用大型语言模型作为用户模拟器,将多步骤工具调用任务转换为涉及多轮对话的轨迹。
- 质量过滤:对于每条轨迹,使用多个判断代理来评估任务是否完成。只有成功的轨迹才会被保留。
RL
推理RL
这一阶段的RL,侧重于逻辑推理、结构化问题、可验证准确性领域增强模型的能力,例如:数学、代码、科学等领域。这些任务的一个关键特点是奖励信号高精度,可以通过编程或客观清晰度来确定。
-
基于困难度的课程学习
考虑到简单的任务在训练后期,可能会出现响应输出都的奖励都为1的情况,而过于困难的任务在训练前期,可能会出现响应输出奖励都为0的情况。在这两种情况下,由于缺失奖励方差,导致没有提供有用的梯度信号,严重阻碍了训练效率。为应对这一挑战,采用两阶段基于困难度的课程强化学习。图5显示,这两阶段方法能够让模型不断超越其性能上限。在第二阶段时候,为保证高信号质量且低噪声,这一阶段采用的问题都经过严格验证选择。 -
在长度为64K的单阶段RL
先前的研究表明,RL分多个阶段进行,最大输出长度逐渐增加。然而,实验表明,这种多阶段方法的效果不如直接在最大目标长度64K下进行的单阶段RL过程。由于最初的SFT已经使模型适应于生成64k长度的响应,引入最大长度较短的强化学习阶段可能会导致模型“忘记”其长上下文能力。由于模型的平均输出长度减少,这通常会导致性能显著且不可逆转的下降。这种退化在最后64k长度RL阶段很难恢复,从而限制了进一步的改进。实验证实了这一观察结果:如图6所示,直接在完整的64k长度上应用RL不断地推动模型的极限,并产生更好的性能。 -
动态采样温度
动态调整采样温度,以保持精度和勘探之间的健康平衡。具体来说,当上线的平均回报稳定时,将其识别为收敛阶段,并增加采样温度以鼓励更大的多样性。为了降低引入过多噪声的风险,我们实现了一种质量控制机制:在一系列温度范围内定期评估一个固定验证集上的模型性能。然后将下一个训练阶段的温度设置为最大值,该值不会导致性能下降超过当前最佳的1%。 -
代码和科学RL
- 对于代码强化学习,我们发现损失计算的选择对训练效率至关重要。如图7(左)所示,与传统的序列平均损失相比,采用token加权平均损失是非常有益的。token加权方法提供了更细粒度和更稳定的梯度信号,从而显著加快了收敛速度。该方法还有助于缓解token级奖励中固有的长度偏差,并有效地抑制训练过程中过于简单或重复的“基本情况”样本的生成。
- 对于科学RL,我们对GPQA-Diamond基准的研究结果强调,数据质量和类型是最重要的因素。如图7(右)所示,与使用混合质量或未经验证的数据进行训练相比,专门使用专家验证的选择题进行RL的表现明显更好。这个结果强调,即使是像多项选择这样简单格式的任务,严格过滤RL数据池,只包括高质量的、具有挑战性的实例,对于有效的模型改进至关重要。
-
Agentic RL
Web Agent和Code Agent中,每个动作或答案都可以自动检查,这种内置的可验证性提供了密集、可靠的奖励,使其能够更有效地扩展RL训练。- Web搜索领域:数据集构建融合了两种方法:(1)由知识图上的多跳推理驱动的自动化管道;(2)从多个网页中提取和选择性混淆内容,以准备强化学习训练信号。
- Agent领域:收集了大量的GitHub拉取请求和问题,以创建一个现实的软件开发基准,包括用户提示和可执行单元测试。所有评估都在一个带有分布式系统的强化沙箱中运行,它提供了水平可伸缩性和强大的隔离保证。
-
迭代蒸馏
采用自蒸馏方式,迭代提高SFT冷启动模型的性能,然后再改进的模型上恢复RL训练。先用RL训练模型,然后再用这个模型生成的响应替换原始冷启动数据,从而创造一个更好的SFT模型。以此方式不断迭代更新冷启动数据。
通用RL
-
整体RL
整体强化学习的目标是在不同的领域获得广泛的性能提升。为此,我们首先构建了一个包含大约5000个prompt的平衡数据集,涵盖7个主要类别、33个次要类别和139个第三类别。 -
指令遵循RL
创建了一个细粒度的分类法,其中包含7个主要约束类型和151个次要约束类型,涵盖内容需求、格式化规则等。基于这种分类法,一个具有挑战性的指令的专用训练集被组装起来,以涵盖每种约束类型。反馈系统由确定性验证规则、训练奖励模型和批评模型组成。这种混合反馈系统的鲁棒性在GRPO训练中被证明是至关重要的。作者观察到奖励黑客行为得到了缓解,使得策略模型能够在接下来的指令中实现持续稳定的改进。 -
Function calling RL
Function calling RL分为基于逐步规则的强化学习和端到端多轮强化学习。由于它们的输出长度和收敛速度相似,我们将逐步基于规则的RL直接纳入我们的常规RL框架中。对于端到端多回合强化学习,我们首先训练专门的专家模型,然后将这些专家提炼到主模型中。-
逐步基于规则RL
对于具有明确工具调用过程的任务,我们为训练数据中的每一步/回合注释真实值函数调用。给定前面步骤/回合中的任务和函数调用,训练模型生成下一个辅助响应,该响应可以是函数调用或对用户的响应。使用基于规则的奖励,我们引导模型在连续的回合中进行正确的函数调用。因此,我们设计了以下严格的奖励函数 -
端到端多轮RL
分为两种类型:- 单轮多步任务
- 模型需要进行多步骤的函数调用,并与环境交互来完成这些任务。我们使用基于MCP服务器自动合成的复杂任务,以及一些具有可运行环境的开源Agent数据集。
- 多轮多步任务
- 除了与工具执行环境进行交互外,模型还需要与llm模拟的用户代理进行交互,以获取完整的任务信息,完成整体任务。
- 除了与工具执行环境进行交互外,模型还需要与llm模拟的用户代理进行交互,以获取完整的任务信息,完成整体任务。
-
病态RL
一般强化学习作为训练后的最后一个阶段,需要纠正潜在的问题,如语言混合、过度重复、格式错误等。尽管在上述一般强化学习任务中惩罚此类行为是有效的,但这些病态的低发生率(通常小于输出的1%)使其成为样本效率低下的优化策略。因此,我们通过识别极有可能触发这些病理行为的提示,为病理RL策划了一个目标数据集。在这个数据集上进行训练可以让我们施加有效的惩罚,进一步降低这些问题行为的残差错误率。
-
性能评估
-
Base模型
-
Agentic能力
-
推理能力
-
代码能力
-
通用能力
更多推荐
所有评论(0)