RoBERTa事前訓練用のtokenizerをByteLevelBPETokenizerを使わずに書き換える
code:train_tokenizer.py
tokenizer = ByteLevelBPETokenizer()
tokenizer.train(files=paths, vocab_size=52_000, min_frequency=2, special_tokens=special_tokens)
違いはjson 1ファイルを保存するだけになる]
tokenizer = ByteLevelBPETokenizer()でやっていること
tokenizer = Tokenizer(BPE())
vocab引数もmerges引数もNoneなのでこちらの分岐
BPEのunk_token引数はNone(Quicktourと違う)
tokenizer.normalizerは設定されない(Noneのまま)
unicode_normalizer引数はNone
lowercase引数はFalse
tokenizer.pre_tokenizerを設定
add_prefix_space引数はFalse
tokenizer.decoderを設定
tokenizer.post_processorを設定
trim_offsets引数はFalse
以上を設定したtokenizerにはtokenizer._tokenizerでアクセスできる
tokenizer.trainでやっていること
trainer = trainers.BpeTrainer(...)
self._tokenizer.train(files, trainer=trainer)
Post-processを追加
tokenizer.encode("The Critique of Pure Reason.")したときに、CLSとSEPが付加されなかった
vocab.jsonとmerges.txtの2ファイルはない。tokenizer.jsonからどう読み込む?