8000 Release v0.12.0: single-GPU verl v0.9 RL by DaoyuanLi2816 · Pull Request #111 · DaoyuanLi2816/mini-verl · GitHub
[go: up one dir, main page]

Skip to content

Release v0.12.0: single-GPU verl v0.9 RL - #111

Merged
DaoyuanLi2816 merged 2 commits into
mainfrom
v0.12.0-single-gpu-rl
Sep 8, 2026
Merged

DaoyuanLi2816 merged 2 commits into
mainfrom
v0.12.0-single-gpu-rl

Conversation

@DaoyuanLi2816
Copy link
Copy Markdown
Owner

Summary

  • add a versioned compiler for a resolved official verl v0.9 critic-free RL subset, pinned to v0.9.0 / 483b8a009ba3a97563edee3a19887e4862b8094a
  • execute GRPO, Dr.GRPO, RLOO and REINFORCE++ with complete prompt groups, behavior-policy log-probs, task rewards, optional fixed reference KL, transactional checkpoints and exact resume
  • add independent upstream value/gradient/optimizer-step conformance, field-by-field compatibility output, an exact-wheel RTX 4080 RL qualification gate, and a concise verl-first README/docs path
  • preserve the existing v0.8 OPD profiles and every frozen benchmark artifact

Fixes #89.

Compatibility boundary

PPO/GAE value mathematics are conformance-tested, but executable PPO remains classified not_implemented: the runtime does not yet expose a separately trainable critic role, critic optimizer/checkpoint state or actor/reference/critic phase lifecycle. Ray, FSDP/FSDP2, Megatron and parallel degrees above one remain distributed_only rather than being conflated with missing single-GPU semantics.

The new GPU qualification is a runtime-correctness workload with a deterministic target-length formatting reward. It requires nonconstant within-group rewards, nonzero advantages, two parameter-changing Qwen3-0.6B NF4 LoRA updates and <=14.5 GiB peak reserved memory; it makes no task-quality claim.

Validation

Exact implementation commit feed761514c3925dd2290d855baac6d38c417e50:

  • ruff check . and ruff format --check .
  • mypy src/miniverl
  • actionlint 1.7.12
  • pytest -q -m "not gpu and not network" --cov=miniverl: 2,566 passed, 10 skipped, 24 deselected, 83% branch coverage
  • pinned official verl v0.9 conformance: 3 passed, including one AdamW step
  • pytest -q -m gpu: 10 passed on one NVIDIA GeForce RTX 4080
  • pytest -q -m network: 16 passed
  • mkdocs build --strict and Playwright visual gate: 44 rendered SVG instances across 1440, 1024, 820 and 390 px viewports
  • package build/Twine checks and Torch-free import checks passed
  • frozen calculator result SHA-256 remains 53fc1d4d5b7adee09618d77ad62d4086ba56b78569832d6fc7c3bcd5c2695bbc; no benchmark file changed

Publication remains gated on a new attempt-1, exact-release-SHA WSL2 RTX 4080 full qualification after merge, followed by the existing non-publishing dry run and OIDC workflow.

@DaoyuanLi2816
DaoyuanLi2816 merged commit 0f4bafd into main Sep 8, 2026
16 checks passed
@DaoyuanLi2816
DaoyuanLi2816 deleted the v0.12.0-single-gpu-rl branch September 8, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bucketed_teacher_entropy manufactures a phantom tail bucket when K == V, biasing the reported teacher entropy

1 participant

0