@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / f6037d1907
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 15, 09:45 UTC

[Bugfix] Fix MRoPE Errors in the Qwen-VL Model When Processing Pure Text (#18526)

Co-authored-by: 松灵 <wpf272043@alibaba-inc.com> Co-authored-by: Cyrus Leung <cyrus.tl.leung@gmail.com> Co-authored-by: DarkLight1337 <tlleungac@connect.ust.hk>

燃 committed May 22, 2025 at 20:22 UTC f6037d1907851323735fd181a0b4d3e7e79229a7
1 file changed +4 -7
vllm/worker/model_runner.py
+4 -7
@@ -729,7 +729,10 @@ class ModelInputForGPUBuilder(ModelRunnerInputBuilderBase[ModelInputForGPU]):
729 mm_kwargs, placeholder_maps = MultiModalPlaceholderMap.from_seq_group(
730 seq_group_metadata,
731 range(positions[0], positions[0] + len(positions)))
732 - if not mm_kwargs:
732 +
733 + # M-RoPE requires mrope_positions even for plain text; return early
734 + # when mm_kwargs is empty only if inter_data.is_prompt is False.
735 + if not mm_kwargs and not inter_data.is_prompt:
736 return
737
738 inter_data.multi_modal_kwargs = mm_kwargs
@@ -741,12 +744,6 @@ class ModelInputForGPUBuilder(ModelRunnerInputBuilderBase[ModelInputForGPU]):
744 video_grid_thw = mm_kwargs.get("video_grid_thw", None)
745 audio_feature_lengths = mm_kwargs.get("audio_feature_lengths",
746 None)
744 - assert (
745 - image_grid_thw is not None or video_grid_thw is not None
746 - or audio_feature_lengths is not None), (
747 - "mrope embedding type requires multi-modal input mapper "
748 - "returns 'image_grid_thw' or 'video_grid_thw' or "
749 - "'audio_feature_lengths'.")
747
748 second_per_grid_ts = mm_kwargs.get("second_per_grid_ts", None)
749 use_audio_in_video = mm_kwargs.get("use_audio_in_video", False)