INTELLECT-3: 在强 base 上做大规模 agentic RL

Prime Intellect Team · 2025-12-18 · arXiv:2512.16144 · 106B MoE / 12B active · 512×H200
关键词: prime-rl · agentic RL · multi-turn tool use · MoE · GLM-4.5-Air-Base · verifiers · Environments Hub

速读卡片 (TL;DR)

一句话:在 GLM-4.5-Air-Base 上 SFT + 大规模 async RL,用自家 prime-rl + verifiers + Prime Sandboxes 训出一个在 math/code/science/reasoning/agentic 上压住 GLM-4.5-Air、追平 3× 大的 GLM-4.5、对 6× 大的 DeepSeek-R1 部分超越的 106B MoE 模型,并把整套 stack 全部开源。

106B / 12B
total / active 参数
512 H200
峰值 GPU,16 train + 44 infer
90.8 / 88.0
AIME24 / AIME25 (avg@32)

立场:Prime Intellect 系列从"分布式 pretrain"(I-1)→"分布式 RL on small model"(I-2)→"中心化大集群 agentic RL on strong base"(I-3),决定性放弃了"全栈分布式"叙事,转而把全部工程投入押在 RL 后训练 + Environments Hub 生态。这是务实而清晰的转向。


1 · 动机:为什么是 agentic RL × strong base × 106B

I-3 看上去只是"又一个 RL post-training paper",但放在 Prime Intellect 自家系列里看,它每个选择都意味深长。这一节拆三个维度。

1.1 历史脉络:RL 后训练的爆点已经从 reasoning 漂移到 agentic

2024 末到 2025 上半年,开源 RL 后训练的"剧本"是:在一个 dense base 上跑 GRPO/DAPO,优化数学推理 chain-of-thought。DeepSeek-R1Qwen3-Thinking、INTELLECT-2 都属于这一波。这一波的特征是:

到 2025 下半年,前沿模型(o3Grok 4GLM-4.5Kimi K2.5)已经把竞争点漂到了agentic + tool-use + 长 horizon:模型一次任务里要 search → click → 读网页 → 写代码 → 跑 sandbox → 看 stderr → 改代码 → 提交。开源框架(verl、OpenRLHF、TRL、NeMo-RL)对这种 multi-turn rollout 的支持往往是外挂而不是 first-class。

I-3 的论证非常直白:"从 SFT 到大规模 RL,我们整条 stack 都是为这个新爆点设计的"——prime-rl 的 orchestrator、verifiers 的环境 hub、Prime Sandboxes 的 4000+ 并发执行,全是为了 agentic episode 服务。

1.2 别的方案为什么不够

路径典型代表对 agentic RL 的痛点
"魔改 verl 加 tool"verl + 自定义 rollout环境与 trainer 强耦合,版本治理混乱
"在 chat 框架上加 RL hook"TRL / OpenRLHF agentic patch缺 in-flight weight update,长 rollout 时吞吐塌方
"自己造一个 monolith"多家闭源 lab不开源,社区无法复用环境
"在 base 上 from-scratch RL"R1-Zero / 早期 INTELLECT-2SFT prior 缺失时 tool 协议都学不稳
"全分布式 across internet"INTELLECT-1 (pretrain), I-2 (RL)集群 fabric 不够 → AllReduce tail latency 爆;agentic 还要 sandbox 调度,push 不动
I-3: 中心化 60 节点 + first-class agentic + Hub把"分布式"野心收回到工程现实里

1.3 为什么这事不平凡

读 I-3 容易觉得"啊不就是 SFT + GRPO 嘛,怎么没新算法?"——但把 Prime Intellect 系列看成一条曲线,I-3 的非平凡性来自三个看似背离 I-1/I-2 叙事的取舍:

所以 I-3 真正的"非平凡"不在某个 ML trick 上,而在一组 infra 优先级重排 上。系统层面的硬骨头(in-flight weight update、grouped-MM MoE、context parallelism、distributed Muon、千并发 sandbox、Headless Service + nsenter 注入命令)远多于算法新意。

