Skip to content

Run Slurm generation without a client image using a versioned vLLM serving image #969

Closed

Description

@nabinchha

Objective

After pip install "data-designer[slurm]" and one-time Slurm profile setup, users should need only a serving image to run generation. The Data Designer client and inference proxy should run from the installed Python environment (or a reproducibly staged equivalent on the allocated node), with no separate client image or client.image declaration.

First-time user flow

For the currently supported vLLM backend, a user selects a versioned vllm/vllm-openai Docker image (or supplies a digest-pinned OCI reference) through the CLI. The CLI imports it to SQSH, inspects it, and registers it. An existing compatible SQSH remains an alternative. The user then runs data-designer slurm execute without manually running Docker or Enroot or preparing a Data Designer client image.

A version tag must be resolved and recorded as an immutable digest before import; import must use that digest. Preserve the existing digest-pinned OCI and SQSH registration paths.

Scope and implementation constraints

  • Remove the experimental generation client-image requirement rather than maintaining dual client modes. No migration path is needed.
  • Execute the client and proxy from the installed environment, or stage an equivalent exact environment for compute nodes. Validate availability, Python ABI, and package identity early with actionable errors.
  • Keep the client execution boundary and content-addressed OCI-to-SQSH image lifecycle independent of the inference backend.
  • Implement vLLM only in this issue. Keep vLLM-specific inspection, launch, readiness, and backpressure logic behind backend-specific boundaries so later SGLang or Dynamo integrations can supply their own adapters. Do not assume that every future deployment uses exactly one serving image or one serving process.
  • Preserve existing proxy behavior, including 429 retry handling and the default max_waiting_requests=128.
  • Do not add a generic Dockerfile/recipe builder or require a user-authored Dockerfile for this vLLM workflow. The starting point is a versioned vLLM Docker image.

Acceptance criteria

  • A fresh pip installation and configured profile can execute a representative generation workflow with one registered vLLM serving image and no client image.
  • The CLI accepts an explicit vLLM version or digest, resolves a version to an immutable digest before import, builds the inspected SQSH from that OCI image, and registers it.
  • The existing digest-pinned OCI and compatible-SQSH paths continue to work.
  • The user need not run docker buildx, enroot import, or a separate client-image preparation step.
  • End-to-end output has an immutable winner, valid manifests/digests, the exact expected record count, and case-specific content assertions.
  • CLI help, examples, and Slurm documentation show both the vLLM OCI and existing-SQSH routes, without client.image.

Context

PR #967 removed the separate proxy image but retained the generation client-image requirement. Today image add imports a digest-pinned OCI image to an inspected, registered SQSH; it rejects a version tag without a digest. This task removes the remaining client-image requirement and makes the vLLM version-selection flow reproducible.

Activity

  1. self-assigned this
    on Sep 30, 2026
  2. added
    triagedIssue reviewed and approved by a maintainer
    on Sep 30, 2026
  3. added 8 commits that reference this issue on Oct 5, 2026
    5af31c0
    682b1c0
    72027c2
    fd70409
    46f7213
    f931918
    981d0a5
    bc86924
  4. andreatnvidia commented on Oct 28, 2026

    @andreatnvidia
    Contributor

    Native client execution landed in #970, with a follow-up fix in #1080 and successful generation/collection validation. Closing ahead of the planned feat/slurm-execution merge into main via #1040.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

taskInternal development tasktriagedIssue reviewed and approved by a maintainer

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions