79 lines
2.7 KiB
Python
79 lines
2.7 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
|
|
from unittest.mock import Mock, patch
|
|
|
|
|
|
def test_qwen3_5_lm_head_receives_quant_config():
|
|
from vllm.model_executor.models.qwen3_5 import Qwen3_5ForCausalLMBase
|
|
|
|
mock_quant_config = Mock()
|
|
|
|
mock_hf_config = Mock()
|
|
mock_hf_config.tie_word_embeddings = False
|
|
mock_hf_config.vocab_size = 128
|
|
mock_hf_config.hidden_size = 64
|
|
|
|
mock_vllm_config = Mock()
|
|
mock_vllm_config.model_config.hf_text_config = mock_hf_config
|
|
mock_vllm_config.cache_config.mamba_cache_mode = "align"
|
|
mock_vllm_config.scheduler_config = Mock()
|
|
mock_vllm_config.quant_config = mock_quant_config
|
|
mock_vllm_config.lora_config = None
|
|
|
|
mock_pp_group = Mock()
|
|
mock_pp_group.is_last_rank = True
|
|
|
|
with (
|
|
patch("vllm.model_executor.models.qwen3_5.Qwen3_5Model") as MockModel,
|
|
patch("vllm.model_executor.models.qwen3_5.ParallelLMHead") as MockLMHead,
|
|
patch("vllm.model_executor.models.qwen3_5.LogitsProcessor"),
|
|
patch(
|
|
"vllm.model_executor.models.qwen3_5.get_pp_group",
|
|
return_value=mock_pp_group,
|
|
),
|
|
):
|
|
MockModel.return_value.make_empty_intermediate_tensors = Mock()
|
|
|
|
Qwen3_5ForCausalLMBase(vllm_config=mock_vllm_config)
|
|
|
|
MockLMHead.assert_called_once()
|
|
call_kwargs = MockLMHead.call_args.kwargs
|
|
assert call_kwargs["quant_config"] is mock_quant_config
|
|
|
|
|
|
def test_qwen3_5_mtp_lm_head_receives_quant_config():
|
|
from vllm.config import CompilationMode
|
|
from vllm.model_executor.models.qwen3_5_mtp import Qwen3_5MTP
|
|
|
|
mock_quant_config = Mock()
|
|
|
|
mock_hf_config = Mock()
|
|
mock_hf_config.tie_word_embeddings = False
|
|
mock_hf_config.vocab_size = 128
|
|
mock_hf_config.hidden_size = 64
|
|
|
|
mock_vllm_config = Mock()
|
|
mock_vllm_config.model_config.hf_text_config = mock_hf_config
|
|
mock_vllm_config.cache_config.mamba_cache_mode = "align"
|
|
mock_vllm_config.compilation_config.mode = CompilationMode.NONE
|
|
mock_vllm_config.quant_config = mock_quant_config
|
|
|
|
mock_pp_group = Mock()
|
|
mock_pp_group.is_last_rank = True
|
|
|
|
with (
|
|
patch("vllm.model_executor.models.qwen3_5_mtp.Qwen3_5MultiTokenPredictor"),
|
|
patch("vllm.model_executor.models.qwen3_5_mtp.ParallelLMHead") as MockLMHead,
|
|
patch("vllm.model_executor.models.qwen3_5_mtp.LogitsProcessor"),
|
|
patch(
|
|
"vllm.model_executor.models.qwen3_5_mtp.get_pp_group",
|
|
return_value=mock_pp_group,
|
|
),
|
|
):
|
|
Qwen3_5MTP(vllm_config=mock_vllm_config)
|
|
|
|
MockLMHead.assert_called_once()
|
|
call_kwargs = MockLMHead.call_args.kwargs
|
|
assert call_kwargs["quant_config"] is mock_quant_config
|