使用 🤗 Tokenizers 中的分词器¶
PreTrainedTokenizerFast 依赖于 🤗 Tokenizers 库。从 🤗 Tokenizers 库中获取的分词器可以非常简单地加载到 🤗 Transformers 中。
在详细介绍之前,我们先通过几行代码创建一个简单的分词器:
In [ ]:
from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.trainers import BpeTrainer
from tokenizers.pre_tokenizers import Whitespace
# 创建一个 BPE 分词器,并指定未知令牌 (unk_token) 为 "[UNK]"
tokenizer = Tokenizer(BPE(unk_token="[UNK]"))
# 创建一个 BPE 训练器,并定义特殊令牌
trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])
# 设置预分词器为空白分词器
tokenizer.pre_tokenizer = Whitespace()
# 定义要训练的文件列表
files = [...]
# 使用训练器训练分词器
tokenizer.train(files, trainer)
现在我们已经训练了一个分词器,可以在当前运行时继续使用它,或者将其保存为 JSON 文件以供将来重用。
直接从分词器对象加载¶
让我们看看如何在 🤗 Transformers 库中利用这个分词器对象。PreTrainedTokenizerFast 类允许通过传递已实例化的分词器对象来轻松实例化:
In [ ]:
from transformers import PreTrainedTokenizerFast
# 将分词器对象传递给 PreTrainedTokenizerFast
fast_tokenizer = PreTrainedTokenizerFast(tokenizer_object=tokenizer)
In [ ]:
# 将分词器保存为 JSON 文件
tokenizer.save("tokenizer.json")
保存文件的路径可以传递给 PreTrainedTokenizerFast 初始化方法,使用 tokenizer_file 参数:
In [ ]:
from transformers import PreTrainedTokenizerFast
# 从 JSON 文件加载分词器
fast_tokenizer = PreTrainedTokenizerFast(tokenizer_file="tokenizer.json")
现在,这个对象可以使用 🤗 Transformers 分词器共享的所有方法!更多详细信息请参阅 分词器页面。