Skip to content

Add timeslice-verl package and verl fully-async time-slicing guide - #158

Draft
aishukamal wants to merge 1 commit into
mainfrom
feat/verl-fully-async-integration
Draft

Add timeslice-verl package and verl fully-async time-slicing guide#158
aishukamal wants to merge 1 commit into
mainfrom
feat/verl-fully-async-integration

Conversation

@aishukamal

@aishukamal aishukamal commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Adds the timeslice-verl integration package and a guide that time-slices two verl fully_async_policy RL jobs' trainers on one shared 1-GPU node (each job keeps a dedicated 1-GPU rollout node; 2-pod Ray cluster per job).

  • pkg/integrations/verl/TimesliceFullyAsyncTrainer, a subclass of verl's FullyAsyncTrainer that overrides the trainer's empty on_* lifecycle hooks (verl's native v1 template-method convention) and registers under trainer name timeslice via verl's fully-async trainer registry; selected with async_training.trainer_name=timeslice. No meta_path monkey-patching. Placement-group pinning uses verl's per-pool extra bundle resources (ray_pg_extra_resources).
  • guides/rl-frameworks/verl/ — framework landing README plus examples/fully-async/ (example README and job manifests for a math-RLVR and a code-RLVR job).

Design note: the lifecycle hooks and PG-pinning features the package consumes are not yet upstream in verl; they are installed directly from the fork branch aishukamal/verl@feat/fully-async-lifecycle-hooks (temporary until the commits land upstream).

Validation: validated e2e on GKE (3x 1-GPU H100 nodes; full 90-minute run with demand-driven alternation, zero lock overlaps, zero NCCL errors); 24 pure-python unit tests included (no verl/ray/GPU required).

@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e1f6b3a9-349e-4efd-8563-3267071b0373

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch 7 times, most recently from ea9bedc to 4d2021c Compare August 20, 2026 03:03
Adds the timeslice-verl integration package and a guide that time-slices two
verl fully_async_policy RL jobs' trainers on one shared 1-GPU node (each job
keeps a dedicated 1-GPU rollout node; 2-pod Ray cluster per job).

The package ships TimesliceFullyAsyncTrainer, a subclass of verl's
FullyAsyncTrainer that overrides the trainer's empty on_* lifecycle hooks
(same template-method convention as verl's v1 trainers). It registers under
the trainer name "timeslice" via verl's fully-async trainer registry — the
package's verl.plugins entry point makes `import verl` load the registering
module — and is selected with the hydra override
async_training.trainer_name=timeslice. No meta_path monkey-patching.
Placement-group pinning uses verl's per-pool extra bundle resources
(ray_pg_extra_resources hydra override) instead of patching
placement_group; the trainer refuses to train unpinned when
TIMESLICE_REQUIRE_PG_PINNING=1. Both verl features ship as format-patch
files in the guide's patches/ dir until they are available upstream
(default install path: the feat/fully-async-lifecycle-hooks fork branch).

New: pkg/integrations/verl/ (TimesliceFullyAsyncTrainer = TimesliceHooksMixin
over FullyAsyncTrainer, + PhaseLocks; 33 tests, pure-python: no verl/ray/
grpc/GPU needed)
New: guides/rl-frameworks/verl/ (README, job manifests for a math-RLVR and a
code-RLVR job, GPU monitor, platform values, verl feature patches)
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from 4d2021c to eb5bbb3 Compare August 20, 2026 03:04
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.

1 participant