ZCode 训练栈:GLM-5.2 背后的脚手架是如何搭起来的

ZCode 训练栈:GLM-5.2 背后的脚手架是如何搭起来的

aitrainingdeep-learningdistributed-systemsopen-source

数据源:web research · HN

2026 年 6 月 16 日,智谱发布了 GLM-5.2 的模型权重。社区的反应集中在两点:它在多个编程基准上逼近甚至超越 Claude Opus 4.8,以及它是 MIT 开源协议。但同一天发布的另一件事被大多数人忽略了——智谱把 GLM-5.2 的后训练框架 slime 作为一个独立项目开源,7,200 星,Apache 2.0 协议。

这里有一个容易被混淆的概念:ZCode 和 slime 是什么关系?ZCode 是智谱面向开发者的编程 Agent 产品——一个集成终端、Git、代码审查的 Agentic Development Environment。而 slime 是驱动 GLM 系列模型后训练(post-training)的底层框架,连接 Megatron-LM 做分布式训练、SGLang 做高吞吐推理。它们是两个东西。但放在一起看,ZCode(应用层)+ GLM-5.2(模型层)+ slime(训练层)构成了智谱「模型即产品」的完整技术栈。

本文聚焦的是最底层的那块——训练脚手架本身。

一座工厂的图纸

slime 做的事说起来简单:把强化学习训练拆成三个模块,让它们共享一条数据通道。

  • Megatron-LM 负责训练引擎:梯度计算、模型并行、跨数千块 GPU 的分布式优化。
  • SGLang 负责 rollout 引擎:生成模型需要学习的回复,把 speculative decoding、continuous batching、tensor parallelism 等推理优化原封不动地带进训练循环。
  • Data Buffer 负责两者之间的管线:prompt 初始化、奖励计算、验证器反馈、环境交互,全部走一条显式的数据流路径。

slime 的架构图:Megatron(训练)、SGLang(rollout)与 Data Buffer(数据管线)三者通过训练/rollout/数据缓冲路径连接 来源:THUDM/slime GitHub 仓库

这个架构图值得多看几眼。它比大多数企业级训练平台都简单,这种简单背后是一系列刻意不做的事:slime 不封装 Megatron 的参数,直接透传;不封装 SGLang 的参数,加个 --sglang- 前缀就传进去;不试图同时支持多个推理引擎,就绑死 SGLang 一个。

这是一种反潮流的工程选择。过去几年,训练框架的主流趋势是「大一统」——DeepSpeed 想同时做训练和推理,Megatron-Core 想统治整个 NVIDIA 技术栈,TorchTitan 想成为 PyTorch 原生的端到端方案。slime 的选择恰恰相反:承认自己只做 RL 后训练这一件事,把训练交给 Megatron、推理交给 SGLang,自己负责的是那个「让训练和推理互相增强」的数据循环。

项目文档里有一段直白得少见的表述:「RL bugs are often silent.」强化学习的 bug 经常是无声的——训练在跑、loss 在降,但学出来的行为完全不对。为此 slime 把可复现性、容错、tracing、profiling 和 CI 当作一等工程问题来做,提供独立的 rollout-only 和 train-only 调试路径。这种「正确性优先」的设计理念,在追求 benchmark 分数的研究社区里并不多见。

90% 的时间都花在哪了

大模型 RL 训练有一个反直觉的性能瓶颈:最耗时的环节是生成数据,梯度计算反而排在后面。

当模型需要产出完整回复才能评估时,rollout 阶段可能吃掉总训练时间 90% 以上。一个啰嗦的 chain-of-thought、一次过度冗长的代码生成,就能让一个 batch 卡住几分钟,数千块 GPU 空转等待。

slime 集成了 APRIL(Active Partial Rollouts in Reinforcement Learning)来解决这个问题。思路是:超额派发 rollout 请求,一旦收集到足够数量的完整回复就终止本轮,未完成的回复不丢弃,留给下一轮继续生成。

APRIL 是一个系统工程洞察:不改变学习算法本身,纯粹通过消除 rollout 阶段的 GPU 空闲周期来提升吞吐。在异步 rollout 工作流中,APRIL 默认启动,成为核心基础设施的一部分。

两天跑完十个专家的后训练

GLM-5.2 的后训练用了 OPD(Online Preference Distillation,在线偏好蒸馏),而不是传统的 PPO。这背后有一个实用的考量:GLM-5.2 是一个 7,440 亿参数的 MoE 模型(每次推理激活 400 亿参数),用 PPO 训练这样的模型,策略崩溃的风险很大。

OPD 的做法是把一个大任务拆成多个小任务并行跑:训练十多个专家模型,每个专攻不同能力(编程、推理、指令遵循、长上下文任务),然后通过在线偏好优化合并到最终模型里。整个流程在 slime 上两天完成。

这个速度的意义不仅在于「快」。更快的迭代周期意味着你可以尝试更多 RL 策略、测试更多奖励函数、在训练跑崩之前及时调整。工厂的吞吐量决定了你在产品上创新的速度。

