A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 14, 05:30 UTC
[CI] Split pooling from entrypoints Test (#24632)
Signed-off-by: wang.yuqi <noooop@126.com>
wang.yuqi committed
Sep 11, 2025 at 16:53 UTC
a8b0361c9229c2584eea0a035e650e55e2d52f4e
21 files changed
+32
-30
.buildkite/test-pipeline.yaml
+14
-1
@@ -113,7 +113,7 @@ steps:
113
- tests/entrypoints/
114
commands:
115
- pytest -v -s entrypoints/openai/tool_parsers
116
- - pytest -v -s entrypoints/ --ignore=entrypoints/llm --ignore=entrypoints/openai --ignore=entrypoints/offline_mode --ignore=entrypoints/test_chat_utils.py
116
+ - pytest -v -s entrypoints/ --ignore=entrypoints/llm --ignore=entrypoints/openai --ignore=entrypoints/offline_mode --ignore=entrypoints/test_chat_utils.py --ignore=entrypoints/pooling
117
118
- label: Entrypoints Integration Test (LLM) # 30min
119
timeout_in_minutes: 40
@@ -148,6 +148,19 @@ steps:
148
- pytest -v -s entrypoints/openai --ignore=entrypoints/openai/test_chat_with_tool_reasoning.py --ignore=entrypoints/openai/test_oot_registration.py --ignore=entrypoints/openai/test_tensorizer_entrypoint.py --ignore=entrypoints/openai/correctness/ --ignore=entrypoints/openai/test_collective_rpc.py --ignore=entrypoints/openai/tool_parsers/
149
- pytest -v -s entrypoints/test_chat_utils.py
150
151
+- label: Entrypoints Integration Test (Pooling)
152
+ timeout_in_minutes: 50
153
+ mirror_hardwares: [amdexperimental]
154
+ working_dir: "/vllm-workspace/tests"
155
+ fast_check: true
156
+ torch_nightly: true
157
+ source_file_dependencies:
158
+ - vllm/
159
+ - tests/entrypoints/pooling
160
+ commands:
161
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
162
+ - pytest -v -s entrypoints/pooling
163
+
164
- label: Distributed Tests (4 GPUs) # 35min
165
timeout_in_minutes: 50
166
mirror_hardwares: [amdexperimental]
tests/entrypoints/pooling/__init__.py
tests/entrypoints/pooling/correctness/__init__.py
tests/entrypoints/pooling/correctness/test_mteb_embed.py
renamed
tests/entrypoints/pooling/correctness/test_mteb_score.py
renamed
tests/entrypoints/pooling/llm/__init__.py
tests/entrypoints/pooling/llm/test_classify.py
renamed
+1
-2
@@ -6,11 +6,10 @@ import weakref
6
import pytest
7
import torch
8
9
+from tests.models.utils import softmax
10
from vllm import LLM, PoolingParams
11
from vllm.distributed import cleanup_dist_env_and_memory
12
12
-from ...models.utils import softmax
13
-
13
MODEL_NAME = "jason9693/Qwen2.5-1.5B-apeach"
14
15
prompts = ["The chef prepared a delicious meal."]
tests/entrypoints/pooling/llm/test_embedding.py
renamed
tests/entrypoints/pooling/llm/test_encode.py
renamed
tests/entrypoints/pooling/llm/test_reward.py
renamed
+1
-2
@@ -6,11 +6,10 @@ import weakref
6
import pytest
7
import torch
8
9
+from tests.models.utils import softmax
10
from vllm import LLM, PoolingParams
11
from vllm.distributed import cleanup_dist_env_and_memory
12
12
-from ...models.utils import softmax
13
-
13
MODEL_NAME = "internlm/internlm2-1_8b-reward"
14
15
prompts = ["The chef prepared a delicious meal."]
tests/entrypoints/pooling/llm/test_score.py
renamed
+1
-2
@@ -6,11 +6,10 @@ import weakref
6
import pytest
7
import torch
8
9
+from tests.models.utils import softmax
10
from vllm import LLM, PoolingParams
11
from vllm.distributed import cleanup_dist_env_and_memory
12
12
-from ...models.utils import softmax
13
-
13
MODEL_NAME = "tomaarsen/Qwen3-Reranker-0.6B-seq-cls"
14
15
tests/entrypoints/pooling/openai/__init__.py
tests/entrypoints/pooling/openai/test_classification.py
renamed
+1
-2
@@ -6,10 +6,9 @@ import requests
6
import torch
7
import torch.nn.functional as F
8
9
+from tests.utils import RemoteOpenAIServer
10
from vllm.entrypoints.openai.protocol import ClassificationResponse
11
11
-from ...utils import RemoteOpenAIServer
12
-
12
MODEL_NAME = "jason9693/Qwen2.5-1.5B-apeach"
13
DTYPE = "float32" # Use float32 to avoid NaN issue
14
tests/entrypoints/pooling/openai/test_embedding.py
renamed
+4
-5
@@ -11,14 +11,13 @@ import requests
11
import torch
12
import torch.nn.functional as F
13
14
+from tests.models.language.pooling.embed_utils import (
15
+ run_embedding_correctness_test)
16
+from tests.models.utils import check_embeddings_close
17
+from tests.utils import RemoteOpenAIServer
18
from vllm.entrypoints.openai.protocol import EmbeddingResponse
19
from vllm.transformers_utils.tokenizer import get_tokenizer
20
17
-from ...models.language.pooling.embed_utils import (
18
- run_embedding_correctness_test)
19
-from ...models.utils import check_embeddings_close
20
-from ...utils import RemoteOpenAIServer
21
-
21
MODEL_NAME = "intfloat/multilingual-e5-small"
22
DUMMY_CHAT_TEMPLATE = """{% for message in messages %}{{message['role'] + ': ' + message['content'] + '\\n'}}{% endfor %}""" # noqa: E501
23
DTYPE = "bfloat16"
tests/entrypoints/pooling/openai/test_embedding_dimensions.py
renamed
+5
-6
@@ -9,13 +9,12 @@ from typing import Optional
9
import openai
10
import pytest
11
12
-from vllm.entrypoints.openai.protocol import EmbeddingResponse
13
-
14
-from ...conftest import HfRunner
15
-from ...models.language.pooling.embed_utils import (
12
+from tests.conftest import HfRunner
13
+from tests.models.language.pooling.embed_utils import (
14
run_embedding_correctness_test)
17
-from ...models.utils import EmbedModelInfo
18
-from ...utils import RemoteOpenAIServer
15
+from tests.models.utils import EmbedModelInfo
16
+from tests.utils import RemoteOpenAIServer
17
+from vllm.entrypoints.openai.protocol import EmbeddingResponse
18
19
MODELS = [
20
EmbedModelInfo("intfloat/multilingual-e5-small", is_matryoshka=False),
tests/entrypoints/pooling/openai/test_embedding_long_text.py
renamed
+1
-2
@@ -14,10 +14,9 @@ import openai
14
import pytest
15
import pytest_asyncio
16
17
+from tests.utils import RemoteOpenAIServer
18
from vllm.entrypoints.openai.protocol import EmbeddingResponse
19
19
-from ...utils import RemoteOpenAIServer
20
-
20
21
def _generate_random_text(word_count: int) -> str:
22
"""Generate random text with approximately the specified word count."""
tests/entrypoints/pooling/openai/test_pooling.py
renamed
+1
-2
@@ -8,11 +8,10 @@ import pytest
8
import requests
9
10
from tests.models.utils import check_embeddings_close
11
+from tests.utils import RemoteOpenAIServer
12
from vllm.entrypoints.openai.protocol import PoolingResponse
13
from vllm.transformers_utils.tokenizer import get_tokenizer
14
14
-from ...utils import RemoteOpenAIServer
15
-
15
MODEL_NAME = "internlm/internlm2-1_8b-reward"
16
DUMMY_CHAT_TEMPLATE = """{% for message in messages %}{{message['role'] + ': ' + message['content'] + '\\n'}}{% endfor %}""" # noqa: E501
17
tests/entrypoints/pooling/openai/test_rerank.py
renamed
+1
-2
@@ -6,10 +6,9 @@ import requests
6
import torch
7
import torch.nn.functional as F
8
9
+from tests.utils import RemoteOpenAIServer
10
from vllm.entrypoints.openai.protocol import RerankResponse
11
11
-from ...utils import RemoteOpenAIServer
12
-
12
MODEL_NAME = "BAAI/bge-reranker-base"
13
DTYPE = "bfloat16"
14
tests/entrypoints/pooling/openai/test_score.py
renamed
+1
-2
@@ -8,10 +8,9 @@ import torch
8
import torch.nn.functional as F
9
from torch import tensor
10
11
+from tests.utils import RemoteOpenAIServer
12
from vllm.entrypoints.openai.protocol import ScoreResponse
13
13
-from ...utils import RemoteOpenAIServer
14
-
14
MODELS = [
15
{
16
"name": "BAAI/bge-reranker-v2-m3",
tests/entrypoints/pooling/openai/test_truncation.py
renamed
tests/entrypoints/pooling/openai/test_vision_embedding.py
renamed
+1
-2
@@ -7,11 +7,10 @@ import pytest
7
import requests
8
from transformers import AutoProcessor
9
10
+from tests.utils import VLLM_PATH, RemoteOpenAIServer
11
from vllm.entrypoints.openai.protocol import EmbeddingResponse
12
from vllm.multimodal.utils import encode_image_base64, fetch_image
13
13
-from ...utils import VLLM_PATH, RemoteOpenAIServer
14
-
14
MODEL_NAME = "TIGER-Lab/VLM2Vec-Full"
15
MAXIMUM_IMAGES = 2
16