MCPcopy Create free account
hub / github.com/Alpha-VLLM/LLaMA2-Accessory / __init__

Method __init__

accessory/model/tokenizer.py:16–50  ·  view source on GitHub ↗

Create a tokenizer, with inner implementation either spm or HF transformers tokenzier :param model_path: - when using spm tokenizer, should be path to a sentencepiece model with suffix `.model` - when using huggingface transformers tokenizer, should be an HF

(self, model_path: str)

Source from the content-addressed store, hash-verified

14
15class Tokenizer:
16 def __init__(self, model_path: str):
17 """
18 Create a tokenizer, with inner implementation either spm or HF transformers tokenzier
19 :param model_path:
20 - when using spm tokenizer, should be path to a sentencepiece model with suffix `.model`
21 - when using huggingface transformers tokenizer, should be an HF model repo or a local directory,
22 containing tokenizer.json and tokenizer_config.json.
23 """
24 if model_path.endswith(".model"): # spm tokenizer
25 self.tokenizer_type = "spm"
26 # reload tokenizer
27 assert os.path.isfile(model_path), model_path
28 self.tokenizer = SentencePieceProcessor(model_file=model_path)
29 logger.info(f"Reloaded SentencePiece model from {model_path}")
30
31 # BOS / EOS token IDs
32 self.bos_id: int = self.tokenizer.bos_id()
33 self.eos_id: int = self.tokenizer.eos_id()
34 assert self.tokenizer.vocab_size() == self.tokenizer.get_piece_size()
35 else:
36 self.tokenizer_type = "transformers"
37 self.tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
38 logger.info(f"load HF transformers tokenizer from {model_path}")
39 # BOS / EOS token IDs
40 self.bos_id: int = self.tokenizer.bos_token_id
41 if self.bos_id is None:
42 self.bos_id = self.tokenizer.eos_token_id
43 self.eos_id: int = self.tokenizer.eos_token_id
44 assert self.eos_id is not None
45
46 self._probe_tokenizer_style()
47
48 logger.info(
49 f"#words: {self.n_words} - BOS ID: {self.bos_id} - EOS ID: {self.eos_id}"
50 )
51
52 def encode(self, s: str, bos: bool, eos: bool) -> List[int]:
53 assert type(s) is str

Callers

nothing calls this directly

Calls 3

infoMethod · 0.80
from_pretrainedMethod · 0.80

Tested by

no test coverage detected