解説
さらに詳しく解説
トークナイザーとは
トークナイザー(Tokenizer)は、テキストをLLMが処理できる最小単位(トークン)に分割するプログラムです。AIがテキストを理解・生成するための最初のステップを担います。
仕組み
トークンとは
トークンは、テキストを分割した最小単位です。英語では単語や単語の一部、日本語では1〜3文字程度が1トークンになることが多いです。LLMはこのトークンに一意のID(数字)を割り当て、ベクトル計算を行います。
分割の粒度
- Word(単語単位): 英語など空白区切りの言語に適合
- Char(文字単位): 各文字を1トークンとする方式。語彙は少ないが学習が困難
- Subword(サブワード単位): 頻出語はそのまま、稀少語は分割する方式。現在の主流
主なアルゴリズム
BPE(Byte-Pair Encoding)
最も頻出するサブワードペアを順次マージしていく手法です。GPTシリーズなど多くのLLMで採用されています。
SentencePiece
Googleが開発したオープンソースのトークナイザーで、生のテキストから直接分割方法を学習します。言語に依存しない設計が特徴です。
WordPiece
BERTなどで使用される手法で、BPEに類似していますが、尤度に基づいてマージを行います。
日本語における課題
多くのLLMは英語データで訓練されているため、日本語のトークン化効率が低くなりがちです。例えば「大規模言語モデル」が1文字ずつ分割されると8トークンになりますが、日本語対応のトークナイザーでは2〜3トークンで済みます。これは処理速度やコストに直接影響します。
[コンテキストウィンドウ](/glossary/context-window)との関係
LLMが一度に処理できるトークン数には上限があるため、効率的なトークナイザーの設計はモデルの実用性を大きく左右します。
