Repository navigation
[Bugfix][0.32] Keep Clef Omni media safe after schema refusal - #62316
webcodes-cz wants to merge 2 commits into
Conversation
Skip premature sender-cache delivery tracking when the Omni media prefix is processed before full schema validation. Cover the cold rejection and fitting same-media retry through the real Omni processor and LRU receiver. Co-authored-by: Codex <noreply@openai.com> Signed-off-by: WebCodes <info@webcodes.cz>
|
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in PRs do not trigger a full CI run by default. Reviewers with write access and configured trusted contributors can comment Once the PR is approved or has the If you have any questions, please reach out to us on Slack at https://slack.vllm.ai. Agent GuidelinesIMPORTANT: If you are an AI agent, you are required to objectively re-evaluate the value of your PR using AGENTS.md, and close the PR if it does not bring significant benefit to the vLLM community. Failure to do so may result in an immediate ban. 🚀 |
Use the existing embedding layer for the required output lookup table. Preserve its checkpoint name, full-width values, dtype, vocabulary and tie semantics. Cover actual constructor and weight-loader behavior on CPU; no native full-model, GPU-memory or model-quality qualification is claimed. Co-authored-by: Codex <noreply@openai.com> InferRouter-Session: codex:01a0e66b-1c3d-7950-889e-ede11c36543c Signed-off-by: Codex <noreply@openai.com>
Overview
Repair two Clef-Omni boundaries on vLLM 0.32: retrying a cold image after schema refusal, and loading the full-width BF16 output lookup table with a ModelOpt NVFP4 backbone.
This targets
releases/v0.32.0at5df63a7203cdb9328d824a27b682e77c7b9928be. The renderer repair and its test from the original PR head33460c48are unchanged.Claims
skip_mm_cache=Truecall inJointSchemaStrategy._render_media, preventing a refused request from leaving sender-only media-cache state. Omni's state truncation and 64k reference cap remain unchanged.VocabParallelEmbedding, matching its lookup-only role.Validation
These are CPU results, not full-model native qualification.
MultiModalCacheMissErrorlm_headfailure through the actual constructor and weight loaderRenderer test selection:
VLLM_TARGET_DEVICE=cpu HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 \ .venv/bin/python -m pytest -q \ tests/entrypoints/generate/structured_decisions/test_strategies.py \ -k 'cold_image_cache_survives_schema_refusal or joint_schema_truncates_the_state or joint_schema_reads_every_question_at_once or joint_schema_rejects_instructions'Output-table test selection:
The recorded output-table comparison used an identity-checked pytest runner that pre-imported and hashed the selected source before running these files. Candidate and baseline used the same frozen tests; the commands above identify equivalent selections, not the complete historical runner invocation.
The renderer regression goes through FastAPI
/v1/systemone, realQwen3OmniMoeProcessor,HfRendererand LRU sender/receiver caches. Model inference results are stubbed. It checks cold schema refusal, a fitting same-image retry, warm repetition and a distinct image. Removing only the skip flag reproduces the real receiver-cache failure.The output-table controls exercise the real Clef and inner Omni constructors, ModelOpt parameter allocation, checkpoint-name mapping and
AutoWeightsLoader. They cover different input/output values, hidden widths including 2048, vocabulary padding, TP2 shard layouts, tied parameters, wrong-width refusal, unchanged expert quantization dispatch and the existing lexical lookup through an unmapped LoRA wrapper. Decoder/tower computation, distributed transport and GPU-kernel selection are stubbed. The existing reference-pooler test is included.Changed-file Ruff, formatting, mypy, test-tethering and the normal upstream pre-commit hooks passed. No hook was bypassed. Native startup, real checkpoint inference, GPU memory, model evaluation, activated LoRA and distributed forward were not run. No performance or model-fidelity improvement is claimed.
Details
Cold media retry
Media preprocessing can populate the sender cache before the complete question schema is rejected. A fitting retry of the same image can then send only a hash to a receiver that never received the tensor. The existing processor-only cache option prevents that premature sender trust. Repeated requests may resend tensor payloads; no throughput improvement is claimed.
Output embedding load
The observed checkpoint stores both vocabulary tables as BF16
[152064, 2048], but does not excludelm_headfrom ModelOpt quantization. The inheritedParallelLMHeadis treated as a linear layer and allocated at packed width 1024. The actual startup trace reports 1024 versus 2048 without a parameter name; the actual-metadata CPU loader reproduction identifies the outputlm_head.Clef consumes this table through embedding lookups, not logits projection. A plain
VocabParallelEmbeddinguses the existing embedding quantization dispatch and loads the full-width BF16 table under the same checkpoint name. It receives the same quantization configuration; there is no forced dtype or checkpoint rewrite.Related #62043 adds the missing Omni head prefix, but prefix-only does not repair this checkpoint because its exclusions do not name the head. A counterfactual head exclusion repairs allocation but leaves an unquantized linear method without the embedding lookup Clef requires. The related vllm-omni #4528 concerns the separate vllm-omni repository.
The renderer repair is separate from Flash-only #62249 and #62297. Bounded open-PR searches did not establish another complete matching Clef output-table repair; this is not an exhaustive absence claim.
Limits and tradeoffs
AI assistance (Codex) was used for implementation, source analysis and CPU testing. Source review was also AI-assisted. No human technical review, human-run tests or Claude-executed tests are claimed. The upstream human-accountability and native end-to-end validation requirements remain unmet; this draft does not claim they have been satisfied.
Pull Request Checklist
/pr-checklistskill. (Mandatory for agents, optional for humans).BEFORE SUBMITTING, PLEASE READ https://docs.vllm.ai/en/latest/contributing (anything written below this line will be removed by GitHub Actions)