Repository navigation
v0.0.6
Highlights
Automodel trainers. A new worker runs NVIDIA NeMo Automodel trainers (#296). The worker supports data parallelism and context parallelism (#297). To use more than one GPU for a trainer, set openrl.trainer_gpus=N. The scheduler then starts one torchrun trainer on N GPUs (#307). To split one sequence across some of these GPUs, set openrl.trainer_cp. You can resume an adapter and its optimizer state from a checkpoint (#322).
Exclusive mode. If you set openrl.exclusive=true in user_metadata, the workload gets its own GPUs (#272). No other worker uses these GPUs, and the scheduler does not time-slice them.
Sampler replicas. If you set openrl.sampler_replicas=N, OpenRL starts N samplers (#308). Each sampler uses one GPU. All the samplers take requests from the same sampling queue.
vLLM 0.30. OpenRL now uses vLLM 0.30 (#281). One sampler now serves both LoRA models and FFT models. For delta weight sync, the sampler applies sparse patches with the vLLM function load_checkpoint_weight_patches.
Getting started guide. The new guide, docs/getting-started.md, starts from a GPU cluster (#294). It shows how to train a model on that cluster with SFT and RL.
Breaking changes
-
FFT settings (#318). The API server no longer accepts these inputs:
- the
x-open-rl-fine-tuning-typeheader - the
x-open-rl-weight-sync-strategyheader - the
full_configbody field
If a request sends one of them, the API server returns a 400 error. The error message gives the name of the new setting. Put the new settings in
TINKER_TAGSor inuser_metadata:Setting Values openrl.fine_tuning_typelora(default),fullopenrl.weight_syncdelta(default),fullopenrl.fft_seedint openrl.fft_cpu_offloadtrue/false - the
-
Sampler (#281). This release removes
lora_sampler.pyandMOCK_VLLM. The weight sync configuration now has one field,strategy. Its value isdeltaorfull. -
Local setup (#285). This release removes
make vllmandVLLM_URL. To sample with vLLM, setREDIS_URL. The API server then starts the sampler worker.
Fixes
- The Redis client now waits 30 seconds before a socket read stops (#287). Before this fix, the client could lose a request after Redis removed it from the queue.
- Worker pods now get
VLLM_MAX_MODEL_LEN,OPEN_RL_TRAIN_TOKEN_BUDGET, andMAX_JOBSfrom the deployment (#307).
Examples
The Harvey LAB recipe has these changes:
- New default values for Qwen3.5-9B, and fixes to grading (#319)
- A backend that uses Agent Sandbox (#320)
- A Kubernetes Job that runs the recipe in the cluster (#321)
Full Changelog: v0.0.5...v0.0.6