mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2025-12-10 00:25:01 +08:00
104 lines
4.4 KiB
Python
104 lines
4.4 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
import pytest
|
|
|
|
from tests.models.language.pooling.embed_utils import (
|
|
correctness_test_embed_models)
|
|
from tests.models.utils import (CLSPoolingEmbedModelInfo,
|
|
CLSPoolingRerankModelInfo, EmbedModelInfo,
|
|
LASTPoolingEmbedModelInfo, RerankModelInfo)
|
|
|
|
from .mteb_utils import mteb_test_embed_models, mteb_test_rerank_models
|
|
|
|
MODELS = [
|
|
########## BertModel
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-base-en",
|
|
architecture="BertModel",
|
|
mteb_score=0.779336792,
|
|
enable_test=True),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-base-zh",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-small-en",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-small-zh",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-large-en",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-large-zh",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-large-zh-noinstruct",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-base-en-v1.5",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-base-zh-v1.5",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-small-en-v1.5",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-small-zh-v1.5",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-large-en-v1.5",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-large-zh-v1.5",
|
|
architecture="BertModel",
|
|
enable_test=False),
|
|
########## XLMRobertaModel
|
|
CLSPoolingEmbedModelInfo("BAAI/bge-m3",
|
|
architecture="XLMRobertaModel",
|
|
mteb_score=0.787343078,
|
|
enable_test=True),
|
|
########## Qwen2Model
|
|
LASTPoolingEmbedModelInfo("BAAI/bge-code-v1",
|
|
architecture="Qwen2Model",
|
|
mteb_score=0.75724465,
|
|
dtype="float32",
|
|
enable_test=True),
|
|
]
|
|
|
|
RERANK_MODELS = [
|
|
########## XLMRobertaForSequenceClassification
|
|
CLSPoolingRerankModelInfo(
|
|
"BAAI/bge-reranker-base",
|
|
architecture="XLMRobertaForSequenceClassification",
|
|
mteb_score=0.32398,
|
|
enable_test=True),
|
|
CLSPoolingRerankModelInfo(
|
|
"BAAI/bge-reranker-large",
|
|
architecture="XLMRobertaForSequenceClassification",
|
|
enable_test=False),
|
|
CLSPoolingRerankModelInfo(
|
|
"BAAI/bge-reranker-v2-m3",
|
|
architecture="XLMRobertaForSequenceClassification",
|
|
enable_test=False)
|
|
]
|
|
|
|
|
|
@pytest.mark.parametrize("model_info", MODELS)
|
|
def test_embed_models_mteb(hf_runner, vllm_runner,
|
|
model_info: EmbedModelInfo) -> None:
|
|
mteb_test_embed_models(hf_runner, vllm_runner, model_info)
|
|
|
|
|
|
@pytest.mark.parametrize("model_info", MODELS)
|
|
def test_embed_models_correctness(hf_runner, vllm_runner,
|
|
model_info: EmbedModelInfo,
|
|
example_prompts) -> None:
|
|
correctness_test_embed_models(hf_runner, vllm_runner, model_info,
|
|
example_prompts)
|
|
|
|
|
|
@pytest.mark.parametrize("model_info", RERANK_MODELS)
|
|
def test_rerank_models_mteb(hf_runner, vllm_runner,
|
|
model_info: RerankModelInfo) -> None:
|
|
mteb_test_rerank_models(hf_runner, vllm_runner, model_info)
|