读 I-3 的姿势:把它当作一份"在 strong base 上做 agentic RL 的 cookbook + 集群运维报告",而不是一篇算法论文。算法部分基本就是 IcePop (token-level masked IS),它本身只是 GRPO 家族的一个稳定性补丁。

2 · 背景速查

术语含义
GLM-4.5-Air-BaseZ.ai 出的 106B 总参 / 12B 激活的 MoE base 模型,46 层 decoder, hidden 4096, MoE dim 1408,使用 Muon 预训练
prime-rlPrime Intellect 自研 async RL 框架,FSDP2 trainer + vLLM inference + CPU orchestrator 三件套
verifiersPython 库,把 RL 环境抽成 dataset + rollout method + Rubric (reward funcs) + load_environment 四件套,可 pip install
Environments Hub类 PyPI 的环境注册中心,500+ 环境,标识形如 primeintellect/i3-code
Prime SandboxesK8s 之上的 Rust Gateway + Headless Service + nsenter sidecar,< 10s 冷启,4000+ 并发
Muonmatrix-level optimizer,Newton-Schulz update,需要 full gradient — 与 FSDP shard 冲突,要 all-to-all 重组
IcePoptoken-level masked importance sampling,本文 RL loss 用的就是它
in-flight weight updatevLLM 在不重启不丢 KV 的情况下接收新 policy 权重,允许一条 trajectory 跨多个 policy 完成
EnvGroupverifiers 提供的"多环境合一"抽象,通过 task_id 列路由 rollout 与 scoring
FSDP2PyTorch 原生的 fully-sharded data-parallel,支持 TP/CP/EP 组合
Context Parallelism (CP)把 attention 计算切到 N_cp 张卡上,Ring Attention 思路
grouped-MM MoEtorch._grouped_mm kernel,在 expert 维度做批量矩阵乘,代替 EP 的 scatter/gather
max_off_policy_stepsI-3 设为 8,跨 8 步以上的 stale rollout 直接丢弃

对读者(已熟悉 I-1/I-2)的最小补丁:把 prime-rl 想成 PipelineRL/AReal 思想 + verifiers env 接入层 + 自家 vLLM 改造;最关键的工程差异是"orchestrator 是个 CPU 进程,trainer/inference 真物理 disaggregated"。


3 · 系列演化:I-1 → I-2 → I-3

这一节是给老读者看的 differential。如果只读一节,读这节。

INTELLECT-1 2024-12 10B dense decentralized PRETRAIN 招牌: 跨大陆训练 DiLoCo + low-bw 能不能去中心化 pretrain INTELLECT-2 2025-05 32B dense (QwQ) decentralized REASONING RL 招牌: 全球志愿者算力 PRIME / Shardcast 能不能去中心化 RL INTELLECT-3 2025-12 106B MoE / 12B act centralized 512 H200, 1 fabric AGENTIC RL 招牌: 整套 stack 开源 prime-rl + verifiers + Hub on strong base × tool-use
三代叙事的转向:从"证明分布式可行"到"放弃分布式,把工程红利放在 RL 后训练的全栈开源 + agentic 一等公民"。

3.1 每一代解决了什么、留下了什么

维度I-1I-2I-3
训练阶段pretrain from scratchRL on QwQ-32BSFT + RL on GLM-4.5-Air-Base
规模10B dense, 1T tokens32B dense106B MoE / 12B active
计算拓扑3 大陆,~12 节点志愿者集群,异地1 个集群,512 H200,IB fabric
核心创新DiLoCo + low-bandwidth all-reducePRIME/Shardcast/TOPLOC,异步 RL across internetprime-rl 全栈、verifiers 环境包、Prime Sandboxes
RL 算法GRPO 变体masked token-level IS (IcePop)
对外宣称价值"我们能""我们能,而且更便宜""我们能开源整条 cookbook"
对话姿态抗中心化抗中心化务实,不再讲分布式故事

个人 take:I-1/I-2 是"在错的题上做对的事";I-3 是"切到对的题,再做正确的事"。从一个长期 thesis 来说,这个调整很健康——开源生态最缺的不是分布式预训框架,是可复现的 RL 后训练 cookbook + 环境治理


