prime-rl 0.10.0: faster training, our new RL loss IPO, and one unified eval stackprime-rl 0.10.0:更快的训练、我们新的 RL 损失 IPO,以及一个统一的评测栈

今天我们发布 prime-rl v0.10.0 和 verifiers v0.4.0. 我们新增了新的 RL 算法 IPO 并将其设为默认,专为异步 RL 稳定性而设计,同时还带来了性能改进和新模型支持。


训练吞吐量

训练器的默认设置偏向内存,因此大模型可以放在少量 GPU 上。本次发布还记录了另一端:一个 max-throughput recipe ,它把所有内容都保留在 GPU 上,并使用 fullgraph.

Qwen3-235B-A22B SFT 对比 torchtitan。 两次运行连续使用相同的节点:4 × 8 B300,16k 序列长度,FSDP + EP 8,完整激活检查点,fp32 AdamW,均衡路由。

运行s/steptokens/s/GPUMFU峰值内存
torchtitan5.04325340.7%144 GiB
prime-rl4.39373246.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/GPUMFU
之前:CP 2 + 卸载,TileLang846522.3%
12 节点配方,TileLang1270133.6%
12 节点配方,cuDNN + FlashMLA1283540.1%

在真实权重和数据上,一步从 31.2 秒降至 24.2 秒。在 RL 中,8 层代理每步从约 16 秒降至约 12.5 秒。

DeepSeek V4 Flash 获得了这些自定义内核:

  • 一个 flash 风格稀疏注意力内核:在真实数据上 MFU 从 46.7% → 53.6%。
  • Lightning Indexer 使用融合 FP8 内核评分,CP 收集与计算重叠:MFU 从 40.2% → 47.8%。
  • 一个融合的 mHC 链。
  • 一个融合 RoPE 内核,与 vLLM 逐位匹配,并使 B300 上的 SFT 步骤快 13–14%。

IPO:INTELLECT 策略优化

在异步 RL 中,训练器和推理引擎对 token 概率永远无法完全一致。策略自 rollout 采样以来已经更新,且内核不同。IcePop 是常见的修复方法,当比率 πtrain/πinfer\pi_{\text{train}} / \pi_{\text{infer}}πtrain​/πinfer​ 超出固定范围时屏蔽 token。IPO 则是在概率本身变化过大时屏蔽 token:

∣πtrain(yt)−πinfer(yt)∣>ϵ\left|\pi_{\text{train}}(y_t) - \pi_{\text{infer}}(y_t)\right| > \epsilon∣πtrain​(yt​)−πinfer​(yt​)∣>ϵ

比率会误判分布的两端。一个稀有 token 从 0.01 升到 0.06,比率是 6×,会被屏蔽,尽管几乎什么都没变。一个高概率 token 从 0.90 降到 0.20,比率是 0.22×,会被保留,尽管策略变化很大。IPO 的掩码是双侧的,忽略优势的符号,并且只有一个旋钮。概率差判据来自 DPPO(Qi 等,2026), 它将其用于策略更新之间的 PPO 信赖域。IPO 将其应用于训练器–推理不匹配,并且与 DPPO 不同,其掩码不依赖于优势的符号。IPO 取代了我们之前基于 DPPO 的默认损失,该损失已在此版本中移除。

我们在 GLM-4.5-Air 上进行了 agentic SWE RL 消融实验,未使用 router replay,最多 64 步 off-policy。这是一个刻意设置的极端场景:在大多数运行中 IcePop 是稳定的。然而在这里,IcePop 在约 1.2k 步时崩溃,当时训练器–推理 KL 暴涨超过 20×。IPO 在 eps 0.2 和 0.3 下直接训练通过。在 eps = 0.3, IPO 仅屏蔽约 0.25% 的 token,而在旧的 0.1 下约为 2%。

IPO vs IcePop on GLM-4.5-Air SWE RL
GLM-4.5-Air SWE RL 上的 IPO 与 IcePop 对比

IPO 配合 eps = 0.3 且无 KL 项现已成为默认。IcePop、PPO 和 CISPO 仍可作为可选损失使用。GRPO 也获得两个选项:长度加权基线和精确的 prompt 均值损失聚合,这可以防止具有长轨迹的 prompt 主导梯度。完整设置和复现配置见 docs/ipo.md.

此版本中的其他 RL 变更:

  • Top-p 和 top-k 采样现在在训练器中精确重放,使用从 vLLM 捕获的采样掩码。
  • 训练器批次保持恒定大小:编排器回填被过滤掉的样本。
  • RL 默认冻结 MoE 路由器,这可以防止训练器的专家选择偏离推理所采样的专家选择。

新模型

prime-rl 中的每个架构现在都运行在我们自己的优化实现上。此版本新增:

  • DeepSeek V4 Flash, 配备上述内核和环形上下文并行。
  • Qwen3.8 Flash Next, 具备:
    • n-gram(engram)嵌入按词汇行跨数据并行 rank 分片
    • 索引稀疏注意力
    • Gated DeltaNet
    • 超连接残差
    • sigmoid 门控 MoE
  • Nemotron-H (Nano 和 Super),在打包文档边界处进行 Mamba-2 状态重置,并支持 Ulysses 上下文并行。
  • 来自内联 rollout 的多模态 RL。 图像在 rollout、打包和传输过程中保持内联,而不是作为像素张量传输。vLLM 返回扩展后的 prompt ID 和图像占位符范围,因此每个图像 token 在训练中精确对齐。支持 Qwen-VL 和 Kimi K2.5。

统一评测栈

评测 CLI 已从 verifiers 迁移到 prime-rl。 uv run eval 可在任何环境上评估任何模型,既可独立运行,也可作为训练运行的在线评测:

  • 它通过 verifiers 环境服务器运行,具有自适应并发。
  • 它显示在本地仪表盘中。
  • 它接受多个 [[source]] 块。
  • --resume 会从 trace 流继续被中断的运行,只重新运行缺失的 rollout。

每个训练和评测源都有一个 select 块(include/exclude、shuffle、skip、limit)。它由 verifiers 的共享任务选择机制支撑,因此 prime-rl 和 vf-eval 会为相同配置选择相同的任务。超时的 rollout 现在有独立的结果:在评测中计分,并被排除在训练批次之外。

uv run eval gsm8k
uv run eval @ sources.toml --env.retries.max-retries 3

verifiers 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.