使用 🤗 Tokenizers 中的 Tokenizer
PreTrainedTokenizerFast 依赖于 🤗 Tokenizers 库。从 🤗 Tokenizers 库中获取的 Tokenizer 可以非常简单地加载到 🤗 Transformers 中。
在深入了解细节之前,让我们先用几行代码创建一个虚拟的 Tokenizer。
>>> from tokenizers import Tokenizer
>>> from tokenizers.models import BPE
>>> from tokenizers.trainers import BpeTrainer
>>> from tokenizers.pre_tokenizers import Whitespace
>>> tokenizer = Tokenizer(BPE(unk_token="[UNK]"))
>>> trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])
>>> tokenizer.pre_tokenizer = Whitespace()
>>> files = [...]
>>> tokenizer.train(files, trainer)
现在我们有一个根据我们定义的文件训练的 Tokenizer。我们可以继续在这个运行时中使用它,也可以将其保存到 JSON 文件中以备将来使用。
直接从 Tokenizer 对象加载
让我们看看如何在 🤗 Transformers 库中使用这个 Tokenizer 对象。 PreTrainedTokenizerFast 类允许通过接受实例化的 tokenizer 对象作为参数来轻松实例化。
>>> from transformers import PreTrainedTokenizerFast
>>> fast_tokenizer = PreTrainedTokenizerFast(tokenizer_object=tokenizer)
这个对象现在可以与 🤗 Transformers Tokenizer 共享的所有方法一起使用!前往 Tokenizer 页面 获取更多信息。
从 JSON 文件加载
为了从 JSON 文件加载 Tokenizer,让我们先保存 Tokenizer。
>>> tokenizer.save("tokenizer.json")
我们可以使用 tokenizer_file
参数将保存此文件的路径传递给 PreTrainedTokenizerFast 初始化方法。
>>> from transformers import PreTrainedTokenizerFast
>>> fast_tokenizer = PreTrainedTokenizerFast(tokenizer_file="tokenizer.json")
这个对象现在可以与 🤗 Transformers Tokenizer 共享的所有方法一起使用!前往 Tokenizer 页面 获取更多信息。
< > 在 GitHub 上更新