Skip to content

fix(vllm): pin the model so the app id cannot lie - #60

Merged
rickstaa merged 1 commit into
mainfrom
rs/metadata-and-vllm-pin
Aug 12, 2026
Merged

fix(vllm): pin the model so the app id cannot lie#60
rickstaa merged 1 commit into
mainfrom
rs/metadata-and-vllm-pin

Conversation

@rickstaa

@rickstaa rickstaa commented Aug 8, 2026

Copy link
Copy Markdown
Member

runners.json advertises vllm/qwen2.5-0.5b-instruct by name, but compose.yml read ${VLLM_MODEL:-Qwen/Qwen2.5-0.5B-Instruct} and .env.example presented it as an ordinary knob. Turn it and the app id becomes false: discovery republishes it unchanged at whatever price the operator set, and a caller filtering for Qwen gets Llama with no way to tell.

The fix pins the model as a literal in compose.yml and drops VLLM_MODEL from .env.example. Serving a different model now means editing the compose command and runners.json together.

Deriving the id from the loaded model (what realtime-transcription does) is not available here: vllm is a static runner whose container is the stock vllm/vllm-openai image with zero Livepeer code, which is what the example exists to show. So the README states the asymmetry instead. A dynamic app advertises what it loaded and cannot drift; a static one stays true only if the operator keeps it so, and the orchestrator health-polls the runner without ever checking it serves what runners.json claims.

Verified: stack up with the literal, vLLM served, runner registered as vllm/qwen2.5-0.5b-instruct.

Copilot AI lite review requested due to automatic review settings August 8, 2026 08:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes configuration drift in the vllm example by pinning the served model in compose.yml so the statically advertised app id in runners.json can’t become inaccurate via an environment override. It also updates vllm/README.md to explain the static-runner “contract” (config must remain truthful) and points readers to realtime-transcription for the dynamic alternative.

Changes:

  • Pin the vLLM model in vllm/compose.yml instead of allowing an override via VLLM_MODEL.
  • Remove VLLM_MODEL from vllm/.env.example to avoid implying the model is an operator “knob”.
  • Update vllm/README.md to document why the model is pinned for static registration and how to change it safely.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
vllm/README.md Documents static vs dynamic runner registration and clarifies that the vLLM model is intentionally pinned to keep the advertised app id truthful.
vllm/compose.yml Pins --model to Qwen/Qwen2.5-0.5B-Instruct and updates comments explaining why this must not be an env override.
vllm/.env.example Removes VLLM_MODEL to prevent accidental app-id/model drift through environment configuration.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

runners.json advertises `vllm/qwen2.5-0.5b-instruct` by name while
VLLM_MODEL let an operator serve something else. .env.example presented it
as an ordinary knob, so turning it silently made the app id false, and
discovery republished that to the network at whatever price was set.

A static runner has no code to recompute its id: the container is the
stock vllm image with zero Livepeer code, which is the point of the
example. So the fix is to remove the drift rather than derive the name.
Serving another model now means editing the compose command and
runners.json together, which is the static registration bargain: the
operator owns the contract, and the orchestrator health-polls the runner
without ever checking it serves what the config claims.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 12, 2026 09:45
@rickstaa
rickstaa force-pushed the rs/metadata-and-vllm-pin branch from d394b0c to 553526f Compare August 12, 2026 09:45
@rickstaa
rickstaa merged commit 8f53f3e into main Aug 12, 2026
2 checks passed
@rickstaa
rickstaa deleted the rs/metadata-and-vllm-pin branch August 12, 2026 09:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (1)

vllm/compose.yml:33

  • The comment says runners.json “advertises this model by name”, but vllm/runners.json only contains the app id (vllm/qwen2.5-0.5b-instruct), not the Hugging Face model string. Rewording avoids suggesting the exact model name lives in runners.json.
    # Pinned, not a knob: runners.json advertises this model by name, so change both
    # together. --gpu-memory-utilization caps VRAM (0.9 default can exceed free).

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.

2 participants