Summary
UniRL's runtime capabilities have expanded faster than several user-facing and package-local README files. This RFC coordinates a community refresh of the main framework repository documentation and splits the work into independent, reviewable tasks.
The scope of this issue is Tencent-Hunyuan/UniRL. Changes to the separate unirl-project/unirl documentation site should be tracked independently.
Goals
- Make the top-level README, installation guide, examples index, and package-local READMEs agree with the current code and checked-in recipes.
- Give every documented entrypoint, algorithm, model, rollout path, and reward/data workflow a traceable source of truth.
- Let contributors claim one focused task and submit it as an independent PR.
- Avoid broad rewrites or formatting-only churn outside the claimed task.
Sources of truth
Use implementation/configuration sources before existing prose:
- Python/CUDA versions and extras:
pyproject.toml
- Entrypoints and built-in defaults:
unirl/train_*.py
- Runnable configurations:
examples/**/*.yaml
- Public algorithms:
unirl/algorithms/__init__.py
- Model integration:
unirl/models/<model>/ plus at least one matching recipe
- Rollout engines:
unirl/rollout/engine/
- Reward names:
unirl/reward/local/registry.py and unirl-reward-service/reward_service/scorers/registry.py
- Benchmark registrations:
benchmarks/core/registry.py
A model package existing by itself is not sufficient evidence for end-to-end support. Document restrictions such as SFT-only, experimental, engine-specific, or service-dependent explicitly.
Work order
Complete DOC-MAIN-01 first. Tasks 02–06 can then proceed in parallel. A maintainer performs DOC-MAIN-07 after the focused PRs land.
[x] DOC-MAIN-01 — Entry points, installation, and canonical recipes @MinhaoLi0318 (#491)
Difficulty: small to medium
Files: README.md, INSTALL.md, examples/README.md
- Reconcile the training-domain table with all current
unirl/train_*.py entrypoints, including SFT, agentic, and async AR/diffusion.
- Make built-in default recipes consistent with the
@hydra.main(config_name=...) declarations.
- Resolve conflicting prompt-enhancer defaults.
- Check optional extras against
pyproject.toml, including engine-specific, training, evaluation, dataset preparation, Cosmos3, FastVideo, and VeOmni dependencies.
- Keep
pyproject.toml as the dependency/version source of truth; identify legacy install paths as non-recommended where appropriate.
Acceptance: every listed entrypoint and canonical recipe exists; installation extras match pyproject.toml; example commands use current nested recipe paths.
[ ] DOC-MAIN-02 — Algorithm reference matrix @aKMSHSF
Difficulty: medium
Files: unirl/algorithms/README.md and links from README.md
- Replace fixed or incomplete family counts with a matrix derived from public algorithm exports and recipes.
- Cover supervised objectives, AR algorithms, diffusion/flow algorithms, teacher-distillation objectives, and unified-model objectives.
- Record domain, advantage requirements, multi-update support, and anchor/recompute behavior.
- Clarify that DanceGRPO and MixGRPO are recipe-level
FlowGRPO variants rather than independent algorithm classes.
- Link team algorithm tutorials without duplicating their full content.
Acceptance: every public objective exported from unirl/algorithms/__init__.py is represented or intentionally excluded with a reason; claims agree with class capabilities and a checked-in recipe where applicable.
[x] DOC-MAIN-03 — Model support matrix @MinhaoLi0318 (#501)
Difficulty: medium
Files: README.md, unirl/models/README.md
- Inventory current model bundles and matching recipes.
- Distinguish bundle availability from an end-to-end runnable path.
- Add currently omitted families where supported, and state restrictions such as SFT-only, bundle-only, engine-specific, or scorer-dependent.
- Verify model names against package and recipe naming rather than marketing aliases alone.
Acceptance: each support row links to implementation and/or a runnable recipe; no bundle-only package is presented as generally runnable.
[ ] DOC-MAIN-04 — Training paths: SFT, async, HSDP, and VeOmni @MrDongsls
Difficulty: medium
Files: unirl/trainer/README.md, unirl/train/readme.md, unirl/train/sft/README.md, relevant sections of examples/README.md
- Document the SFT path from manifest to entrypoint, train stack, checkpoint, and resume behavior.
- Document async AR and async diffusion entrypoints, canonical recipes, publication/quiesce boundaries, and limitations.
- Add user-facing HSDP and VeOmni guidance tied to existing recipes.
- Cross-link trainer orchestration and train-stack implementation details instead of duplicating them.
Acceptance: a reader can trace each path from data/config to entrypoint and checkpoint behavior; every command points to a checked-in recipe.
[ ] DOC-MAIN-05 — Reward, runtime data, datasets, and benchmarks @Dmaner
Difficulty: medium
Files: unirl/reward/README.md, unirl-reward-service/README.md, a new unirl/data/README.md, datasets/README.md, benchmarks/README.md
- Reconcile local and remote scorer lists with their registries and note disabled or deployment-specific scorers.
- Document the runtime data boundary separately from offline dataset conversion.
- Refresh dataset and benchmark indexes against the current directories/registries.
- Mark internal development logs and resume prompts as maintainer handoff material rather than user guides.
Acceptance: scorer and benchmark names match registries; dataset/runtime responsibilities are unambiguous; index links resolve locally.
[ ] DOC-MAIN-06 — Rollout and distributed runtime @GrassHeadd
Difficulty: medium
Files: unirl/rollout/README.md, unirl/rollout/engine/README.md, engine-specific READMEs, unirl/distributed/README.md, unirl/distributed/weight_sync/README.md
- Refresh the engine matrix and direct/separate/colocated deployment descriptions.
- Document current sampling ownership and replay/anchor-sensitive behavior.
- Cover FastVideo WAN 2.1/2.2 support accurately.
- Separate rollout-output transport (including TransferQueue) from trainer-to-rollout weight synchronization.
- Document async barriers/quiescence where they affect rollout and synchronization.
Acceptance: engine, transport, and sync names match current classes/config fields; deployment diagrams and examples do not conflate data transport with weight sync.
[ ] DOC-MAIN-07 — Maintainer consistency pass
Difficulty: medium
Owner: repository maintainer after tasks 01–06 merge
- Review the combined diff against the then-current
main branch.
- Remove duplicated tables, conflicting defaults, dead links, and unrelated cleanup.
- Verify cross-links among top-level, examples, and package-local README files.
- Confirm terminology is consistent across domains.
Acceptance: the same entrypoint/version/recipe receives one consistent answer across all affected documents.
How to claim a task
Comment with the task ID, the files you plan to touch, and whether you need a domain reviewer. A maintainer can record the assignee in this issue. Prefer one task per PR; reference this issue and the task ID in the PR description.
If a task is already claimed, coordinate before editing overlapping files. In particular, README.md and examples/README.md are shared by several tasks and should receive final integration edits in DOC-MAIN-07.
Validation
Run the checks relevant to the files you touched:
# Resolve each canonical recipe documented by your PR
python -m unirl.train_<entry> --config-name=<domain>/<recipe> --cfg job --resolve
# Repository checks
SKIP=no-commit-to-branch pre-commit run --all-files --show-diff-on-failure
Also verify local Markdown links and anchors in the changed files. GPU training is not required for documentation-only PRs; note any command that could not be composed locally and why.
Non-goals
- Reorganizing or rewriting the separate Fumadocs site.
- Changing runtime behavior solely to match stale prose.
- Adding subjective support claims without a checked-in implementation/configuration source.
- Combining unrelated code cleanup with documentation PRs.
Summary
UniRL's runtime capabilities have expanded faster than several user-facing and package-local README files. This RFC coordinates a community refresh of the main framework repository documentation and splits the work into independent, reviewable tasks.
The scope of this issue is
Tencent-Hunyuan/UniRL. Changes to the separateunirl-project/unirldocumentation site should be tracked independently.Goals
Sources of truth
Use implementation/configuration sources before existing prose:
pyproject.tomlunirl/train_*.pyexamples/**/*.yamlunirl/algorithms/__init__.pyunirl/models/<model>/plus at least one matching recipeunirl/rollout/engine/unirl/reward/local/registry.pyandunirl-reward-service/reward_service/scorers/registry.pybenchmarks/core/registry.pyA model package existing by itself is not sufficient evidence for end-to-end support. Document restrictions such as SFT-only, experimental, engine-specific, or service-dependent explicitly.
Work order
Complete DOC-MAIN-01 first. Tasks 02–06 can then proceed in parallel. A maintainer performs DOC-MAIN-07 after the focused PRs land.
[x] DOC-MAIN-01 — Entry points, installation, and canonical recipes @MinhaoLi0318 (#491)
Difficulty: small to medium
Files:
README.md,INSTALL.md,examples/README.mdunirl/train_*.pyentrypoints, including SFT, agentic, and async AR/diffusion.@hydra.main(config_name=...)declarations.pyproject.toml, including engine-specific, training, evaluation, dataset preparation, Cosmos3, FastVideo, and VeOmni dependencies.pyproject.tomlas the dependency/version source of truth; identify legacy install paths as non-recommended where appropriate.Acceptance: every listed entrypoint and canonical recipe exists; installation extras match
pyproject.toml; example commands use current nested recipe paths.[ ] DOC-MAIN-02 — Algorithm reference matrix @aKMSHSF
Difficulty: medium
Files:
unirl/algorithms/README.mdand links fromREADME.mdFlowGRPOvariants rather than independent algorithm classes.Acceptance: every public objective exported from
unirl/algorithms/__init__.pyis represented or intentionally excluded with a reason; claims agree with class capabilities and a checked-in recipe where applicable.[x] DOC-MAIN-03 — Model support matrix @MinhaoLi0318 (#501)
Difficulty: medium
Files:
README.md,unirl/models/README.mdAcceptance: each support row links to implementation and/or a runnable recipe; no bundle-only package is presented as generally runnable.
[ ] DOC-MAIN-04 — Training paths: SFT, async, HSDP, and VeOmni @MrDongsls
Difficulty: medium
Files:
unirl/trainer/README.md,unirl/train/readme.md,unirl/train/sft/README.md, relevant sections ofexamples/README.mdAcceptance: a reader can trace each path from data/config to entrypoint and checkpoint behavior; every command points to a checked-in recipe.
[ ] DOC-MAIN-05 — Reward, runtime data, datasets, and benchmarks @Dmaner
Difficulty: medium
Files:
unirl/reward/README.md,unirl-reward-service/README.md, a newunirl/data/README.md,datasets/README.md,benchmarks/README.mdAcceptance: scorer and benchmark names match registries; dataset/runtime responsibilities are unambiguous; index links resolve locally.
[ ] DOC-MAIN-06 — Rollout and distributed runtime @GrassHeadd
Difficulty: medium
Files:
unirl/rollout/README.md,unirl/rollout/engine/README.md, engine-specific READMEs,unirl/distributed/README.md,unirl/distributed/weight_sync/README.mdAcceptance: engine, transport, and sync names match current classes/config fields; deployment diagrams and examples do not conflate data transport with weight sync.
[ ] DOC-MAIN-07 — Maintainer consistency pass
Difficulty: medium
Owner: repository maintainer after tasks 01–06 merge
mainbranch.Acceptance: the same entrypoint/version/recipe receives one consistent answer across all affected documents.
How to claim a task
Comment with the task ID, the files you plan to touch, and whether you need a domain reviewer. A maintainer can record the assignee in this issue. Prefer one task per PR; reference this issue and the task ID in the PR description.
If a task is already claimed, coordinate before editing overlapping files. In particular,
README.mdandexamples/README.mdare shared by several tasks and should receive final integration edits in DOC-MAIN-07.Validation
Run the checks relevant to the files you touched:
Also verify local Markdown links and anchors in the changed files. GPU training is not required for documentation-only PRs; note any command that could not be composed locally and why.
Non-goals