4 · prime-rl 架构: 三件套 + async off-policy

4.1 三件套

prime-rl 把 RL 训练拆成三个物理 disaggregated 的角色:

Trainer (FSDP2) 16 nodes × 8 H200 grad g_n → θ_n+1 Inference (vLLM × N) 44 nodes × 8 H200 OAI api + /update_weights Orchestrator (CPU) scheduler + relay 载入 verifiers env θ_n rollouts batches Environments Hub i3-math · i3-code i3-science · i3-logic deepdive · deepswe mini-swe-agent-plus pip-installable verifiers Prime Sandboxes Rust Gateway Headless Svc + nsenter gVisor (runsc) 256 sandboxes/node code/SWE/web tools
prime-rl 三件套(顶部) + 两个支撑 service(底部)。Orchestrator 是个 CPU 进程,真正的 hot loop 是 trainer ↔ inference 之间的双向 relay。Environments Hub 是 verifiers 模块的注册中心,Sandbox 服务于 code/SWE/tool 类环境。

4.2 Async one-step off-policy

同步 on-policy 的痛点:inference 生成完 (x_0, y_0),它必须等 trainer 算出 θ_1 才能继续。Async 下,inference 可以在 trainer 还在算 g_0 的时候,继续用 θ_0 生成 (x_1, y_1)——下一步训练就是用了"老一步"的 policy 产生的 rollout,通过 IS 校正。

θ used by inference at step n ∈ {θ_min(0,n−1), ..., θ_n−1}

I-3 默认 max_off_policy_steps = 8。也就是同一条 rollout 跨越的 policy 跨度若超过 8 个版本,就丢掉。这给 IcePop 校正留了一个"安全围栏"。

反向论证: 如果不 async,会怎样?

I-3 自己测了——关闭 in-flight weight updates 后 step time 增加 2× 以上。原因是 inference 节点(44 个)远多于 trainer 节点(16 个),如果 inference 必须等 trainer 完成,大半算力空转;反之 trainer 在等 inference 时浪费的算力较少。这个 1:3 的 train:infer 比例就是为 async 设计的。


5 · Continuous batching + in-flight weight updates

这部分是 prime-rl 相对 verl/OpenRLHF 最具体的工程改进。问题场景:reasoning model 在 agentic 环境里,rollout 长度方差极大(短的 5k,长的 60k);如果 batch 必须等最慢的那条结束才能投到 trainer,那 batch 末期 inference 池的大部分槽位是 idle 的。

5.1 Continuous batching: rollout 池"永远满"

orchestrator 维护一个固定大小 N 的 in-flight rollout 池。任何一条 rollout 完成后,立刻在池子里替换成一个新的 prompt。这与 vLLM 自身的 token-level continuous batching 是两层不同抽象:vLLM 管的是"同一个 batch 里 token 步进的对齐";orchestrator 管的是"prompt 级的池子保持饱和"。

5.2 In-flight weight update: 同一条 rollout 跨多 policy

当 trainer 产出 θ_n+1,orchestrator 通知 inference 池,vLLM 服务暂停 generation 几百毫秒,接收新权重,然后从中断处继续 decode。也就是说,同一条 rollout 的前 5k token 可能由 θ_n 产生,后 35k token 由 θ_n+1 产生。这是 IcePop 这种 token-level 而非 sequence-level 的 IS 必须支持的原因——sequence-level IS 在这种场景下分母都不知道写什么。

time → θ_n θ_n+1 θ_n+2 θ_n+3 policy 在 inference 池上的快照 rollout #1 (跨 2 policy, 完成) rollout #2 (短) rollout #3 (跨 3 policy, 完成) rollout #4 (替换 #2, 1 policy) rollout #5 (跨 2 policy, 进行中) in-flight update in-flight update in-flight update
顶部条带是 inference 池上"当前 policy"的版本;每条横条是一条 rollout 的生命周期,颜色块表示该段 token 由哪个 policy 产生。Rollout #1 #3 #5 都是混合 policy 产物;短的 #2 在某个 update 之前就结束了被替换成 #4。

