Skip to content

[llm] Upgrade vLLM to 0.31.0 - #66720

Merged
elliot-barn merged 2 commits into
masterfrom
vllm-0.31.0
Oct 8, 2026
Merged

elliot-barn merged 2 commits into
masterfrom
vllm-0.31.0

Conversation

@jeffreywang88

@jeffreywang88 jeffreywang88 commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Description

As title.

Signed-off-by: Jeffrey Wang <jeffreywang@anyscale.com>
@jeffreywang88
jeffreywang88 requested review from a team, edoakes and richardliaw as code owners October 5, 2026 09:30
@jeffreywang88 jeffreywang88 added the go add ONLY when ready to merge, run all tests label Oct 5, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request upgrades vLLM from version 0.30.0 to 0.31.0, updating lockfiles, requirements, and Docker configurations accordingly, and removes the Pixtral transformers patch. It also updates the tokenizer initialization to support new vLLM arguments: trust_request_mm_kwargs and tool_strict_level. The feedback recommends defensively mocking the new tool_strict_level attribute on hand-built OnlineRenderer instances in the test files to prevent potential AttributeErrors, similar to how trust_request_mm_kwargs was mocked.

online_renderer.OnlineRenderer
)
renderer.renderer = Renderer()
renderer.trust_request_mm_kwargs = False

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Since tool_strict_level is also a new attribute introduced in vLLM 0.31.0's OnlineRenderer, we should defensively mock it on this hand-built OnlineRenderer instance to prevent potential AttributeErrors when rendering chat/tools.

        renderer.trust_request_mm_kwargs = False
        renderer.tool_strict_level = "off"

online_renderer.OnlineRenderer
)
renderer.renderer = Renderer()
renderer.trust_request_mm_kwargs = False

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Since tool_strict_level is also a new attribute introduced in vLLM 0.31.0's OnlineRenderer, we should defensively mock it on this hand-built OnlineRenderer instance to prevent potential AttributeErrors when rendering chat/tools.

Suggested change
renderer.trust_request_mm_kwargs = False
renderer.trust_request_mm_kwargs = False
renderer.tool_strict_level = "off"

request.build_chat_params = lambda *args: ChatParams()
renderer = online_renderer.OnlineRenderer.__new__(online_renderer.OnlineRenderer)
renderer.renderer = Renderer()
renderer.trust_request_mm_kwargs = False

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Since tool_strict_level is also a new attribute introduced in vLLM 0.31.0's OnlineRenderer, we should defensively mock it on this hand-built OnlineRenderer instance to prevent potential AttributeErrors when rendering chat/tools.

    renderer.trust_request_mm_kwargs = False
    renderer.tool_strict_level = "off"

@ray-gardener ray-gardener Bot added serve Ray Serve Related Issue llm labels Oct 5, 2026
@jeffreywang88

Copy link
Copy Markdown
Contributor Author

Signed-off-by: Jeffrey Wang <jeffreywang@anyscale.com>
@jeffreywang88
jeffreywang88 requested review from a team as code owners October 5, 2026 18:35
@jeffreywang88

jeffreywang88 commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor Author

Running release tests with A10 instead. AWS is running out of L4 capacities.

-> No luck with A10 either :(

@jeffreywang88

jeffreywang88 commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor Author

@jeffreywang88

jeffreywang88 commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Trying with another H100 pool: https://buildkite.com/ray-project/release/builds/109824/table (can't provision necessary IAM permissions)

@jeffreywang88

jeffreywang88 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor Author

Another try -- llm-serve & llm-batch with concurrency cap 4 and llm-team-queue: https://buildkite.com/ray-project/release/builds/109935/table.

@jeffreywang88

jeffreywang88 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor Author

I ran release tests with the usual setup which acquires on-demand AWS L4 instances and with our H100 pool (but missing some credentials). None of the failures in either run are related to this PR, and the union of passed tests across both runs covers all tests.

Why did I run with two different setups? AWS is suffering from insufficient L4/A10 capacities.

Screenshot 2026-10-07 at 11 35 29 AM
  • Running tests with H100 pool on branch vllm-0.31.0-h100: https://buildkite.com/ray-project/release/builds/109935/canvas. None of the failures are related to changes in this PR.
    • HF token secret access denied: qwen tp1, qwen tp1 prefix-cache, llama 8B tp2, llama 1B no-accelerator. These tests read llm_release_test_hf_token from AWS Secrets Manager which the pod role has no access to it.
    • nginx 413, request too large: llama 1B S3, qwen 1p1d, qwen 1p1d direct-streaming, qwen 2p6d, qwen 2p6d direct-streaming. The test_too_long_completion_request probe sends a ~1.2 MB prompt and expects vLLM to reject it with a 400. The new cluster's nginx has a 1 MB request limit and rejects it first with a 413.
    • No free H100s, cluster never started: qwen tp1 direct-streaming, llama 8B tp2 direct-streaming, llama LoRA. All 4 H100 nodes were full. The recent config makes each of these tests hold a 4×H100 node for the orchestrating job even though only its Service needs GPUs.
    • Service replica failed to start (likely S3 access denied): llama 1B S3 runai streamer. This test loads the model from s3://air-example-data with the pod's AWS credentials, which the new pod role doesn't allow.
Screenshot 2026-10-07 at 10 18 50 AM

@jeffreywang88

jeffreywang88 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor Author

That said, this PR is ready to merge despite the release test failures. I reran the tests on a separate H100 pool and verified that every test passes in at least one of the two environments (ref).

I haven't run the kv_router tests, which are now set to manual frequency regardless. I'll follow up with another PR to update our release test configuration to ensure sufficient GPU capacity and address any kv_router test failures.

cc: @eicherseiji @elliot-barn

@eicherseiji eicherseiji left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🐐

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we move this to the Ray Serve LLM index docs page instead

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

sounds good given that lots of people are asking for it, will do in a separate PR

prometheus-fastapi-instrumentator>=8.0.0 # for starlette v1.0.1+
# Keep NIXL in sync with vLLM's kv_connectors requirements.
# https://github.com/vllm-project/vllm/blob/v0.30.0/requirements/kv_connectors.txt#L4
# https://github.com/vllm-project/vllm/blob/v0.31.0/requirements/kv_connectors.txt#L4

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Now it is #L5 haha

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

apparently claude didn't look at the source code. anyway, I'd rather not rerun premerge since it took 30 hours just to acquire a GPU instance last time...

:::{tab-item} Server
:sync: server

```python

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a blocker to making this a doctest

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

i'll convert all code snippets in this page to doc tests in a follow-up

@elliot-barn
elliot-barn merged commit 0fe2388 into master Oct 8, 2026
5 of 6 checks passed
@elliot-barn
elliot-barn deleted the vllm-0.31.0 branch October 8, 2026 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

go add ONLY when ready to merge, run all tests llm serve Ray Serve Related Issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants