Skip to content

[Bugfix][Multimodal] Don't validate model-built dummy inputs against mm limits - #65689

Merged
NickLucche merged 2 commits into
vllm-project:mainfrom
cjackal:no-validate-parse-mm-data
Nov 4, 2026
Merged

NickLucche merged 2 commits into
vllm-project:mainfrom
cjackal:no-validate-parse-mm-data

Conversation

@cjackal

@cjackal cjackal commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Overview

Fixes engine startup for Pixtral (+ other models with the same problem) when a modality is embedding-only (--limit-mm-per-prompt '{"<modality>": 0}' with --enable-mm-embeds). This is the root cause of the failure observed in #65648.

Claims

Validation

vllm serve mistralai/Pixtral-12B-2409 --tokenizer-mode mistral \
    --limit-mm-per-prompt '{"image": 0}' --enable-mm-embeds

Details

#32493 added embedding input for disabled modality. It introduced the following split:

  • User inputs are checked against --limit-mm-per-prompt and --enable-mm-embeds once, in the renderer (BaseRenderer calling info.parse_mm_data).
  • Data the processor builds or re-parses is parsed with validate=False. Add embedding input functionality for disabled modalities [remake] #32493 switched both call sites:
    • the dummy inputs used for profiling (get_dummy_inputs)
    • the cache-miss items in _get_cache_missing_items

The split is needed because MultiModalBudget profiles each embedding-only modality with mm_counts={modality: 1} while its limit is 0. A dummy input that gets validated can never pass that check.

4 models including Pixtral override get_dummy_inputs and call self.info.parse_mm_data(dummy_mm_data) with the default validate=True. This PR fixes the processor-side contract violation. Without it, any deployment of these models that relies on embedding-only modalities still crashes at startup, including KV/EC consumers that should receive embeddings.


Pull Request Checklist
  • I used vLLM's /pr-checklist skill. (Mandatory for agents, optional for humans).

  • AI assistance was used during the creation of this PR.

  • Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.

  • Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.

  • Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.

  • Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.

BEFORE SUBMITTING, PLEASE READ https://docs.vllm.ai/en/latest/contributing (anything written below this line will be removed by GitHub Actions)

Signed-off-by: cjackal <44624812+cjackal@users.noreply.github.com>

@claude claude Bot 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.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added mistral Related to Mistral models kimi bug Something isn't working labels Nov 4, 2026
@NickLucche

Copy link
Copy Markdown
Member

/ci run

@NickLucche NickLucche added the ready ONLY add when PR is ready to merge/full CI is needed label Nov 4, 2026
@NickLucche
NickLucche enabled auto-merge (squash) November 4, 2026 18:00
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #99985 for commit 27a12a3cfb5e.

ℹ️ This PR is 18 commits behind upstream main. Merged upstream main into this branch as 27a12a3cfb5e before starting CI. Pull the branch before pushing more changes.

@NickLucche
NickLucche merged commit 6ba1050 into vllm-project:main Nov 4, 2026
131 checks passed
@cjackal
cjackal deleted the no-validate-parse-mm-data branch November 4, 2026 23:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working kimi mistral Related to Mistral models ready ONLY add when PR is ready to merge/full CI is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants