我想训练我自己的分词器,并进一步将其用于预训练模型。然而,在训练新分词器时,似乎无法选择词汇大小。因此,当我调用tokenizer.get_vocab()
时,它总是返回一个包含30000个元素的字典。我该如何改变这一点?这是我做的操作:
from tokenizers import Tokenizerfrom tokenizers.models import BPEtokenizer = Tokenizer(BPE(unk_token="[UNK]"))from tokenizers.trainers import BpeTrainertrainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])from tokenizers.pre_tokenizers import Whitespacetokenizer.pre_tokenizer = Whitespace()tokenizer.train(['transcripts.raw'], trainer) # 这里出于某种原因没有额外的参数
回答:
你可以使用BpeTrainer
的vocab_size
参数,它默认设置为30000:
trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"], vocab_size=10)
更多信息,请查看文档。