Skip to content

Add RL + batch-inference interleaving guide - #160

Draft
aishukamal wants to merge 1 commit into
feat/verl-fully-async-integrationfrom
feat/verl-rl-batch-guide
Draft

Add RL + batch-inference interleaving guide#160
aishukamal wants to merge 1 commit into
feat/verl-fully-async-integrationfrom
feat/verl-rl-batch-guide

Conversation

@aishukamal

@aishukamal aishukamal commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #158; retarget to main after it merges.

Adds guides/rl-batch-interleaving/: a guide that time-slices one verl fully-async RL training job with a stock vLLM batch-inference server on the same GPU. The trainer has absolute priority (cuda-checkpoint C/R); vLLM harvests the trainer's idle valleys via its native sleep mode, driven through the snapshot agent's workload channel.

Validation: validated e2e on GKE (2x 1-GPU H100 nodes; 80-minute run, 9/9 mixed-backend cycles — vLLM app-channel sleep/wake alongside trainer cuda-checkpoint C/R — with no crash, fault, or NCCL errors).

@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: 832b753d-0de8-4e87-94db-e88a6d335663

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 from fd0322e to 191735a Compare August 19, 2026 05:44
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from f102677 to 1919489 Compare August 19, 2026 05:44
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from 191735a to 2f2b466 Compare August 19, 2026 06:36
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from 1919489 to 2e7fe6e Compare August 19, 2026 06:39
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from 2f2b466 to 56491f6 Compare August 19, 2026 07:16
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from 2e7fe6e to 0f15d0d Compare August 19, 2026 07:16
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from 56491f6 to 5399c6b Compare August 19, 2026 07:29
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from 0f15d0d to 90699a5 Compare August 19, 2026 07:29
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from 5399c6b to e2b8ca9 Compare August 19, 2026 22:59
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from 90699a5 to f9d882f Compare August 19, 2026 23:02
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from e2b8ca9 to ea9bedc Compare August 20, 2026 00:58
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from f9d882f to 1c6254f Compare August 20, 2026 00:58
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from ea9bedc to 4d2021c Compare August 20, 2026 03:03
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from 1c6254f to b802c70 Compare August 20, 2026 03:04
@aishukamal
aishukamal force-pushed the feat/verl-fully-async-integration branch from 4d2021c to eb5bbb3 Compare August 20, 2026 03:04
Time-slices one verl fully-async RL training job with a stock vLLM
batch-inference server on the same GPU: the trainer has absolute priority
(cuda-checkpoint C/R), vLLM harvests the trainer's idle valleys via its
native sleep mode driven through the snapshot agent's workload channel.

The RL job manifest uses the timeslice-verl package (pkg/integrations/verl:
a FullyAsyncTrainer subclass registered as trainer name "timeslice" via
verl's fully-async lifecycle hooks + trainer registry, selected with
async_training.trainer_name=timeslice; ray_pg_extra_resources PG pinning).
The vLLM supervisor and load generator live under examples/ and are
example-only: the supervisor demonstrates the polite-tenant pattern
(waiter poll, readiness-gate drain before /sleep - required, vllm#28714 -
workload-channel registration); production batch serving should sit behind
a queue-based front-end with retries.

Requires a snapshot-agent build with workload-channel default routing
(config-less Snapshot/Restore resolves the job's registered workload
channel) - see values-timeslice.yaml note.
@aishukamal
aishukamal force-pushed the feat/verl-rl-batch-guide branch from b802c70 to 4f3fa44 Compare August 20, 2026 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant