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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| miniverl-0.12.0.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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