5.3 Multi-Client Orchestrator: 为什么不用 vLLM 自带 DP

这是个有趣的小细节。I-3 试过 vLLM 多节点 data-parallel,发现 inference throughput 不能 linearly scale,加节点出现 plateau。原因是 vLLM 多节点 DP 内部有协调开销。他们的解决方案非常朴素:每个 inference 节点跑一个独立 vLLM server,orchestrator 维护 N 个 client,简单 round-robin 派发 prompt group,完全去掉 inter-node 同步。结果:throughput 与节点数线性 scale。

(个人 take: 这种"放弃框架内置的 DP,自己在外层做 sharding"的做法在大集群里非常常见,是个很好的工程教训。)


6 · Verifiers + Environments Hub: 把环境当 PyPI 包来管

这是 I-3 最有 lasting 价值的设计——比模型本身重要。

6.1 一个环境是什么

environments/primeintellect/i3-code/      # 一个 pip-installable 模块
├── pyproject.toml        # 锁依赖
├── env.py
│   ├── load_environment()       # 工厂方法
│   ├── class CodeEnv(SandboxEnv):
│   │     dataset: 8.6K Python 题
│   │     async def rollout(client, prompt, info):
│   │         # 多轮交互,直到 termination
│   │     class Rubric:
│   │         reward_funcs = [test_pass_rate, format_check]

类继承层级:Environment → MultiTurnEnv → ToolEnv → StatefulToolEnv → SandboxEnv → CodeEnv。每一层加一个能力:多轮 / OpenAI 工具调用格式 / 工具参数依赖 rollout 状态(如 sandbox ID)/ 沙箱执行 / 测试用例打分。

6.2 EnvGroup: 多环境同时训练

I-3 训练时同时在 math + code + science + logic + deepdive + deepswe 等多个环境上跑。EnvGroup 是 verifiers 提供的"把多个环境拼成一个"的容器,数据集 concat 后注入一列 task_id,rollout/score 时按 task_id 路由到对应子环境。

6.3 Hub vs 把环境塞 trainer 仓库里

痛点"塞 trainer 仓库"模式Hub 模式
版本管理改环境 = 改 trainer 仓环境独立版本号
消融分支 / commit hashpin 不同版本
外部贡献要懂整个 trainer只懂 verifiers API
评测一致性eval 与 train 代码漂移同一份 rollout/Rubric

实际效果:报告说截至发布时已有 500+ 环境。这是个生态飞轮——别人加的环境 prime-rl 直接能用,反过来 prime-rl 的训练成果验证了环境质量。


7 · Prime Sandboxes: 千并发代码执行

"在 RL 训练里跑用户代码"是 agentic RL 的最大基础设施开销之一。I-3 单单 i3-code 一个环境就需要 4000+ 并发 sandbox。直接用 K8s 的 kubectl exec 死路一条——他们实测每条命令延迟可达 2.5s,瓶颈在 etcd 的 write lock。

7.1 三层旁路 K8s 控制面

Rollout (verifiers env) Rust Gateway HTTP API 直查 DNS,跳过 kube-proxy Custom CoreDNS Headless Service Sandbox Pod (gVisor runsc) Sidecar agent target ns nsenter inject resolve K8s API Server (bypass for hot loop) 仅用作 lifecycle (Kopf) Push webhook "我 ready 了" 绕过 polling,毫秒级通知
Hot-path = Rollout → Gateway → (DNS) → Headless Service → Pod → Sidecar → nsenter。K8s API 只参与 pod 创建/销毁的 cold-path。Sidecar 主动 push webhook 通报 ready,完全跳过 polling。

三个关键 trick:

结果:< 10s 冷启,瞬时 4000+ 并发,256 sandboxes/node 的密度。


8 · MoE × 长序列 × Muon 的工程取舍

8.1 为什么没启用 Expert Parallelism