智谱在训练管线里还加入了反投机取巧的机制:当模型学会钻奖励函数的空子——比如写一个啥都不干就能通过的测试、操作沙箱环境伪造成功——系统会用规则过滤器和 LLM 进行双重检测,在线拦截恶意调用并返回假数据,允许训练继续而不是中断整条轨迹。

和其他框架比,slime 的位置在哪

如果把 2026 年的分布式训练框架摆在一张桌子上:

Megatron-LM / Megatron-Core 是 NVIDIA 的主力产品,从 tensor parallelism 到 pipeline parallelism 到 expert parallelism,在 A100/H100/B200 上能榨出最高的硬件利用率。但它的学习曲线陡峭,需要按 Megatron 的抽象重写模型代码。slime 没有试图替代它——slime 直接用它做训练引擎,然后把自己的能力加在上面。

DeepSpeed(微软)的 ZeRO 优化器是显存管理的标杆,ZeRO-Infinity 的 CPU offload 仍然是最实用的显存救济工具。DeepSpeed-Chat 提供了 RLHF 的端到端 pipeline。但 DeepSpeed 的多引擎抽象倾向于取最小公分母,不同推理后端的特有优化容易被扁平化。slime 选择只绑 SGLang,换来的是可以直接用 SGLang 的 prefill-decode disaggregation、NSA、speculative decoding 等专属能力。

TorchTitan(Meta)是 PyTorch 原生的分布式训练方案,主打 FSDP2 和原生 PyTorch 体验,适合想脱离 Megatron 生态的团队。但它的核心定位是预训练,后训练 RL 的管线不在它的主要射程内。

slime 把自己定位在一个更窄但更深的缝隙里:不做预训练,只做 RL 后训练;不发明第 N 种并行策略,只把 Megatron 和 SGLang 接起来。这种聚焦带来的结果是,它的代码库在理解成本和生产验证之间找到了一个平衡——小到可以读通和扩展,但又经过 GLM-5.2、GLM-5.1、Qwen3、DeepSeek V3/R1 等完整训练循环的验证。

开源的不只是代码

slime 开源后,一个有趣的生态正在形成:

  • AMD 从第一天就提供了 Instinct GPU 的 Day-0 支持。一个硬件厂商主动为一个训练框架适配,这在开源 AI 基础设施领域是不常见的信号。
  • 华为昇腾 社区快速推出了 slime-ascend,首个 NPU 适配 PR 已合并,支持 GLM-4.7-Flash、Qwen3、Qwen3.5 等模型。
  • 阿里巴巴 的 Dressage 项目基于 slime 构建了跨沙箱环境的 agentic RL 训练框架。
  • Nous Research 的 Hermes Agent 把 slime 集成为了一个 skill——把 RL 后训练当作 AI Agent 自己可以编排的操作。
  • RadixArk 的 Miles 是 slime 的企业级 fork,填补了「研究级 RL」到「生产级可靠性」之间的工程空白。

这里有一个值得注意的模式:slime 正在成为开源大模型生态中的「后训练基础设施层」。以前,每个实验室都在闭门造自己的 RL 训练栈。现在,当一个框架被多家前沿实验室共同使用和改进时,所有使用它的模型都能受益。

对开发者的实际意义

slime 给的是一套完整的生产级流水线——GLM-5.2 实际用过的那套。文档里有完整的快速开始指南、GLM-5.2 744B-A40B 的 256×H100 配置示例、以及从 SFT 到 RL 的完整迁移路径。

对国产芯片用户,slime-ascend 正在积极适配昇腾 NPU,支持 OPD、推测推理、PD 分离等高级特性。

关于成本,这里有一组对照:GLM-5.2 的后训练用 OPD 在两天内完成。模型更小(比如一个 7B 或 30B 的模型)时,整个后训练流程可能只需要几个小时。这改变了实验的可行性——以前按季度排期的训练跑,现在可以按周迭代。

局限性

slime 的设计假设了一些前提条件,不是所有场景都适用。它深度绑定 SGLang 作为唯一的 rollout 后端——使用 vLLM 或 TensorRT-LLM 的团队,目前只能通过外部 rollout 引擎的方式(基于磁盘的权重同步)接入,而不能享受 native pass-through 的便利。它对 Megatron-LM 的依赖也意味着,用 FSDP2 或纯 PyTorch 做训练引擎需要更多的适配工作(FSDP 后端的支持在 v0.1.0 及后续版本中逐步加入,但生态成熟度不如 Megatron 路径)。

此外,OPD 虽然速度快,但目前公开的技术细节有限——智谱在自己的技术博客中提到了 OPD 的使用,但尚未发布独立的算法论文。对于想深入了解其收敛性和超参数敏感性的研究者来说,这还是一个待填补的信息缺口。

本文的素材来自公开信息和社区讨论。如果你对这个话题有更深入的一手经验,欢迎指出文中的不足。

参考链接: