Skip to content

Commit 6f4a82f

Browse files
authored
[Model] Enable BNB support for qwen2_5_omni_thinker (#24420)
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
1 parent c44797a commit 6f4a82f

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

vllm/model_executor/models/qwen2_5_omni_thinker.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
from vllm.config import VllmConfig
4242
from vllm.logger import init_logger
4343
from vllm.model_executor.layers.rotary_embedding import MRotaryEmbedding
44+
from vllm.model_executor.models.module_mapping import MultiModelKeys
4445
from vllm.model_executor.models.qwen2_5_vl import (
4546
Qwen2_5_VisionTransformer, Qwen2_5_VLImageEmbeddingInputs,
4647
Qwen2_5_VLImageInputs, Qwen2_5_VLImagePixelInputs,
@@ -66,7 +67,8 @@
6667
from vllm.transformers_utils.tokenizer import decode_tokens, encode_tokens
6768
from vllm.utils.tensor_schema import TensorSchema, TensorShape
6869

69-
from .interfaces import MultiModalEmbeddings, SupportsMultiModal, SupportsPP
70+
from .interfaces import (MultiModalEmbeddings, SupportsLoRA,
71+
SupportsMultiModal, SupportsPP)
7072
from .utils import (AutoWeightsLoader, WeightsMapper,
7173
init_vllm_registered_model, maybe_prefix,
7274
merge_multimodal_embeddings)
@@ -726,14 +728,30 @@ def _process_video_input(
726728
dummy_inputs=Qwen2_5OmniThinkerDummyInputsBuilder,
727729
)
728730
class Qwen2_5OmniThinkerForConditionalGeneration(
729-
nn.Module, SupportsMultiModal, SupportsPP,
731+
nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA,
730732
Qwen2_5OmniConditionalGenerationMixin):
731733
hf_to_vllm_mapper = WeightsMapper(
732734
orig_to_new_prefix={
733735
"thinker.lm_head.": "language_model.lm_head.",
734736
"thinker.model.": "language_model.model.",
735737
"thinker.": "",
736738
})
739+
packed_modules_mapping = {
740+
"qkv_proj": [
741+
"q_proj",
742+
"k_proj",
743+
"v_proj",
744+
],
745+
"attn.qkv": [
746+
"attn.q",
747+
"attn.k",
748+
"attn.v",
749+
],
750+
"gate_up_proj": [
751+
"gate_proj",
752+
"up_proj",
753+
],
754+
}
737755

738756
@classmethod
739757
def get_placeholder_str(cls, modality: str, i: int) -> Optional[str]:
@@ -956,3 +974,12 @@ def load_weights(self, weights: Iterable[tuple[str,
956974
mapper=self.hf_to_vllm_mapper)
957975

958976
return loaded_weights
977+
978+
def get_mm_mapping(self) -> MultiModelKeys:
979+
"""
980+
Get the module prefix in multimodal models
981+
"""
982+
return MultiModelKeys.from_string_field(
983+
language_model="language_model",
984+
connector="merger.",
985+
tower_model=["visual.", "audio_tower."])

0 commit comments

Comments
 (0)