Skip to content

[RFC] Community refresh of main-repository documentation #453

Description

@CjhHa1

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

documentationImprovements or additions to documentationhelp wantedExtra attention is neededwipDraft / work in progress

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions