44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
|
|
import pytest
|
|
|
|
from vllm.config.model import ModelConfig
|
|
from vllm.config.multimodal import MultiModalConfig
|
|
from vllm.v1.attention.backends.registry import AttentionBackendEnum
|
|
|
|
|
|
def test_mm_encoder_attn_backend_str_conversion():
|
|
config = MultiModalConfig(mm_encoder_attn_backend="FLASH_ATTN")
|
|
assert config.mm_encoder_attn_backend == AttentionBackendEnum.FLASH_ATTN
|
|
|
|
|
|
def test_mm_encoder_attn_backend_invalid():
|
|
with pytest.raises(ValueError):
|
|
MultiModalConfig(mm_encoder_attn_backend="not_a_backend")
|
|
|
|
|
|
def test_mm_encoder_attn_backend_hash_updates():
|
|
base_hash = MultiModalConfig().compute_hash()
|
|
overridden_hash = MultiModalConfig(
|
|
mm_encoder_attn_backend=AttentionBackendEnum.FLASH_ATTN
|
|
).compute_hash()
|
|
assert base_hash != overridden_hash
|
|
|
|
|
|
def test_language_model_only_does_not_affect_mm_hash():
|
|
"""language_model_only does not affect the ViT computation graph,
|
|
so it should not change the multimodal config hash."""
|
|
base_hash = MultiModalConfig().compute_hash()
|
|
lm_only_hash = MultiModalConfig(language_model_only=True).compute_hash()
|
|
assert base_hash == lm_only_hash
|
|
|
|
|
|
def test_language_model_only_affects_model_hash():
|
|
"""language_model_only affects the LM computation graph,
|
|
so it should change the model config hash."""
|
|
model = "llava-hf/llava-1.5-7b-hf"
|
|
base_hash = ModelConfig(model).compute_hash()
|
|
lm_only_hash = ModelConfig(model, language_model_only=True).compute_hash()
|
|
assert base_hash != lm_only_hash
|