萨顿的「苦涩教训」有一个朴素结论:最终胜出的,往往是能随着计算规模持续扩展的通用方法。GLM-5.3 把这条规律用到了强化学习上——它没有重新训练一个基础模型,而是沿用 GLM-5.2,通过扩大后训练计算、重新设计任务环境并优化训练基础设施,让模型能力提升超过 50%。
这次提升可以拆成一条完整链路:更接近真实工作的环境提供可靠训练信号;继承自 GLM-5.2 的架构降低推理与长上下文成本;IndexShare 进一步压低 rollout 价格;SAO 让异步长程强化学习保持稳定;slime 则把生成、训练和多教师蒸馏组织成高吞吐循环。
#先改变环境:不再训练「刷题模型」
GLM-5.3 后训练的起点,不是先换算法,而是先换任务。
传统代码强化学习经常依赖类似 LeetCode 的短题:输入边界明确,答案容易判定,也方便批量生成。但真实工程工作不是这样。一个机器学习基础设施工程师需要访问计算集群、存储、文档和现有代码,先定位训练栈的瓶颈,再反复实验、比较性能,同时确保结果仍然正确。
GLM-5.3 的环境设计试图复刻这种专家工作流。研究 Agent 从真实任务模式出发,把它们转换成可执行、需要多步探索的长程环境;评判 Agent 先检查任务本身是否可解,避免把无解题当作训练信号;随后,每个环境还会自动生成一个看不到参考答案的验证器。
这个验证器不能只在「正确答案」上工作,还要通过三道测试:
- 输入已知正确解时,必须给出奖励;
- Agent 什么也没做时,不能给奖励;
- 任务只完成一部分时,同样不能给奖励。
团队还会利用求解轨迹寻找奖励捷径和投机解法,再反向修补验证器。这样做的意义,是把「能大量生成环境」和「训练信号值得相信」同时成立。对长程 Agent 来说,环境和验证器不是数据准备的附属环节,而是强化学习系统本身的一部分。
#基座没有换:GLM-5.2 的架构继续承担扩展任务
GLM-5.3 完整继承了 GLM-5.2 的模型架构。它采用 MoE,总参数量为 7440 亿,但每个 token 只激活约 400 亿参数;每层拥有 256 个专家,每个 token 只路由到其中 8 个。这让模型保留大规模容量,又不必为每次计算激活全部参数。
后训练能否扩展,很大程度取决于生成 rollout 是否足够便宜。GLM-5.2/5.3 围绕长上下文和推理吞吐做的几项设计,正好为此提供了基础。
#MLA:先缩小 KV Cache
标准多头注意力会为每个注意力头、每个 token 保存独立的 Key 和 Value。上下文越长,KV Cache 占用越高。
多头潜在注意力(MLA)先把每个 token 的 Key 和 Value 压缩成一个小型共享潜向量,缓存中只保存这个潜向量。真正计算注意力时,再用轻量投影矩阵恢复各个注意力头所需的 Key 和 Value。这样既降低了显存需求,也让长上下文更容易落地。
#DSA:只让注意力读取最相关的历史 token
DeepSeek Sparse Attention(DSA)增加了一个轻量的 lightning indexer,为历史 token 与当前查询的相关性打分,再由选择器挑出 top-k token 交给 MLA。
完整多头注意力的复杂度是 O(N²)。索引器本身仍需扫描上下文,但它使用少量 FP8 注意力头,成本远低于在所有 token 上执行完整 MLA。预填充到 128K 上下文时,端到端的单 token 成本几乎保持平稳;解码阶段则近似 O(N×k),且 k 远小于 N。长推理链因此变得更可负担。
#MTP:用目标模型自己的表示起草未来 token
普通推测解码通常让一个小模型先草拟多个 token,再由大模型并行验证。GLM-5.2 的多 token 预测(MTP)没有部署第二个完整模型,而是在主模型上方增加一个轻量 Transformer 层,并在多个起草步骤中复用其参数。
这个 MTP 层直接使用主模型最终隐藏状态,还复用主模型的 KV Cache 和稀疏注意力索引。它最多连续起草 5 个 token,再由主模型一次并行验证,平均每次能够接受约 4.5 个 token。起草成本只是一层轻量模块,却能利用目标模型本身的上下文表示,因此比独立草稿模型更高效。
#IndexShare:稀疏注意力之后,索引器反而成了瓶颈
DSA 减少了真正执行注意力的 token 数量,但 lightning indexer 仍要在每一层扫描全部历史 token。上下文达到 200K 时,这部分工作会占据约 81% 的预填充时间。
问题在于,相邻层选出的 token 高度重合,重叠率达到 70% 到 100%。IndexShare 因此把四个稀疏注意力层组织为一组:第一层运行索引器并选出 top-k token,后面三层直接复用同一组索引。
在 100 万 token 上下文下,索引计算已经占据主要成本。省掉四分之三的索引器调用后,每 token FLOPs 降低 2.9 倍;相较原始 DSA,预填充速度提高 1.82 倍,解码速度提高 1.48 倍。
这不只是一次推理优化。强化学习中的 rollout,是模型生成的一次完整样本。单次 rollout 越便宜,同样的 GPU 预算就能产生越多轨迹,模型也能获得更多训练机会。IndexShare 因而直接扩大了后训练可以消费的计算规模。
#SAO:让异步强化学习既不空等,也不失控
Agent 任务的轨迹长度差异很大。如果每次都等待整个批次完成再更新模型,短任务完成后,计算资源只能空等最长的那条轨迹。异步训练可以减少等待,却容易出现策略滞后、离策略轨迹积累,甚至训练崩溃。
SAO(Single-Rollout Asynchronous Optimization)用单 rollout 采样、实用的价值模型训练和 token 级裁剪,缓解了这组矛盾:每条轨迹可以独立进入更新流程,同时把异步带来的偏移控制在稳定范围内。
稳定还不够,轨迹本身还会被上下文窗口截断。GLM-5.3 配合 compaction:当历史即将超出窗口时,把此前过程压缩成摘要,再让模型从摘要继续执行。SAO 负责让异步更新稳定,compaction 负责让任务跨度突破单个上下文窗口,两者共同支持长程强化学习。
#slime:把高速生成和大规模训练接成闭环
slime 是 GLM 系列背后的强化学习后训练框架。它连接两个职责完全不同的系统:
- SGLang 负责生成。它通过连续批处理、KV Cache 管理和优化解码内核,高速生产数以百万计的 rollout;
- Megatron 负责训练。它用张量并行、流水线并行、专家并行和上下文并行,把超大模型与长序列拆分到多张 GPU 上计算梯度。
两套系统使用不同的权重布局。slime 负责反复执行同一循环:SGLang 用当前模型生成轨迹,奖励系统为轨迹打分,Megatron 根据轨迹更新参数,slime 再转换并传回新权重,下一轮生成随即使用更新后的模型。
#多教师在策略蒸馏
GLM-5.3 为 slime 增加了多教师 on-policy distillation(OPD)。学生模型先生成自己的答案,教师模型再对学生实际生成的每个 token 给出概率分布,学生据此学习教师在同一路径上的判断。
这里不是只用一个教师:代码教师评估代码,数学教师评估数学,推理教师评估推理,让不同模型在各自擅长的领域提供信号。
如果每个教师都常驻一套 GPU,大部分资源会在等待中浪费。slime 只把当前教师加载到 GPU,其他权重放在本地存储,并在后台预取下一个教师,尽量隐藏切换延迟。
#路由器与训练框架联合调度
rollout 长度和结束时间各不相同,静态分批会让先完成任务的 GPU 闲置。router 与 slime 联合调度后,一旦某块资源释放,调度器就立即从队列分配新的请求,用动态负载均衡提高整体利用率。
#后训练正在成为独立的 Scaling 轴
GLM-5.3 的关键不是「基础模型没变,分数却变高」这个结果本身,而是它展示了后训练如何形成可扩展系统:
- 真实、可验证的长程环境,决定训练信号的质量;
- MLA、DSA、MTP 与 IndexShare,决定单条轨迹的生成成本;
- SAO 与 compaction,决定长轨迹能否稳定进入训练;
- slime、多教师 OPD 和联合调度,决定每个 GPU 小时能产生多少有效学习信号。
当这些环节同时成立,强化学习就不再只是预训练之后的一次微调,而能成为持续迭代上一代基础模型的独立扩展路径。