106B / 12B-active MoE 一般会想到用 EP 切 experts。但 I-3 经实测关掉 EP 比开 EP 快。论文里 Figure 5 给了一个直观图:torch._grouped_mm 在 hidden=4096, MoE_dim=1408 下,当每张 GPU 上的 token 数足够大时(seq=32k–64k),即使专家数 128 也已经把 grouped GEMM kernel 喂饱了。这时再切 EP,只会引入 scatter/gather 通信开销,而不能再降低 grouped GEMM 时间。

"专家不够忙"才是 EP 的适用场景;I-3 不是。

这里的隐含教训:EP 不是 MoE 训练的银弹,要看 per-GPU token 数能不能 saturate kernel。

8.2 长序列:CP 不行,activation offload 凑合

Activation memory 估算 (46 层, hidden 4096, FA3 + full activation checkpointing):

Mem_act = 46 × (48000 × 4096) × 2 bytes ≈ 18 GB

到 48k seq + FSDP=32 还能扛;到 64k+ 必须再做点什么。两条路:

方案结果
Context Parallelism (Ring Attention, N_cp=2)能到 256k,但等于把 DP 砍半;FlexAttention 实现还实验性,出现 accuracy 下降,生产不可用
Activation offload to CPU (torchtune-based)扛到 72k,MFU 几乎不变(同步版降 0.1%,async 版有 mem leak 不用)

Agentic SFT 阶段(98k 上下文)他们才上 CP。这是个非常实用的"先 offload 撑住,再 CP 顶天"的级联策略。

8.3 Distributed Muon

Muon 操作的是整个矩阵(Newton-Schulz 迭代),与 FSDP 把权重 shard 在不同 rank 上天然冲突。两个方案:

MoE 的 state dict 还要在广播给 vLLM 时动态变换:trainer 用 torchtitan grouped-MM layout,inference 用 HF 标准 MoE layout,在 push 权重的 hot path 上做 layout 转换。


9 · RL 算法: Masked token-level IS (IcePop)

I-3 的 RL loss 没有创新,直接用了 IcePop [Zhao et al. 2025]。我们写出公式然后做物理直觉。

9.1 公式

J(θ) = E [ (1/Σ|y_i|) Σ_i Σ_t M( π_train(y_{i,t}|·;θ) / π_infer(y_{i,t}|·;θ_old) ; α, β ) · Â_{i,t} ]
M(k) = k if k ∈ [α=0.5, β=5]; else 0
Â_{i,t} = S_i − mean({S_j}_{j=1..G})

9.2 物理直觉

9.3 反向论证: 为什么 mask 而不是 clip

常见做法是 PPO clip:min(r, clip(r, 1-ε, 1+ε)) · A。但当 r 极大时 clip 后还是有梯度——只是被截断到边界。在 high off-policy + reasoning rollout 这种 long-tail 场景里,这种"边界值"的梯度本身是噪声(因为 r 很大说明这是个 trainer 不太会产出的 token,信号其实不可信)。Mask 干脆不算这个 token 的梯度。

9.4 训练不稳定性: GSPO 崩盘

论文有一张 ablation 图(Figure 10):同一个 async-8 setup,用 GSPO 出现 reward 直接塌方;CISPO/IcePop 稳定。这跟 [Khatri et al. 2025] 与 [Qi et al. 2025] 的发现一致——sequence-level IS 在 high off-policy 下天然不稳。

9.5 一个具体数字示例

tokenπ_inferπ_trainrM(r)是否参与梯度
"def"0.400.501.251.25
"solve"0.100.040.400否,r<0.5
"return"0.050.306.00否,r>5
"x"0.200.180.90.9
"\n"0.301e-7~00整条 rollout mask 掉

10 · 训练配方与一个具体 agentic episode 走查

10.1 配方一览

阶段规模关键点
SFT Stage 1 (general reason)~33M tokens/step, ctx 65k, 1 epochNeMoTron-Post-Training-v1 + AM-DeepSeek-R1-Distill;Muon, lr 5e-5,FSDP=64, DP=8
SFT Stage 2 (agentic)800 steps, 2 epochs, ctx 98k (CP=2)SWE-Swiss + Toucan Tool + 自家环境合成,Muon lr 5e-8 → 0
RLBS 256 prompts × 16 rollouts, ctx 65k, ~1500s/stepMuon lr 1e-6;16 train + 44 infer (1:3);max_off_policy 8;在线难度过滤(easy/normal/hard 池子),pass=1 直接踢出

