From 07650f271073bfacd963f4377b84948e63a04ed8 Mon Sep 17 00:00:00 2001 From: mgoin Date: Sun, 27 Apr 2025 21:45:33 +0000 Subject: [PATCH] Fix Mistral3 spatial merge error Signed-off-by: mgoin --- vllm/model_executor/models/mistral3.py | 3 +++ vllm/model_executor/models/pixtral.py | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/vllm/model_executor/models/mistral3.py b/vllm/model_executor/models/mistral3.py index 94cbb20cee5f..f8e9e3181367 100644 --- a/vllm/model_executor/models/mistral3.py +++ b/vllm/model_executor/models/mistral3.py @@ -272,6 +272,9 @@ def _get_prompt_updates( vision_config = hf_config.vision_config assert isinstance(vision_config, PixtralVisionConfig) + # Need to sneak in spatial_merge_size for Mistral3 + vision_config.spatial_merge_size = getattr(hf_config, + "spatial_merge_size", 1) encoder_info = PixtralHFEncoderInfo(vision_config) def get_replacement(item_idx: int): diff --git a/vllm/model_executor/models/pixtral.py b/vllm/model_executor/models/pixtral.py index 58323d639d5d..73fd80146955 100644 --- a/vllm/model_executor/models/pixtral.py +++ b/vllm/model_executor/models/pixtral.py @@ -911,9 +911,8 @@ def get_image_size(self) -> int: return self.vision_config.image_size def get_patch_size(self) -> int: - spatial_merge_size = getattr(self.vision_config, "spatial_merge_size", - 1) - return (self.vision_config.patch_size * spatial_merge_size) + return (self.vision_config.patch_size * + self.vision_config.spatial_merge_size) def get_patch_grid_length(self) -> int: image_size, patch_size = self.get_image_size(), self.get_patch_size()