From ba02e25e69874b114e04eaa713007bc4f222ccbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E7=81=B5?= Date: Thu, 22 May 2025 12:57:50 +0800 Subject: [PATCH 1/2] [Bugfix] Fix MRoPE Errors in the Qwen-VL Model When Processing Pure Text --- vllm/worker/model_runner.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/vllm/worker/model_runner.py b/vllm/worker/model_runner.py index 12025617e512..33222dc224f5 100644 --- a/vllm/worker/model_runner.py +++ b/vllm/worker/model_runner.py @@ -729,7 +729,10 @@ def _compute_multi_modal_input(self, inter_data: InterDataForSeqGroup, mm_kwargs, placeholder_maps = MultiModalPlaceholderMap.from_seq_group( seq_group_metadata, range(positions[0], positions[0] + len(positions))) - if not mm_kwargs: + + # M-RoPE requires mrope_positions even for plain text; return early + # when mm_kwargs is empty only if inter_data.is_prompt is False. + if not mm_kwargs and (not inter_data.is_prompt): return inter_data.multi_modal_kwargs = mm_kwargs @@ -741,12 +744,6 @@ def _compute_multi_modal_input(self, inter_data: InterDataForSeqGroup, video_grid_thw = mm_kwargs.get("video_grid_thw", None) audio_feature_lengths = mm_kwargs.get("audio_feature_lengths", None) - assert ( - image_grid_thw is not None or video_grid_thw is not None - or audio_feature_lengths is not None), ( - "mrope embedding type requires multi-modal input mapper " - "returns 'image_grid_thw' or 'video_grid_thw' or " - "'audio_feature_lengths'.") second_per_grid_ts = mm_kwargs.get("second_per_grid_ts", None) use_audio_in_video = mm_kwargs.get("use_audio_in_video", False) From bd3004edfecfcd59cdd5644279bceee85624fe95 Mon Sep 17 00:00:00 2001 From: Cyrus Leung Date: Thu, 22 May 2025 13:53:03 +0800 Subject: [PATCH 2/2] Update vllm/worker/model_runner.py --- vllm/worker/model_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vllm/worker/model_runner.py b/vllm/worker/model_runner.py index 33222dc224f5..53e79adf9aae 100644 --- a/vllm/worker/model_runner.py +++ b/vllm/worker/model_runner.py @@ -732,7 +732,7 @@ def _compute_multi_modal_input(self, inter_data: InterDataForSeqGroup, # M-RoPE requires mrope_positions even for plain text; return early # when mm_kwargs is empty only if inter_data.is_prompt is False. - if not mm_kwargs and (not inter_data.is_prompt): + if not mm_kwargs and not inter_data.is_prompt: return inter_data.multi_modal_kwargs = mm_kwargs