10.2 一个具体 episode: deepswe 跑通一个 GitHub issue

设想 task: "Project requests/requests 中 Cookie 在 redirect 时被 leak 给三方域,issue #1234"。环境是 deepswe (基于 mini-swe-agent-plus 改的 scaffold)。

env reset 从 Custom Registry 拉镜像 requests:1234 (warm pool) Turn 1: Assistant <think>... 我要先看代码 ...</think> tool_call: bash("ls requests/") Turn 2: Tool result sessions.py adapters.py ... Turn 3: Assistant str_replace_editor edit sessions.py:rebuild_auth(...) Turn k: submit() 声明完成 Rubric: 测试套 test_redirect_leak: FAIL → PASS ✓ → r=1 prime-rl 同时记录 • 总 token: ~30k assistant + ~12k tool • 一条 trajectory ≤ 200 turns • 期间 policy 可能 update 5–6 次 • 每 token: π_infer logprob (vLLM 直返) • tool 输出区间: loss mask=0 • reasoning 区间: loss mask=1 • 若 sandbox failure: 整条丢 • 完成后 advantage = r − mean_group • 16 rollouts/prompt 全完成 → 进 batch • 跨 policy 跨度 > 8 → 整条丢 关键: tool 返回的 token 不参与 IS (它们不是 policy 产生的) Reward decomposition: • 主奖励: test pass (binary) • 备选: 格式 / submit() 调用 / 长度 • Rubric 加权 (verifiers Rubric 抽象)
一条 deepswe rollout 的全过程。左侧是 conversation;右侧是 prime-rl 在背后追踪的状态。注意 tool 返回的 token 在 loss mask 里被屏蔽——它们不属于 policy 的输出分布。

关键预算估算: 一条 rollout 上限 200 turns × 平均 200 token/turn ≈ 40k token,而 RL ctx 是 65k,所以一条难题真的会撞天花板。这也是为什么 future work 里专门提到"long horizon agents 要让模型自己管理 context"——65k 不够用了。

10.3 Reward 与 mask 的细节


11 · 实验关键结果

11.1 主表(节选)

BenchmarkI-3GLM-4.5-AirGLM-4.5GLM-4.6DSR1-0528DS v3.2
AIME24 avg@3290.884.685.892.083.288.1
AIME25 avg@3288.082.083.390.373.484.7
LCB v6 avg@269.361.564.573.062.571.6
GPQA avg@474.473.377.078.877.581.4
HLE avg@114.613.314.813.315.917.9
MMLU-Pro81.973.983.583.175.384.6

读法:

11.2 训练曲线

论文给出在 AIME24/25, LCB, HLE, GPQA 上每 15 步的 online eval 曲线。训练到 ~600 步时曲线仍在向上,未饱和。这是 I-3 在 conclusion 里反复强调"如果再多训会更好"的依据。

11.3 训练效率


12 · 与同类工作对比

系统对比维度差异
INTELLECT-1预训练 vs 后训练I-1: 跨大陆 pretrain 10B dense;I-3: 一个 fabric 内 SFT+RL on 106B MoE base。分布式不再是卖点
INTELLECT-2分布式 RL vs 中心化 RLI-2: PRIME/Shardcast/TOPLOC 跨地理 RL on 32B QwQ;I-3: 中心化 prime-rl,first-class agentic + tool。放弃志愿者集群叙事,押 Hub 生态
NeMo-RL (NVIDIA)同款 trainer/infer 解耦NeMo-RL 也是 Megatron+vLLM 解耦,EAGLE-3 集成做 rollout 加速;I-3 缺 spec decoding,但 environments hub 更成熟
Kimi K2.5 Agent Swarm大规模 agentic RLK2.5 走"超大 swarm + 多模态 agentic + RL via own infra";I-3 单 agent 多 turn,无 swarm,但开源整套
GLM-4.5 (本篇 base)同尺寸不同 post-trainI-3 直接证明: 在 GLM-4.5-Air-Base 上,prime-rl + Hub 环境 mix 比 Z.ai 自家 post-train 强 6–8 个点
verl / OpenRLHF / TRL开源 RL 框架verl 主打 hybrid engine + tensor parallel;OpenRLHF 偏 chat RLHF;TRL 偏轻量。三者对 multi-turn agentic 都是 patch 级,不是 first-class
DeepCoder / DeepSWESWE 类 RLI-3 直接复用了它们的 scaffold (mini-swe-agent-plus, R2E-Gym),并把执行层升级成 Prime Sandboxes
AReal / PipelineRLasync + in-flight updateI-3 明确致敬,prime-rl 在此之上加了 multi-client orchestrator + verifiers env 集成

