From 33178f90063e5eec7d3e2a6288f3ca43d39ae8d3 Mon Sep 17 00:00:00 2001 From: Aritra Roy Gosthipaty Date: Tue, 21 Jul 2026 23:58:39 +0530 Subject: [PATCH] Fix Qwen3-VL M-RoPE on the Transformers modeling backend (grids + compile) (#49292) Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> Co-authored-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> --- vllm/model_executor/models/transformers/multimodal.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/vllm/model_executor/models/transformers/multimodal.py b/vllm/model_executor/models/transformers/multimodal.py index 0f80d56975..ae203d6bdb 100644 --- a/vllm/model_executor/models/transformers/multimodal.py +++ b/vllm/model_executor/models/transformers/multimodal.py @@ -337,7 +337,7 @@ class MultiModalMixin(SupportsMultiModal, SupportsMRoPE): # Positions shape handling for MRoPE models if self.model_config.uses_mrope: # [3, seq_len] -> [3, 1, seq_len] - positions = positions[:, None] + positions = positions[:, None].contiguous() model_output = super().forward( input_ids, positions, intermediate_tensors, inputs_embeds ) @@ -481,12 +481,8 @@ class MultiModalMixin(SupportsMultiModal, SupportsMRoPE): image_grid_thw = kwargs.get("image_grid_thw", []) video_grid_thw = kwargs.get("video_grid_thw", []) - image_grid_thw = (torch.stack if image_grid_thw else torch.tensor)( - image_grid_thw - ) - video_grid_thw = (torch.stack if video_grid_thw else torch.tensor)( - video_grid_thw - ) + image_grid_thw = torch.stack(image_grid_thw) if image_grid_thw else None + video_grid_thw = torch.stack(video_grid_thw) if video_grid_thw else None # `get_rope_index` doesn't always accept arbitrary `kwargs` kwargs = {}