Skip to main content

miniVERL — lower verl experiment semantics onto one CUDA GPU

CI Build PyPI Python License

PyPI · Stable docs · Development docs · 中文

Run common verl PPO/GRPO configs directly on one NVIDIA GPU. Hand miniVERL your resolved upstream YAML and bind local data or reward code. Its versioned compiler preserves the experiment while scheduling actor, critic, reference and reward roles in phases. No second configuration language to maintain.

The current development line covers PPO/GAE, GRPO, Dr.GRPO, RLOO and REINFORCE++ against official verl v0.9.0 (483b8a00). PPO uses an independent trainable critic with its own optimizer and checkpoint state; actor KL, entropy regularization, grouped rollouts, task rewards and a pinned sequence-classifier reward role share the same provenance model. The established verl v0.8.0 OPD profiles remain available for direct GKD and sampled-k1 distillation.

PyPI v0.15.0 is stable; main is development.

Your first local experiment

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

python -m pip install "miniverl[train]"
miniverl data sample --reward-profile target-length --rows 8 --out data/rl-prompts.parquet
miniverl run --example ppo --bind reward.provider=target_length --dry-run
miniverl run --example ppo --bind reward.provider=target_length --run-id local-ppo

PPO and GRPO inputs ship in upstream format in the wheel. These bounded Qwen3-0.6B examples run two iterations; the explicit binding selects a small length-reward exercise. To use your own resolved config, replace --example ppo with resolved-verl.yaml. Each run keeps the original bytes, field decisions, bindings, resolved snapshots, hardware plan and native IR. Inspect, resume and export:

miniverl inspect runs/local-ppo
miniverl run --example ppo --bind reward.provider=target_length \
  --resume-from runs/local-ppo/checkpoints/step-000002
miniverl export-adapter --run runs/local-ppo --out runs/local-ppo/model
miniverl export-verl --run runs/local-ppo --target-verl v0.9.0 --out ppo-handoff
miniverl bridge doctor ppo-handoff --json

The five-minute workflow explains each artifact and offers the matching GRPO commands. These are small length-reward exercises; their reward is directly inspectable in rewards.jsonl.

[train] supplies the ML stack; [cuda] additionally supplies quantization. Select PyTorch's CUDA build 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 plan; actor, critic, reference, teacher and reward roles run in phases and produce portable artifacts plus a readiness report.

One GPU is treated as a temporal scheduler for logical roles. RL generates complete prompt groups, scores outcomes, evaluates optional reference and reward-model roles, computes the pinned advantage estimator, and updates the actor. PPO adds a separate critic phase with clipped value updates. OPD uses the same trajectory and checkpoint foundations, with teacher targets supplying the learning signal.

Choose your path

Goal First command Primary artifact Next step
Run local RL miniverl run resolved-verl.yaml --dry-run semantic report + local plan Direct configs
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.9.0 --out scaleout actor, critic, Parquet + config bundle Compatibility 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
PPO / GAE semantically conformant independent critic, clipped value loss, actor/critic exact resume
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 and trained RM supported built-ins, environment verifier, trusted Python API, or pinned HF sequence classifier
Actor KL and entropy semantically conformant sampled-token reference KL and entropy regularization
Direct GKD / sampled-k1 OPD supported pinned verl v0.8 profiles with teacher targets
Ray, FSDP/FSDP2, Megatron, TP/PP/DP > 1 distributed-only these change physical scale, not the local objective

The upstream compatibility corpus resolves real verl examples and records every field's outcome. The v4 direct compiler adds prompt filtering, epoch scheduling and common loss reductions, separating semantic acceptance from missing inputs and hardware capacity. v1/v2/v3 remain available for existing recipes.

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.15.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.15.0
File Size Uploaded
miniverl-0.15.0.tar.gz 2.0 MB Details

Built distribution (wheel)

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

Total release size: 2.7 MB

Release files / miniverl-0.15.0.tar.gz

Download URL miniverl-0.15.0.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
6a32dcd93fed32df44ba65ca08cd1ecf26001ba65ea32feb39245f289add3577
BLAKE2b-256 checksum
How to use checksums
0d382932a990565c0b97d080363e08ec55d03ec8e748e9837768995e67f1aaf5
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 10, 2026.

Transparency log

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

Download URL miniverl-0.15.0-py3-none-any.whl
Size 676.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e9b909a7bb3983e3699ba39b99f424ce215d1f60ecb0c84b07e647d217803ff3
BLAKE2b-256 checksum
How to use checksums
a36f61d305b8b117ec4688e44b974b196f1487f9bab5fd1e081e976ac1f807a8
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 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.16.0

2 release files

This release

0.15.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