Skip to main content

miniVERL — lower verl experiment semantics onto one CUDA GPU

CI Build PyPI Python License

PyPI · Stable docs · Development docs · 中文

miniVERL runs a validated subset of verl experiment semantics on one NVIDIA GPU. Give it a resolved verl-shaped config and Parquet prompts; its versioned compiler produces a reviewable local plan, executes actor/reference/teacher/ reward roles in phases, and publishes portable PEFT and data artifacts.

The current development line adds critic-free RL against official verl v0.9.0 (483b8a00): GRPO, Dr.GRPO, RLOO and REINFORCE++, grouped rollouts, task rewards and fixed reference-policy KL. The established verl v0.8.0 OPD profiles remain available for direct GKD and sampled-k1 distillation.

PyPI v0.12.0 is stable; main is development.

Start in 60 seconds

Install the CUDA-enabled PyTorch build that matches your machine, then:

python -m pip install "miniverl[train,cuda]"
miniverl data sample --task-rewards --rows 8 --out data/rl-prompts.parquet
miniverl import-verl --profile verl-rl-v0.9-single-gpu-v1 \
  --config examples/verl-rl-v0.9-single-gpu.yaml --out local-grpo.yaml
miniverl validate local-grpo.yaml
miniverl train local-grpo.yaml --dry-run

The importer writes local-grpo.import-report.json beside the native recipe. It accounts for every accepted source field and records how distributed resource settings lower to one process and one device. Remove --dry-run to load the pinned Qwen3-0.6B actor and execute the two-iteration example.

The [train,cuda] extra installs the ML and quantization stack; select PyTorch's CUDA build separately with the PyTorch installer. The single-GPU guide covers memory planning and the maintainer-measured RTX 4080 environment.

What a run gives you

  • A field-by-field compiler report. Experiment fields retain their meaning; physical distribution fields receive an explicit one-GPU lowering.
  • Policy-bound trajectories. Group/sample identity, generated-token spans, behavior log-probabilities and policy version travel together.
  • Auditable rewards and objectives. Reward components, group advantages, reference KL, clipping, entropy and update metrics are structured data.
  • Exact recovery. Transactional manifests and checkpoints restore policy, optimizer, cursor, RNG and reward identities before another rollout.
  • Portable outputs. PEFT adapters, safetensors, Parquet, resolved config and typed provenance can move into a larger workflow.

How it works

A resolved verl config compiles into a validated single-GPU execution plan; actor, reference, teacher and reward roles execute in phases and produce portable artifacts plus a readiness report.

One GPU is treated as a temporal scheduler for logical roles. Critic-free RL generates complete prompt groups, scores outcomes, computes the pinned advantage estimator, optionally evaluates a frozen reference adapter, and then updates the actor. OPD uses the same trajectory and checkpoint foundations, with a teacher-scoring phase in place of outcome-only rewards.

Choose your path

Goal First command Primary artifact Next step
Run local RL miniverl import-verl --profile verl-rl-v0.9-single-gpu-v1 --config verl-rl.yaml --out local.yaml native recipe + compatibility report RL quickstart
Run local OPD miniverl plan --profile verl-opd-v0.8-single-gpu-v1 --config verl-opd.yaml --out plan.json immutable execution plan OPD quickstart
Fit your GPU miniverl plan --config verl-opd.yaml --probe measured placement plan Hardware planning
Hand off artifacts miniverl export-verl --run runs/my-run --target-verl v0.8.0 --out scaleout PEFT + Parquet + config bundle Scale-out contract

Native recipes also support SFT, DPO and offline KD, plus calculator, JSON navigation, read-only SQLite and custom tool environments.

Current capability matrix

Experiment surface Local status Contract
GRPO / Dr.GRPO semantically conformant verl v0.9 group statistics and vanilla clipped policy loss
RLOO / REINFORCE++ semantically conformant verl v0.9 advantage and masking rules
Grouped n > 1 rollouts supported complete groups, stable sample seeds and behavior-policy identity
Task rewards supported exact-answer/target-length built-ins, environment verifier, or trusted Python API
Fixed reference KL locally lowered frozen adapter role on the shared actor backbone
Direct GKD / sampled-k1 OPD supported pinned verl v0.8 profiles with teacher targets
PPO / GAE execution not implemented math is conformance-tested; a trainable critic lifecycle is not yet present
Ray, FSDP/FSDP2, Megatron, TP/PP/DP > 1 distributed-only these change physical scale, not the local objective

The generated v0.9 compatibility record binds every example field to its source value, local target, classification and compiler-rule digest. miniverl import-verl accepts a resolved documented subset, rejects unknown algorithm-changing fields, and never substitutes a dataset or reward implementation.

Measured systems evidence

The published Qwen3-0.6B/1.7B OPD workload consumed 32 distinct prompts and completed eight current-policy updates at 3.1914 GiB peak reserved VRAM on an RTX 4080. A matched interruption after update four reproduced byte-identical trajectories, adapter and optimizer tensors. The SmolLM2-360M/1.7B workload completed the same shape at 1.4961 GiB. System records contain configs, hashes and phase timings.

Rollout Runtime v2 measured hf_cached and managed vLLM across 24 RTX 4080 cells spanning response length, sampling mode and n=1/4. See the runtime report. Evidence for the new RL family is published through the exact-wheel release qualification rather than presented as a task-quality comparison.

Research record

The scientific reports preserve their original outcomes and frozen inputs: calculator protocol, RecoveryBench, Alignment Lab, and the External Alignment Gate. They are scoped studies, separate from runtime qualification.

Compatibility boundary

miniVERL targets one local process and one NVIDIA CUDA GPU. The compiler distinguishes exact or conformant semantics, local physical lowering, distributed-only settings, feasible work not yet implemented, and technically unsupported inputs. The compatibility policy is the complete matrix; limitations collects architecture, measurement, security and generalization boundaries in one place. miniVERL is an independent Apache-2.0 project.

Development

git clone https://github.com/DaoyuanLi2816/mini-verl.git
cd mini-verl
python -m pip install -e ".[dev,train]"
pytest -q -m "not gpu and not network"

See CONTRIBUTING.md, CHANGELOG.md, CITATION.cff, the guide for verl users, SECURITY.md and the Apache-2.0 license.

Release files for miniverl 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for miniverl 0.12.0
File Size Uploaded
miniverl-0.12.0.tar.gz 1.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for miniverl 0.12.0
File Interpreter ABI Platform
miniverl-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.3 MB

Release files / miniverl-0.12.0.tar.gz

Download URL miniverl-0.12.0.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
38b6f77f27e3986867b5d453c684f7a7b15205809643cfc8470a45e02e3e84ff
BLAKE2b-256 checksum
How to use checksums
c4a3dbd2815bb2e83fb07d057d22ed2794672a7930daccfe879fb5fd6259aa6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / miniverl-0.12.0-py3-none-any.whl

Download URL miniverl-0.12.0-py3-none-any.whl
Size 608.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
41a7d59b792b977bc4d81d644fc4429e303493b3c4417a6c213c68ad7b0b345f
BLAKE2b-256 checksum
How to use checksums
322e81be7cf6872e4a295f21df814afcb01ab21de2da1272328a98096273382f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.16.0

2 release files

0.15.0

2 release files

This release

0.12.0 This release

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page