トークナイザ

トークナイザ

執筆済 AILLM

テキストをトークン列に変換する仕組み。

BPE(Byte Pair Encoding)#

最も広く使われる方式。

  1. 全文字を初期語彙とする
  2. 最も頻出する隣接ペアを新しいトークンとして統合する
  3. 語彙サイズに達するまで繰り返す

頻出する語はそのまま 1 トークンに、 珍しい語は部分列に分解される。 データ駆動で語彙が決まるのが要点。

元は 1994 年のデータ圧縮アルゴリズムで、 Sennrich らが機械翻訳に転用した。

主な方式#

方式 使用例
BPE GPT 系
WordPiece BERT
Unigram SentencePiece の既定
SentencePiece 空白を特別扱いしない。日本語に適する

バイトレベル BPE#

Unicode 文字ではなくバイト列に BPE を適用する。

  • どんな文字列も表現できる(未知語が原理的に存在しない)
  • 絵文字、多言語、バイナリも扱える

代わりに、日本語のようなマルチバイト文字は 1 文字が複数バイトなのでトークン効率が悪くなる

語彙サイズのトレードオフ#

大きい語彙 小さい語彙
系列が短い(速い) 系列が長い
埋め込み行列が大きい 埋め込みが小さい
珍しい語の学習が難しい 部分列で汎化しやすい

近年は 10 万〜20 万程度が多い。

参考文献#

ノート一覧を閉じる