![見出し画像](https://assets.st-note.com/production/uploads/images/44321111/rectangle_large_type_2_d71ec9a21ffd20ec35ad41223cfbc9fe.png?width=800)
Huggingface Tokenizers 入門 (1) - 事始め
「Huggingface Tokenizers」の使い方をまとめました。
・Huggingface Transformers 4.1.1
・Huggingface Tokenizers 0.10.0
1. Huggingface Tokenizers
「Huggingface Tokenizers」は、パフォーマンスと汎用性に重点を置いた、現在よく使われているトークナイザーの実装を提供します。
特徴は、次のとおりです。
・現在よく使われているトークナイザーを使用して、新しい語彙を学習し、トークン化を行う。
・使いやすく、高速で、幅広い用途で使用。
・研究用および製品用に設計されている。
・正規化には、アライメントの追跡が付属している(特定のトークンに対応する元テキストの取得が可能)。
・前処理(Truncate、Pad、Special Token)の実行。
次の言語へのバインディングを提供します。
・Rust(元実装)
・Python
・Node.js
2. Huggingface Tokenizersの使い方
「Byte-Pair Encoding」「WordPiece」「Unigram」からモデルを選択し、トークナイザーをインスタンス化します。
from tokenizers import Tokenizer
from tokenizers.models import BPE
tokenizer = Tokenizer(BPE())
pre_tokenizerで事前トークン化の実行方法をカスタマイズできます。
from tokenizers.pre_tokenizers import Whitespace
tokenizer.pre_tokenizer = Whitespace()
トークナイザーを学習するコードは、次のとおりです。
from tokenizers.trainers import BpeTrainer
trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])
tokenizer.train(trainer, ["wiki.train.raw", "wiki.valid.raw", "wiki.test.raw"])
トークナイザーの学習が完了したら、以下のコードでエンコードできます。
output = tokenizer.encode("Hello, y'all! How are you 😁 ?")
print(output.tokens)
["Hello", ",", "y", "'", "all", "!", "How", "are", "you", "[UNK]", "?"]
詳しくは、PythonのドキュメントまたはPythonのクイックツアーを参照してください。
次回
この記事が気に入ったらサポートをしてみませんか?