見出し画像

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のクイックツアーを参照してください。

次回



この記事が気に入ったらサポートをしてみませんか?