Prime Intellect 发布 prime-rl 0.10.0 与 verifiers 0.4.0
prime-rl 0.10.0: faster training, our new RL loss IPO, and one unified eval stack
Prime Intellect 发布 prime-rl 0.10.0 和 verifiers 0.4.0,新增面向异步 RL 稳定性的默认损失函数 IPO,并带来训练吞吐提升和新模型支持。
原文给出训练吞吐对比、新 RL 损失 IPO 的动机与消融结果,可据此判断异步 RL 稳定性方案的选择。
prime-rl 0.10.0:更快的训练、我们的新 RL 损失 IPO,以及统一评测栈
今天我们发布 prime-rl v0.10.0 和 verifiers v0.4.0。我们将新的 RL 算法 IPO 设为默认,专为异步 RL 稳定性而设计,同时带来了性能改进和新模型支持。
训练吞吐
训练器的默认配置偏向节省内存,因此大模型可以放在少量 GPU 上。本次发布也记录了另一端:一个 最大吞吐配方,它把所有内容都保留在 GPU 上,并用 fullgraph 编译。
Qwen3-235B-A22B SFT 对比 torchtitan。两次运行背靠背使用相同节点:4 × 8 B300、16k 序列长度、FSDP + EP 8、完整激活检查点、fp32 AdamW、均衡路由。
| 运行 | s/step | tokens/s/GPU | MFU | 峰值内存 |
|---|---|---|---|---|
| torchtitan | 5.04 | 3253 | 40.7% | 144 GiB |
| prime-rl | 4.39 | 3732 | 46.6% | 141 GiB |
在相同设置下快了 1.15 倍。用 uv run sft @ examples/advanced/qwen3-235b-a22b/sft-max-perf.toml 复现。
大部分收益来自 MoE 工作:
- 一个 MoE 运行时和检查点布局现在服务于所有模型。
- Gate/up 和 QKV 投影在运行时融合。
- MoE 块用
fullgraph编译。 - torchtitan 风格的分块损失。
- SonicMoE BF16 后端,以及按层选择 MoE 计算。
GLM-5.3。稀疏注意力现在前向传播使用 FlashMLA(在 H200 上比 TileLang 快 1.9–3.6 倍),反向传播使用 cuDNN(快 3–4.7 倍)。结合 12 节点、16k 配方(无上下文并行或卸载),完整 GLM-5.3 SFT(78 层、H200、假数据)改进如下:
| 设置 | 节点 | tokens/s/GPU | MFU |
|---|---|---|---|
| 之前:CP 2 + 卸载,TileLang | 8 | 465 | 22.3% |
| 12 节点配方,TileLang | 12 | 701 | 33.6% |
| 12 节点配方,cuDNN + FlashMLA | 12 | 835 | 40.1% |
在真实权重和数据上,一步从 31.2 秒降至 24.2 秒。在 RL 中,8 层代理每步从约 16 秒降至约 12.5 秒。
DeepSeek V4 Flash 获得这些自定义内核:
- 一个 flash 风格稀疏注意力内核:在真实数据上 MFU 从 46.7% → 53.6%。
- Lightning Indexer 用融合 FP8 内核评分,CP gather 与计算重叠:MFU 从 40.2% → 47.8%。
- 一个融合 mHC 链。
- 一个融合 RoPE 内核,与 vLLM 逐位匹配,并在 B300 上使 SFT 步骤快 13–14%。
IPO:INTELLECT Policy Optimization
在异步 RL 中,训练器和推理引擎对 token 概率永远无法完全一致。自 rollout 采样以来策略已经变化,且内核不同。通常的修复 IcePop 会在比率 πtrain/πinfer 离开固定区间时屏蔽 token。IPO 则是在概率本身变化过大时屏蔽 token:
∣πtrain(yt)−πinfer(yt)∣>ϵ
比率会误判分布的两端。一个稀有 token 从 0.01 变为 0.06 是 6 倍比率并被屏蔽,尽管几乎没变。一个高概率 token 从 0.90 降至 0.20 是 0.22 倍比率并被保留,尽管策略变化很大。IPO 掩码是双侧的,忽略优势的符号,且只有一个旋钮。概率差准则来自 DPPO (Qi et al., 2026),它将其用于策略更新之间的 PPO 信任域。IPO 将其应用于训练器–推理不匹配,且与 DPPO 不同,其掩码不依赖于优势的符号。IPO 取代了我们之前基于 DPPO 的默认损失,该损失在此版本中移除。
我们在 GLM-4.5-Air 上对 agentic SWE RL 做了消融实验,未使用 router replay,且最多 64 步 off-policy。这是一个刻意设置的极端场景:在大多数运行中 IcePop 是稳定的。但在这里,IcePop 在约 1.2k 步时崩溃,当时 trainer–inference KL 暴涨了 20 倍以上。在 eps 为 0.2 和 0.3 时,IPO 一路训练到底。在 eps = 0.3 时,IPO 仅屏蔽约 0.25% 的 token,而旧的 0.1 设置下约为 2%。

