Skip to content

Commit 0db05b1

Browse files
committed
[Renderer] Introduce Renderer
Signed-off-by: DarkLight1337 <[email protected]>
1 parent 27f4c2f commit 0db05b1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1264
-852
lines changed

benchmarks/backend_request_func.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ def get_tokenizer(
620620
kwargs["use_fast"] = False
621621
if tokenizer_mode == "mistral":
622622
try:
623-
from vllm.tokenizers import MistralTokenizer
623+
from vllm.tokenizers.mistral import MistralTokenizer
624624
except ImportError as e:
625625
raise ImportError(
626626
"MistralTokenizer requires vllm package.\n"

tests/entrypoints/openai/test_chat_template.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33

44
import pytest
55

6-
from vllm.entrypoints.chat_utils import apply_hf_chat_template, load_chat_template
6+
from vllm.entrypoints.chat_utils import load_chat_template
77
from vllm.entrypoints.openai.protocol import ChatCompletionRequest
8+
from vllm.renderers.hf import safe_apply_chat_template
89
from vllm.tokenizers import get_tokenizer
910

1011
from ...models.registry import HF_EXAMPLE_MODELS
@@ -125,14 +126,15 @@ def test_get_gen_prompt(
125126
)
126127

127128
# Call the function and get the result
128-
result = apply_hf_chat_template(
129-
tokenizer=tokenizer,
130-
conversation=mock_request.messages,
131-
chat_template=mock_request.chat_template or template_content,
132-
renderer_config=renderer_config,
129+
result = safe_apply_chat_template(
130+
renderer_config,
131+
tokenizer,
132+
mock_request.messages,
133133
tools=None,
134+
chat_template=mock_request.chat_template or template_content,
134135
add_generation_prompt=mock_request.add_generation_prompt,
135136
continue_final_message=mock_request.continue_final_message,
137+
tokenize=False,
136138
)
137139

138140
# Test assertion

tests/entrypoints/openai/test_serving_engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from vllm.config import ModelConfig, RendererConfig
1111
from vllm.entrypoints.openai.serving_engine import OpenAIServing
1212
from vllm.entrypoints.openai.serving_models import OpenAIServingModels
13-
from vllm.tokenizers import MistralTokenizer
13+
from vllm.tokenizers.mistral import MistralTokenizer
1414

1515

1616
@pytest.fixture()

tests/entrypoints/test_chat_utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
encode_image_base64,
3030
encode_video_base64,
3131
)
32-
from vllm.tokenizers import MistralTokenizer, get_tokenizer
32+
from vllm.tokenizers import get_tokenizer
33+
from vllm.tokenizers.mistral import MistralTokenizer
3334
from vllm.utils.serial_utils import tensor2base64
3435

3536
from ..models.registry import HF_EXAMPLE_MODELS

tests/models/language/generation/test_mistral.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
MistralToolParser,
1111
)
1212
from vllm.sampling_params import SamplingParams
13-
from vllm.tokenizers import MistralTokenizer
13+
from vllm.tokenizers.mistral import MistralTokenizer
1414

1515
from ...utils import check_logprobs_close
1616

tests/models/multimodal/generation/test_voxtral.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from mistral_common.protocol.instruct.chunk import AudioChunk, RawAudio, TextChunk
1010
from mistral_common.protocol.instruct.messages import UserMessage
1111

12-
from vllm.tokenizers import MistralTokenizer
12+
from vllm.tokenizers.mistral import MistralTokenizer
1313

1414
from ....conftest import AudioTestAssets
1515
from ....utils import RemoteOpenAIServer

tests/models/multimodal/processing/test_common.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@
2222
from vllm.multimodal.cache import MultiModalProcessorOnlyCache
2323
from vllm.multimodal.inputs import MultiModalInputs, batched_tensors_equal
2424
from vllm.multimodal.processing import BaseMultiModalProcessor, InputProcessingContext
25-
from vllm.tokenizers import (
26-
MistralTokenizer,
27-
TokenizerLike,
28-
)
25+
from vllm.tokenizers import TokenizerLike
26+
from vllm.tokenizers.mistral import MistralTokenizer
2927

3028
from ....multimodal.utils import random_audio, random_image, random_video
3129
from ...registry import (

tests/test_inputs.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from vllm.inputs import zip_enc_dec_prompts
88
from vllm.inputs.parse import parse_raw_prompts
99
from vllm.inputs.preprocess import InputPreprocessor
10-
from vllm.tokenizers import init_tokenizer_from_config
10+
from vllm.renderers import RendererRegistry
1111

1212
pytestmark = pytest.mark.cpu_test
1313

@@ -109,10 +109,11 @@ def test_zip_enc_dec_prompts(mm_processor_kwargs, expected_mm_kwargs):
109109
def test_preprocessor_always_mm_code_path(model_id, prompt):
110110
model_config = ModelConfig(model=model_id)
111111
renderer_config = RendererConfig(model_config=model_config)
112-
tokenizer = init_tokenizer_from_config(renderer_config)
113-
input_preprocessor = InputPreprocessor(renderer_config, tokenizer)
112+
renderer = RendererRegistry.get_renderer(renderer_config)
113+
input_preprocessor = InputPreprocessor(renderer_config, renderer)
114114

115115
# HF processor adds sep token
116+
tokenizer = renderer.get_tokenizer()
116117
sep_token_id = tokenizer.vocab[tokenizer.sep_token]
117118

118119
processed_inputs = input_preprocessor.preprocess(prompt)

tests/v1/engine/test_process_multi_modal_uuids.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
RendererConfig,
1414
VllmConfig,
1515
)
16+
from vllm.renderers.terratorch import TerratorchRenderer
1617
from vllm.sampling_params import SamplingParams
1718
from vllm.v1.engine import input_processor as input_processor_mod
1819
from vllm.v1.engine.input_processor import InputProcessor
@@ -59,7 +60,6 @@ def _mock_input_processor(
5960

6061
renderer_config = RendererConfig(
6162
model_config=model_config,
62-
tokenizer="dummy",
6363
skip_tokenizer_init=True,
6464
)
6565

@@ -70,7 +70,7 @@ def _mock_input_processor(
7070
device_config=DeviceConfig(device="cpu"),
7171
)
7272

73-
return InputProcessor(vllm_config, tokenizer=None)
73+
return InputProcessor(vllm_config, renderer=TerratorchRenderer(renderer_config))
7474

7575

7676
def test_multi_modal_uuids_length_mismatch_raises(monkeypatch):

vllm/engine/protocol.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from vllm.outputs import PoolingRequestOutput, RequestOutput
1212
from vllm.plugins.io_processors import IOProcessor
1313
from vllm.pooling_params import PoolingParams
14+
from vllm.renderers import RendererLike
1415
from vllm.sampling_params import SamplingParams
1516
from vllm.tasks import SupportedTask
1617
from vllm.tokenizers import TokenizerLike
@@ -27,6 +28,10 @@ class EngineClient(ABC):
2728
input_processor: InputProcessor
2829
io_processor: IOProcessor | None
2930

31+
@property
32+
@abstractmethod
33+
def renderer(self) -> RendererLike: ...
34+
3035
@property
3136
@abstractmethod
3237
def is_running(self) -> bool: ...

0 commit comments

Comments
 (0)