test_registry.py 1.63 KB
Newer Older
1
2
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4
from pathlib import Path

5
from vllm.tokenizers import TokenizerLike, TokenizerRegistry, get_tokenizer
6
7
8
9


class TestTokenizer(TokenizerLike):
    @classmethod
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    def from_pretrained(
        cls,
        path_or_repo_id: str | Path,
        *args,
        trust_remote_code: bool = False,
        revision: str | None = None,
        download_dir: str | None = None,
        **kwargs,
    ) -> "TestTokenizer":
        return TestTokenizer(path_or_repo_id)  # type: ignore

    def __init__(self, path_or_repo_id: str | Path) -> None:
        super().__init__()

        self.path_or_repo_id = path_or_repo_id
25
26
27
28
29
30
31
32
33

    @property
    def bos_token_id(self) -> int:
        return 0

    @property
    def eos_token_id(self) -> int:
        return 1

34
35
36
37
38
39
40
41
    @property
    def pad_token_id(self) -> int:
        return 2

    @property
    def is_fast(self) -> bool:
        return True

42
43

def test_customized_tokenizer():
44
    TokenizerRegistry.register("test_tokenizer", __name__, TestTokenizer.__name__)
45

46
    tokenizer = TokenizerRegistry.get_tokenizer("test_tokenizer", "abc")
47
    assert isinstance(tokenizer, TestTokenizer)
48
    assert tokenizer.path_or_repo_id == "abc"
49
50
    assert tokenizer.bos_token_id == 0
    assert tokenizer.eos_token_id == 1
51
    assert tokenizer.pad_token_id == 2
52

53
    tokenizer = get_tokenizer("abc", tokenizer_mode="test_tokenizer")
54
    assert isinstance(tokenizer, TestTokenizer)
55
    assert tokenizer.path_or_repo_id == "abc"
56
57
    assert tokenizer.bos_token_id == 0
    assert tokenizer.eos_token_id == 1
58
    assert tokenizer.pad_token_id == 2