使用 eps = 0.3 且不含 KL 项的 IPO 现已成为默认配置。IcePop、PPO 和 CISPO 仍作为可选损失提供。GRPO 也新增了两个选项:长度加权基线,以及精确的 prompt 均值损失聚合,后者可避免长轨迹的 prompt 主导梯度。完整设置和复现配置见 docs/ipo.md。
本次发布中的其他 RL 变更:
- Top-p 和 top-k 采样现在会在 trainer 中精确重放,使用从 vLLM 捕获的采样掩码。
- trainer 的 batch 保持恒定大小:orchestrator 会回填被过滤掉的样本。
- RL 默认冻结 MoE router,从而避免 trainer 的专家选择偏离推理时采样的专家选择。
新模型
prime-rl 中的每个架构现在都运行在我们自己的优化实现上。本次发布新增:
- DeepSeek V4 Flash,包含上述内核以及 ring context parallelism。
- Qwen3.8 Flash Next, with:
- 按词表行跨数据并行 rank 分片的 n-gram(engram)嵌入
- indexed sparse attention
- Gated DeltaNet
- hyper-connection residuals
- sigmoid-gated MoE
- Nemotron-H(Nano 和 Super),在打包文档边界处重置 Mamba-2 状态,并支持 Ulysses context parallelism。
- 来自内联 rollout 的多模态 RL。 图像在 rollout、打包和传输过程中保持内联,而不是以像素张量形式传输。vLLM 返回扩展后的 prompt ID 和图像占位符范围,因此每个图像 token 在训练中都能精确对齐。支持 Qwen-VL 和 Kimi K2.5。
统一 eval 栈
eval CLI 已从 verifiers 迁移到 prime-rl。uv run eval 可在任意环境上评估任意模型,既可独立运行,也可作为训练运行的在线 eval:
- 它通过 verifiers env servers 运行,并具有自适应并发。
- 它会显示在本地 dashboard 中。
- 它接受多个
[[source]]块。 --resume会从其 trace stream 继续中断的运行,并且只重新运行缺失的 rollout。
每个 train 和 eval 源都有一个 select 块(include/exclude、shuffle、skip、limit)。它由 verifiers 的共享任务选择支持,因此 prime-rl 和 vf-eval 会为相同配置选择相同的任务。超时的 rollout 现在有独立的结果:在 eval 中计分,并被排除在训练 batch 之外。
uv run eval gsm8k
uv run eval @ sources.toml --env.retries.max-retries 3verifiers 0.4.0
prime-rl 0.10.0 随附 verifiers 0.4.0,完成了向 v1 的迁移:旧版 v0 栈已移除,CLI 现在为 vf-*。详情见 verifiers 发布说明。
致谢
感谢所有为这些发布做出贡献的人,并欢迎新的 prime-rl 贡献者:@parkerpettit、@yafshar、@kcoopermiller、@biswapanda、@Alex-Shan、@cabrinha、@nxphi47、@akirillo、@Apocrathia、@artzhuravel 和 @skpulipaka26。
立即试用:prime-rl 0.10.0 和 verifiers 0.4.0。
来源:Prime Intellect Blog · primeintellect.ai