Repository navigation
[WIP][Refactor] Replace TTS/omni audio encoder dependency on flash-attn with vllm.vllm_flash_attn - #3340
Closed
zhangj1an wants to merge 4 commits into
Closed
[WIP][Refactor] Replace TTS/omni audio encoder dependency on flash-attn with vllm.vllm_flash_attn#3340zhangj1an wants to merge 4 commits into
flash-attn with vllm.vllm_flash_attn#3340zhangj1an wants to merge 4 commits into
Conversation
Signed-off-by: Zhang Jian <jianmusings@gmail.com>
Collaborator
|
Draft PR - ready for full review when WIP status removed. |
Signed-off-by: Zhang Jian <jianmusings@gmail.com>
Signed-off-by: Zhang Jian <jianmusings@gmail.com>
Signed-off-by: Zhang Jian <jianmusings@gmail.com>
Collaborator
|
please pay attention to the accuracy |
Contributor
|
Any updates here? |
Contributor
Author
I will try finish this PR by tomorrow! |
|
We should also remove |
Collaborator
|
Since this pr has been released over 3 months, I will close it if there is no further update. |
Contributor
Author
|
I will not be updating this PR anymore so will close it. I am happy for future contributors to continue from there |
This was referenced Sep 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PLEASE FILL IN THE PR DESCRIPTION HERE ENSURING ALL CHECKLIST ITEMS (AT THE BOTTOM) HAVE BEEN CONSIDERED.
Latest Status [8 May ]
Will mark as ready for review by this week after finish testing the last 3 models, also write a more detailed PR description
Purpose
Closes #3131.
Currently, there are 6 TTS/omni models' audio encoder that chose their own attention instead of relying on our existing flash attention backend in
vllm_omni/diffusion/attention/backends/utils/fa.py. Also the order infais a bit messy as pointed out by a code comment in #3302.This PR updated the priority order for attention in
fa.pyto be as follows:vllm.vllm_flash_attn. This method will run FA3 on Hopper, and FA2 on other GPU architecture.fa3_fwd_interface)flash_attn_interface),flash_attn).For each model, we followed the
Ming-flash-omni-2.0refactor in #3146, and route attention selection viafa.pydispatch. We mainly updated function signatures to match withfa.py. The following models are affected:mimo_audio,voxtral_tts,ming_flash_omni,qwen2_5_omni,qwen3_omniandqwen3_tts. We tested each model and show the accuracy stays the same on this branch.Also, voxtral tts hit the same #3327 error. It was using a method (
flash_attn_func) available in ROCm and MUSA but not on CUDA, so we added the same fix by adding an if-else branch that usesflash_attn_varlen_func(available on CUDA) when architecture is CUDA.Test Plan
We firstly ran pytests for each of the 6 models, and then tested their accuracy.
Env configs
All runs were executed against the top of this branch, on 2 RTX PRO 6000 Blackwell (sm_120, 96 GB)
e2e commands to run each model
mimo_audio
Default model:
XiaomiMiMo/MiMo-Audio-7B-Instruct.voxtral_tts
Default model:
mistralai/Voxtral-4B-TTS-2603.qwen2_5_omni
Default model:
Qwen/Qwen2.5-Omni-7B.qwen3_omni
Default model:
Qwen/Qwen3-Omni-30B-A3B-Instruct.ming_flash_omni
Default model:
Jonathan1909/Ming-flash-omni-2.0.qwen3_tts
Default model:
Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice(and -VoiceDesign / -Base variants).Test Result
All pytests for the 6 models still pass.
Details
qwen3_tts —
Qwen/Qwen3-TTS-12Hz-0.6B-Baseand-1.7B-CustomVoicevoxtral_tts —
mistralai/Voxtral-4B-TTS-2603mimo_audio —
XiaomiMiMo/MiMo-Audio-7B-Instructqwen2_5_omni —
Qwen/Qwen2.5-Omni-7Bstill pending
ming_flash_omni —
Jonathan1909/Ming-flash-omni-2.0still pending
qwen3_omni —
Qwen/Qwen3-Omni-30B-A3B-Instructstill pending
The end 2 end test for each model still works, and we attach the generated audio files.
Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice,--query-type CustomVoice其实我真的有发现,我是一个特别善于观察别人情绪的人。(examples/offline_inference/qwen3_tts/end2end.py:get_customvoice_query)其实我真的有发现我是一个特别善于观察别人情绪的人mistralai/Voxtral-4B-TTS-2603,--voice cheerful_female, blocking pathThat eerie silence after the first storm was just the calm before another round of chaos, wasn't it?(examples/offline_inference/voxtral_tts/end2end.py)That eerie silence after the first storm was just the calm before another round of chaos, wasn't it?XiaomiMiMo/MiMo-Audio-7B-Instruct,--query-type tts_sft --text "The weather is so nice today."Please convert this text to speech: The weather is so nice today.The weather is S O O DQwen/Qwen2.5-Omni-7B,--query-type use_audiostage 0→cuda:0, 1→cuda:1, 2→cuda:2); to be run on rental hardware per §8.7Jonathan1909/Ming-flash-omni-2.0,--query-type use_audioQwen/Qwen3-Omni-30B-A3B-Instruct,--query-type use_audioDetails
For mimo-audio, the main branch does not work,
The accuracy for each model compared to the main branch remains the same.
Details
Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model. Please runmkdocs serveto sync the documentation editions to./docs.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)