UniRL 文档
配置

Hydra 配置

UniRL 如何组合、验证和覆盖运行时配置。

UniRL 使用 Hydra。recipe 是 examples/ 下按训练域分桶的自包含 YAML 文件(diffusion/vlm/llm/pe/unified_model/);每次训练用 --config-name 选择一个:

python -m unirl.train_diffusion --config-name=<domain>/<recipe>

组合模型

recipe 用 _target_ 直接实例化每个运行时组件(FSDP backend、train stack、rollout engine、reward service、algorithm、data source 等)。config 类就是定义在使用它的代码旁边的普通 @dataclass——没有 ConfigStore,也没有注册装饰器;recipe 通过把 _target_ 指向该类(并嵌套组件的 config: 块,同样是 _target_)来连接组件。实例化和验证契约以生成的 Config Package README 为准。

参数应该放哪里

recipe 语义放在 examples/<domain>/<recipe>.yaml。集群本地路径、模型挂载、输出目录和 WandB identity 放在 launcher env var 或 CLI override(recipe 用 ${oc.env:...} 插值)。新增 typed runtime component 时,把 config @dataclass 放在靠近实现的位置;recipe 直接用 _target_ 引用它(无需注册步骤)。

Override 优先级:

CLI Hydra override > launcher env var > YAML default

运行时契约

Ray worker 创建前会运行 cross-component validators。实现细节和 validator 清单见生成的 Config Package README

sync 和 tensor transport 解决不同问题:synccfg.sync)把 trainer 权重同步回 dedicated rollout engine,tensor transport(unirl/distributed/tensor/)是把大型 rollout 输出在 worker 间搬运的数据通道。

大作业前先运行:

python -m unirl.train_diffusion --config-name=<domain>/<recipe> --cfg job --resolve

目录