Apex / tokenizer.py
yadavkapil7155's picture
Upload folder using huggingface_hub
1e4fb05 verified
Raw
History Blame Contribute Delete
823 Bytes
"""
Tokenizer wrapper around GPT-2 tiktoken BPE
"""
import tiktoken
from typing import List, Union
class Tokenizer:
def __init__(self, model_name: str = "gpt2"):
self.enc = tiktoken.get_encoding(model_name)
self.vocab_size = self.enc.n_vocab # 50,257
self.eot_token = self.enc.eot_token # 50,256 (<|endoftext|>)
def encode(self, text: str) -> List[int]:
"""Encodes string to list of token IDs."""
return self.enc.encode_ordinary(text)
def decode(self, tokens: Union[List[int], List[List[int]]]) -> str:
"""Decodes list of token IDs to text string."""
if isinstance(tokens, list) and len(tokens) > 0 and isinstance(tokens[0], list):
tokens = tokens[0]
return self.enc.decode(tokens)
def get_tokenizer():
return Tokenizer()