Transformers 文档

Tiktoken 与 Transformers 的交互

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")
< > Update on GitHub