[Misc] Remove code paths for Transformers < 5.16.1 by hmellor · Pull Request #59762 · vllm-project/vllm · GitHub
Skip to content

[Misc] Remove code paths for Transformers < 5.16.1 - #59762

Merged
hmellor merged 1 commit into
vllm-project:mainfrom
hmellor:remove-old-transformers-branches
Oct 2, 2026
Merged

hmellor merged 1 commit into
vllm-project:mainfrom
hmellor:remove-old-transformers-branches

Conversation

@hmellor

@hmellor hmellor commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Overview

#57387 raised the minimum Transformers version to 5.16.1, so code that only runs on older versions is now unreachable. This PR removes it (~600 net lines), including the Transformers backend's legacy multi-modal processor.

Claims

  • Removes the Transformers v4 import guard (transformers_utils/config.py) and the < 5.15 Mistral tokenizer_mode="hf" error (tokenizers/registry.py).
  • Mistral3: drops the < 5.15 dummy-text fallback for PixtralProcessor. The base _get_hf_mm_text already returns None.
  • Transformers backend: deletes LegacyMultiModalProcessor (the pre-5.15 placeholder search), merges _MultiModalProcessorBase and OffsetsMultiModalProcessor into a single MultiModalProcessor, and removes check_version and its six calls (all ≤ 5.15).
  • HYV4 tool/reasoning parsers: unwraps an always-true major >= 5 check.
  • Voxtral fetch_audio: drops the list[float] special case, which is_valid_audio handles since 5.10.
  • Tests:
    • Transformers backend processor tests no longer parametrise over both processors and use MULTIMODAL_REGISTRY directly, so the transformers_backend.py helper is deleted.
    • test_spliced_prompt_matches_hf_expansion now compares against the HF processor's own output instead of the legacy processor's.
    • Removes dead version skips (MTP Gemma4, Transformers backend MLA, Granite), the unused check_transformers_version helper, and all 52 min_transformers_version values in tests/models/registry.py (all ≤ 5.16.0).

Not changed: the 25 registry entries with max_transformers_version < 5.16.1, and the >= 5.0.0 skips on the bitsandbytes MoE and PaddleOCR-VL tests. Those tests can no longer run, but fixing or removing them is a separate decision.

Validation

No behaviour change is expected on supported Transformers versions, so no model evals were run. Tests were run locally on macOS CPU with transformers 5.18.0.dev0:

pytest tests/tokenizers_/test_registry.py tests/transformers_utils/processors/test_voxtral.py \
  tests/models/multimodal/processing/test_transformers_image.py \
  tests/models/multimodal/processing/test_transformers_audio.py \
  tests/models/multimodal/processing/test_mistral3.py
# 63 passed, 8 skipped (mistral3, needs CUDA), 2 xfailed (existing Emu3/Voxtral xfails)

pytest --collect-only tests/models/test_registry.py tests/models/language/generation/test_granite.py \
  tests/models/transformers/test_backend.py tests/v1/e2e/spec_decode/mtp
# 458 tests collected

GPU tests whose skips were removed (test_backend.py::test_mla, Gemma4 MTP) were not run locally and rely on CI.


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.

🤖 Generated with Claude Code

