Tiktoken 与 Transformers 的交互
在🤗 transformers中加载模型时,支持tiktoken模型文件的无缝集成
from_pretrained
与Hub上的tokenizer.model
tiktoken文件一起使用,该文件会自动转换为我们的
快速分词器。
已知的与 tiktoken.model 一起发布的模型:
- gpt2
- llama3
示例用法
为了在transformers
中加载tiktoken
文件,请确保tokenizer.model
文件是一个tiktoken文件,并且在加载from_pretrained
时会自动加载。以下是如何加载一个分词器和一个模型的方法,它们可以从完全相同的文件中加载:
from transformers import AutoTokenizer
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id, subfolder="original")
创建 tiktoken 分词器
tokenizer.model
文件不包含有关额外标记或模式字符串的信息。如果这些信息很重要,请将分词器转换为 tokenizer.json
,这是适用于 PreTrainedTokenizerFast 的适当格式。
使用tiktoken.get_encoding生成tokenizer.model
文件,然后使用convert_tiktoken_to_fast
将其转换为tokenizer.json
。
from transformers.integrations.tiktoken import convert_tiktoken_to_fast
from tiktoken import get_encoding
# You can load your custom encoding or the one provided by OpenAI
encoding = get_encoding("gpt2")
convert_tiktoken_to_fast(encoding, "config/save/dir")
生成的 tokenizer.json
文件被保存到指定目录,并且可以使用 PreTrainedTokenizerFast 加载。
tokenizer = PreTrainedTokenizerFast.from_pretrained("config/save/dir")