另请参见同期 sibling notes: 07_INTELLECT2_2505.07291.html(INTELLECT-2 详解,本目录下)与 01_INTELLECT1_2412.01152.html(INTELLECT-1 详解)。


13 · 局限 / 个人 take / 待验证问题

13.1 局限

13.2 个人 take

13.3 待验证问题

  1. Hub 的环境质量分布是什么?500+ 环境里多少能直接拿来训生产模型?多少其实是 toy?
  2. 如果对 GLM-4.6-Base(更新更强 base)做同样的 prime-rl pipeline,能不能压过 GLM-4.6 official post-train?
  3. EnvGroup 的 mix ratio 是怎么调的?有没有自动 curriculum(类似 GSM-PLUS 的难度自适应)?
  4. max_off_policy_steps=8 怎么选的?是用 IS variance 监控 + 早期 ablation,还是经验值?
  5. tool 输出非常长(如网页 markdown)时,KV cache 会膨胀,vLLM 怎么调度 / 是否做 KV eviction?
  6. 在 60 节点规模下,fault-tolerance 故事是什么?Slurm 重启?checkpoint 频率?这个规模 1500s/step 跨"两个月",工程必然踩过坑但论文没展开。
  7. 没有 DeepSpeed ZeRO,坚持 FSDP2 + torchtitan 的取舍依据 — 是性能还是社区一致性?

14 · 记忆点

立场 不再讲分布式,押 RL post-training 全栈开源 + agentic-first + 环境治理(Hub)。
招式 GLM-4.5-Air-Base + (SFT general 65k → SFT agentic 98k via CP) → RL on prime-rl with IcePop, BS 256×16, ctx 65k, 16 train + 44 infer。
系统-1 async one-step off-policy + continuous batching + in-flight weight update,关掉这玩意 step time × 2+。
系统-2 Multi-Client Orchestrator(round-robin 派 prompt group)代替 vLLM 多节点 DP,throughput 才线性 scale。
系统-3 Prime Sandboxes 旁路 K8s API: Rust Gateway + Headless Svc + nsenter sidecar + push webhook,< 10s 冷启,256/node。
MoE 没启 EP,因为 grouped-MM kernel 已经被 token 吃饱;EP 只会加 scatter/gather 开销。
长序列 先 activation offload 撑到 72k(MFU −0.1%),98k 才上 CP=2;Ring Attention 实现还不稳。
Muon 与 FSDP shard 冲突 → all-to-all reshuffle (Dion);MoE state dict 在广播给 vLLM 时做 layout 转换。
RL loss IcePop = token-level masked IS,r ∈ [0.5, 5] 才参与梯度;mask 整条若任 token r < 1e-5;比 GSPO/sequence-IS 稳得多。
环境 verifiers 库把环境抽成 (dataset, rollout, Rubric, load_environment);Hub 是这些的 pip-style 注册中心,500+ 已发布。
数字 AIME24 90.8 / AIME25 88.0 / LCB v6 69.3 / MMLU-Pro 81.9,同尺寸全压 GLM-4.5-Air,部分压 3×大的 GLM-4.5。
系列轨迹 I-1 (decentralized pretrain) → I-2 (decentralized RL) → I-3 (centralized agentic RL on strong base + 全栈开源)。
护城河 不在模型,在 prime-rl + verifiers + Hub + Sandboxes 这一整套互相咬合的 infra。