The minimum Transformers version is now 5.16.1, so branches that only run on
older versions are unreachable. Remove them, along with the legacy Transformers
backend multi-modal processor and the test skips/minimums they required.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Harry Mellor <19981378+hmellor@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 multi-modality Related to multi-modality (#4194) mistral Related to Mistral models speculative-decoding tool-calling labels Oct 2, 2026
@hmellor

hmellor commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

❌ This PR is 2 commits behind upstream main. Your branch must contain every commit currently on upstream main. No new CI build was started. Merge or rebase onto the latest main, then rerun /ci run. To test this branch at your own risk, use /ci run --allow-stale.

@hmellor

hmellor commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

/ci run --allow-stale

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92597 for commit 845e186e074a.

⚠️ This PR is 2 commits behind upstream main. Running CI at your own risk because --allow-stale was requested; outdated CI configuration may cause failures. Before merging, merge or rebase onto the latest main, then rerun /ci run on the latest PR commit.

@hmellor
hmellor enabled auto-merge (squash) October 2, 2026 10:44
@github-actions github-actions Bot added the ready ONLY add when PR is ready to merge/full CI is needed label Oct 2, 2026
@vllm-agent

Copy link
Copy Markdown
Collaborator

CI selector (shadow): 150 test steps (219 jobs) instead of 73 (108 jobs)

Shadow mode: this changes nothing about what CI runs. It shows what the evidence-based selector would pick for this PR, next to today's rules. How it works.

Feedback welcome: reply here if it would skip a step this change needs, or runs something unrelated.

steps (jobs) Today's rules Selector Would skip Would add
NVIDIA, CPU and others 73 (108) 150 (219) 6 (6) 83 (117)
AMD mirrors 66 (96) 126 (182) 5 (5) 65 (91)
Selector would run (150)
  • amd-fp8-moe-kernels-mi355
  • amd-kernels-mi355
  • amd-lm-eval-small-models-harness
  • arm-cpu-test ×3
  • async-engine-inputs-utils-worker
  • basic-correctness ×2
  • basic-correctness-cpu-offload
  • basic-correctness-cumem
  • basic-correctness-prefetch-offload
  • basic-correctness-sleep-mode
  • basic-models-test-other-cpu
  • basic-models-tests-extra-initialization ×14
  • basic-models-tests-initialization
  • basic-models-tests-other
  • batch-invariance-b200
  • batch-invariance-h100
  • benchmarks-cli-test
  • cpu-language-generation-and-pooling-model-tests ×3
  • cpu-multi-modal-model-tests-n ×4
  • cpu-multimodal-config
  • cpu-params-env-tokenizers-parser
  • cpu-quantization-model-tests
  • cpu-reasoning-renderers
  • cpu-tool-parsers
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus
  • cudagraph
  • distributed-compile-comm-4-gpus
  • distributed-compile-rpc-tests-2-gpus
  • distributed-dp-tests-2-gpus
  • distributed-dp-tests-4-gpus
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus
  • distributed-model-tests-2-gpus ×3
  • distributed-mooncakeconnector-pd-accuracy-4-gpus
  • distributed-nixlconnector-pd-accuracy-4-gpus
  • distributed-tests-8xh100
  • distributed-torchrun-examples-4-gpus
  • distributed-torchrun-shutdown-tests-2-gpus
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus
  • e2e-core-1-gpu
  • e2e-core-large-memory
  • e2e-scheduling-1-gpu
  • e2e-scheduling-accuracy-1-gpu
  • elastic-ep-scaling-test
  • engine
  • engine-1-gpu
  • entrypoints-integration-api-server ×4
  • entrypoints-integration-api-server-generate
  • entrypoints-integration-api-server-openai-chat_completion
  • entrypoints-integration-api-server-openai-completion
  • entrypoints-integration-llm
  • entrypoints-integration-multimodal
  • entrypoints-integration-pooling
  • entrypoints-integration-responses-api
  • entrypoints-integration-speech_to_text
  • entrypoints-unit-tests
  • eplb-execution
  • examples
  • extract-hidden-states-integration
  • extract-hidden-states-integration-2-gpus
  • fault-tolerance-e2e-2xh100
  • fusion-e2e-config-sweep-h100
  • fusion-e2e-quick-h100
  • fusion-e2e-tp2-ar-rms-config-sweep-h100
  • fusion-e2e-tp2-asynctp-config-sweep-h100
  • fusion-e2e-tp2-b200
  • fusion-e2e-tp2-quick-h100
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus
  • kernels-attention-test ×7
  • kernels-b200 ×3
  • kernels-core-operation-test ×3
  • kernels-deepgemm-test-h100
  • kernels-helion-test ×5
  • kernels-mamba-test
  • kernels-moe-test ×5
  • kernels-root-misc-test-b200
  • kimi-k3-unit-tests-b200
  • kv-offload-large
  • kv-offload-medium
  • kv-offload-small
  • language-models-tests-extra-standard ×2
  • language-models-tests-granite-l4-compatibility
  • language-models-tests-hybrid ×2
  • language-models-tests-standard
  • lm-eval-dspark-watermark-2xh100
  • lm-eval-small-models
  • lm-eval-turboquant-k3v4nc
  • lm-eval-turboquant-k8v4
  • lm-eval-turboquant-t3nc
  • lm-eval-turboquant-t4nc
  • lm-eval-watermarking
  • lora ×4
  • lora-tp-distributed ×4
  • metrics-tracing-2-gpus
  • model-executor
  • mooncake-ec-tcp-e2e-2-gpus
  • mrcr-eval-small-models
  • multi-modal-accuracy-eval-small-models
  • multi-modal-models-standard-1-qwen2
  • multi-modal-models-standard-2-qwen3-gemma
  • multi-modal-models-standard-3-llava-qwen2-vl
  • multi-modal-models-standard-4-other-whisper
  • multi-modal-processor ×4
  • multi-modal-processor-cpu ×4
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus
  • nixlconnector-pd-edge-cases-2-gpus
  • openai-api-correctness
  • pipeline-context-parallelism-4-gpus
  • plugin-tests-2-gpus
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus
  • pytorch-compilation-dynamic-shapes
  • pytorch-compilation-unit-tests
  • pytorch-compilation-unit-tests-h100
  • pytorch-fullgraph-cudagraph-l4-compatibility
  • pytorch-fullgraph-test
  • quantization ×4
  • quantized-models-test
  • quantized-moe-test-b200
  • qwen4-exp-unit-tests-cpu
  • rayexecutorv2-4-gpus
  • regression
  • replayssm-e2e
  • rust-frontend-core-correctness
  • rust-frontend-distributed
  • rust-frontend-openai-coverage
  • rust-frontend-serve-admin-coverage
  • rust-frontend-tool-use
  • samplers-multimodal-beam-search
  • samplers-test
  • scale-out-ec-e2e-2-gpus
  • sharded-rdt-weight-transfer
  • spec-decode-draft-model ×4
  • spec-decode-eagle-1-deepseek-qwen
  • spec-decode-eagle-2-llama3-qwen-vl-other
  • spec-decode-mtp-deepseek-mimo
  • spec-decode-mtp-gemma4
  • spec-decode-mtp-qwen3-5
  • spec-decode-ngram-suffix
  • spec-decode-speculators
  • v1-attention-b200 ×2
  • v1-attention-h100-mi300 ×2
  • v1-core
  • v1-executor-worker
  • v1-kv-connectors ×4
  • v1-logits-oracle
  • v1-metrics-lmeval
  • v1-others-cpu
  • v1-sample
  • v1-spec-decode
Would skip (today's rules run them) (6)
  • ascend-npu-test
  • jit-monitor-no-runtime-jit
  • kernels-fla-ops-test-b200
  • kernels-mhc-test-b200
  • pytorch-compilation-passes-unit-tests
  • v1-kv-offload
Would add (today's rules do not run them) (83)
  • amd-fp8-moe-kernels-mi355 (code map)
  • amd-kernels-mi355 (Python record)
  • arm-cpu-test ×3 (code map)
  • batch-invariance-b200 (code map)
  • batch-invariance-h100 (code map)
  • cpu-multi-modal-model-tests-n ×4 (code map)
  • cpu-quantization-model-tests (code map)
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • cudagraph (Python record)
  • distributed-compile-comm-4-gpus (Python record)
  • distributed-compile-rpc-tests-2-gpus (Python record)
  • distributed-dp-tests-2-gpus (Python record)
  • distributed-dp-tests-4-gpus (Python record)
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus (code map)
  • distributed-mooncakeconnector-pd-accuracy-4-gpus (Python record)
  • distributed-nixlconnector-pd-accuracy-4-gpus (code map)
  • distributed-tests-8xh100 (Python record)
  • distributed-torchrun-examples-4-gpus (Python record)
  • distributed-torchrun-shutdown-tests-2-gpus (Python record)
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • e2e-core-1-gpu (code map)
  • e2e-core-large-memory (code map)
  • e2e-scheduling-1-gpu (Python record)
  • e2e-scheduling-accuracy-1-gpu (Python record)
  • elastic-ep-scaling-test (Python record)
  • engine (code map)
  • engine-1-gpu (Python record)
  • entrypoints-unit-tests (code map)
  • eplb-execution (code map)
  • examples (code map)
  • extract-hidden-states-integration (Python record)
  • extract-hidden-states-integration-2-gpus (Python record)
  • fault-tolerance-e2e-2xh100 (Python record)
  • fusion-e2e-config-sweep-h100 (Python record)
  • fusion-e2e-tp2-ar-rms-config-sweep-h100 (Python record)
  • fusion-e2e-tp2-asynctp-config-sweep-h100 (Python record)
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus (Python record)
  • kernels-attention-test ×7 (Python record)
  • kernels-b200 ×3 (Python record)
  • kernels-core-operation-test ×3 (code map)
  • kernels-deepgemm-test-h100 (Python record)
  • kernels-helion-test ×5 (code map)
  • kernels-mamba-test (code map)
  • kernels-moe-test ×5 (code map)
  • kimi-k3-unit-tests-b200 (Python record)
  • kv-offload-large (code map)
  • kv-offload-medium (code map)
  • kv-offload-small (code map)
  • lm-eval-dspark-watermark-2xh100 (Python record)
  • lm-eval-small-models (code map)
  • lm-eval-turboquant-k3v4nc (Python record)
  • lm-eval-turboquant-k8v4 (Python record)
  • lm-eval-turboquant-t3nc (Python record)
  • lm-eval-turboquant-t4nc (Python record)
  • lm-eval-watermarking (Python record)
  • lora ×4 (code map)
  • lora-tp-distributed ×4 (code map)
  • mooncake-ec-tcp-e2e-2-gpus (Python record)
  • mrcr-eval-small-models (Python record)
  • multi-modal-accuracy-eval-small-models (Python record)
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus (code map)
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus (Python record)
  • nixlconnector-pd-edge-cases-2-gpus (Python record)
  • openai-api-correctness (Python record)
  • plugin-tests-2-gpus (Python record)
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus (code map)
  • quantization ×4 (code map)
  • quantized-models-test (Python record)
  • quantized-moe-test-b200 (code map)
  • qwen4-exp-unit-tests-cpu (code map)
  • rayexecutorv2-4-gpus (code map)
  • replayssm-e2e (Python record)
  • rust-frontend-core-correctness (Python record)
  • rust-frontend-distributed (Python record)
  • rust-frontend-openai-coverage (code map)
  • rust-frontend-serve-admin-coverage (Python record)
  • samplers-multimodal-beam-search (Python record)
  • samplers-test (Python record)
  • scale-out-ec-e2e-2-gpus (Python record)
  • sharded-rdt-weight-transfer (Python record)
  • v1-attention-b200 ×2 (code map)
  • v1-attention-h100-mi300 ×2 (code map)
AMD mirrors: would skip (5)
  • kernels-fla-ops-test-b200
  • kernels-mhc-test-b200
  • platform-tests
  • pytorch-compilation-passes-unit-tests
  • v1-kv-offload
AMD mirrors: would add (65)
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • cudagraph (Python record)
  • distributed-compile-rpc-tests-2-gpus (Python record)
  • distributed-dp-tests-2-gpus (Python record)
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus (Python record)
  • distributed-mooncakeconnector-pd-accuracy-4-gpus (Python record)
  • distributed-nixlconnector-pd-accuracy-4-gpus (code map)
  • distributed-tests-8xh100 (Python record)
  • distributed-torchrun-examples-4-gpus (Python record)
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • e2e-core-1-gpu (code map)
  • e2e-core-large-memory (code map)
  • e2e-scheduling-1-gpu (Python record)
  • e2e-scheduling-accuracy-1-gpu (Python record)
  • engine (code map)
  • engine-1-gpu (code map)
  • entrypoints-unit-tests (code map)
  • eplb-execution (code map)
  • examples (code map)
  • extract-hidden-states-integration (Python record)
  • extract-hidden-states-integration-2-gpus (Python record)
  • fusion-and-compile-unit-tests-2xb200 (Python record)
  • fusion-e2e-config-sweep-h100 (Python record)
  • fusion-e2e-tp2-asynctp-config-sweep-h100 (code map)
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus (Python record)
  • kernels-core-operation-test ×3 (code map)
  • kernels-helion-test ×5 (code map)
  • kernels-mamba-test (code map)
  • kernels-moe-test ×5 (code map)
  • kernels-quantization-test ×6 (Python record)
  • kimi-k3-unit-tests-b200 (Python record)
  • kv-offload-large (code map)
  • kv-offload-medium (code map)
  • kv-offload-small (code map)
  • lm-eval-dspark-watermark-2xh100 (Python record)
  • lm-eval-turboquant-k3v4nc (Python record)
  • lm-eval-turboquant-k8v4 (Python record)
  • lm-eval-turboquant-t3nc (Python record)
  • lm-eval-turboquant-t4nc (Python record)
  • lm-eval-watermarking (Python record)
  • lora ×4 (code map)
  • lora-tp-distributed ×4 (code map)
  • mooncake-ec-tcp-e2e-2-gpus (Python record)
  • multi-modal-accuracy-eval-small-models (Python record)
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus (code map)
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus (Python record)
  • nixlconnector-pd-edge-cases-2-gpus (Python record)
  • nixlconnector-pd-spec-decode-acceptance-2-gpus (Python record)
  • openai-api-correctness (Python record)
  • plugin-tests-2-gpus (Python record)
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus (code map)
  • quantization ×4 (code map)
  • quantized-models-test (Python record)
  • quantized-moe-test-b200 (code map)
  • rust-frontend-core-correctness (Python record)
  • rust-frontend-distributed (Python record)
  • rust-frontend-openai-coverage (code map)
  • rust-frontend-serve-admin-coverage (Python record)
  • samplers-multimodal-beam-search (Python record)
  • samplers-test (Python record)
  • scale-out-ec-e2e-2-gpus (Python record)
  • sharded-rdt-weight-transfer (Python record)
  • v1-attention-b200 ×2 (code map)
  • v1-attention-h100-mi300 ×2 (code map)

18 changed files · base 58b3298457 · head 845e186e07 · Python record: build 92561 at 4056c8ac1f · kernel record: table 4056c8a (build 92561), map 4056c8a · not counted: 10 build steps, 5 A100 steps the generator no longer emits, 118 optional steps the selector would also run

@hmellor
hmellor merged commit 5d20979 into vllm-project:main Oct 2, 2026
186 checks passed
@hmellor
hmellor deleted the remove-old-transformers-branches branch October 2, 2026 11:17
Hotragn added a commit to Hotragn/vllm that referenced this pull request Oct 2, 2026
michael-gpu pushed a commit to practical-inference/vllm-ampere-extended that referenced this pull request Oct 20, 2026
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@arpera arpera removed this from Tool Calling Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mistral Related to Mistral models multi-modality Related to multi-modality (#4194) ready ONLY add when PR is ready to merge/full CI is needed speculative-decoding tool-calling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants