Skip to content

Comments

[Test] Add full test for Qwen3-Omni-30B-A3B-Instruct for image and audio single modal#827

Merged
hsliuustc0106 merged 25 commits intovllm-project:mainfrom
yenuo26:full_test
Jan 21, 2026
Merged

[Test] Add full test for Qwen3-Omni-30B-A3B-Instruct for image and audio single modal#827
hsliuustc0106 merged 25 commits intovllm-project:mainfrom
yenuo26:full_test

Conversation

@yenuo26
Copy link
Contributor

@yenuo26 yenuo26 commented Jan 17, 2026

PLEASE FILL IN THE PR DESCRIPTION HERE ENSURING ALL CHECKLIST ITEMS (AT THE BOTTOM) HAVE BEEN CONSIDERED.

Purpose

This PR introduces comprehensive testing for the image and audio single-modal capabilities of the Qwen3-Omni-30B-A3B-Instruct model.
design and plan, please refer to the #723

Test Plan

pytest test_qwen3_omni_expansion.py -k "test_audio" -v --html=report.html --self-contained-html --capture=sys
pytest test_qwen3_omni_expansion.py -k "test_image" -v --html=report.html --self-contained-html --capture=sys

Test Result

image image
Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft.

BEFORE SUBMITTING, PLEASE READ https://github.com/vllm-project/vllm-omni/blob/main/CONTRIBUTING.md (anything written below this line will be removed by GitHub Actions)

wangyu31577 and others added 19 commits January 8, 2026 21:22
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Signed-off-by: wangyu31577 <[email protected]>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 68244ee219

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@hsliuustc0106
Copy link
Collaborator

@Bounty-hunter PTAL

@hsliuustc0106 hsliuustc0106 added the ready label to trigger buildkite CI label Jan 17, 2026
audio_content = convert_audio_to_text(audio_data)
print(f"text content is: {text_content}")
print(f"audio content is: {audio_content}")
assert cosine_similarity_text(audio_content, text_content) > 0.9, (
Copy link
Collaborator

Choose a reason for hiding this comment

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

why we choose 0.9?

# Test single completion
api_client = client(server)
e2e_list = list()
with concurrent.futures.ThreadPoolExecutor(max_workers=num_concurrent_requests) as executor:
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this the way vllm upstream test concurrent requests?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In the vLLM e2e test directory, I haven't found test cases for the relevant scenario. Among other vLLM test cases, I observed that they use the same approach to handle concurrency,for example:https://github.com/vllm-project/vllm/blob/main/tests/cuda/test_cuda_context.py

We plan to use this method for handling small-scale concurrency in our test cases, while large-scale concurrency will be tested using benchmark tools.

stage_config_path = modify_stage_config(stage_config_path, deploy_config)

with OmniServer(model, ["--stage-configs-path", stage_config_path, "--stage-init-timeout", "90"]) as server:
image_data_url = f"data:image/jpeg;base64,{generate_synthetic_image(64, 64)}"
Copy link
Collaborator

Choose a reason for hiding this comment

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

why we choose 64*64, Use at least 224x224 for better model reliability.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Modified

@yenuo26 yenuo26 requested a review from hsliuustc0106 January 20, 2026 01:07
Copy link
Collaborator

@hsliuustc0106 hsliuustc0106 left a comment

Choose a reason for hiding this comment

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

lgtm

@hsliuustc0106 hsliuustc0106 merged commit 334d306 into vllm-project:main Jan 21, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready label to trigger buildkite CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants