UniRL 文档
架构

概览

UniRL 的主循环、各领域 trainer、rollout engine、train stack 和同步边界。

UniRL 使用 Hydra 入口和按领域区分的 trainer 生命周期。本页只保留导航层说明; 贴近代码的契约来自 unirl/README.md 和各 package README, 并以页面形式内嵌在各文档分区的侧边栏中。

同步 RL:
  train_diffusion | train_ar | train_pe | train_unified_model | train_agentic
  -> rollout -> reward -> advantage -> train -> optional weight sync

监督训练:
  train_sft
  -> records -> build Part -> train

异步 RL:
  train_async_diffusion | train_async_ar
  -> 独立的 train 与 rollout placement slab
  -> 带权重版本发布的 buffered rollout/reward/advantage/train

每个入口都验证自己的 recipe,再交给对应 trainer。它们共享 single-controller 的 Remote / placement 基础设施和训练栈契约,但不共享同一种 placement 布局或同一个 RL 生命周期。早期的 v1 actor-group runtime 已退役。

主要参考

数据流

RL trainer
  -> 构建 request Sample,发送给 rollout engine
  -> 填充后的 Sample,包含生成的 Part(conditions、segments、primitives、media previews)
  -> RewardService.score_and_attach(sample) -> frontier Part.rewards
  -> Part.compute_advantages                 -> Part.advantages
  -> TrainStack.train_track(part)            在 train worker 间分片并运行 mini-batch loop
  -> optional weight sync back to dedicated rollout workers

Sample 是端到端 rollout 边界:每个 engine 都接收并返回 Sample,其中有序的 Sample.parts 由 Part 对象组成。新的 rollout engine 应把 backend-specific 输出转换成 unirl/types/sample.py 中的这些类型,而不是把 backend object 泄漏到 training 代码中。

每个 trainer(unirl/trainer/<domain>.py)负责自己的 placement 块、worker 构建和阶段顺序。 SFT 没有 rollout、reward、advantage 或 weight-sync 阶段;异步 AR/diffusion 使用彼此独立的 train 与 rollout slab。

部署模式和 engine-specific 要求以生成的 Rollout Package README 为准。

每 track 一个算法

生成 Part 的训练 loss 由其配置的 StageAlgorithm 负责,例如 diffusion 的 unirl.algorithms.flowgrpo.FlowGRPO 或自回归的 unirl.algorithms.grpo.GRPO。 不存在独立的 driver 侧 "rollout control" 对象:

  • reward→advantage 的 z-score 在 Part.compute_advantages(unirl/types/sample.py);
  • SDE-index 选择在 DiffusionSamplingParams.resolve_sde_indices(unirl/types/sampling.py)。

单 stage recipe 绑定一个 cfg.algorithm;PE 为每个生成 Part 嵌套一个 algorithm: 节点(diffusion.algorithm、ar.algorithm),并运行兄弟 TrainStack。 unified-model 训练则用 UnifiedModelTrainStack 把 AR 和 image loss 累积到 shared-backbone 的一次 optimizer step。见 Trainer 与训练栈。

Roadmap 路线图

近期方向围绕 框架 Infra、算法 Algorithm、模型 Model 三条线展开,详见 Roadmap 路线图。

目录