トップダウン方式のサブワード分割アルゴリズム。大きな初期語彙から出発し、各サブワードの除去がコーパス全体の尤度に与える影響を評価しながら語彙を段階的に削減する。SentencePieceのデフォルトアルゴリズムで、T5・mT5・XLNet・ALBERTなどで採用。
Unigramトークナイザー(Unigram Language Model Tokenizer)は、2018年に工藤拓氏が提案したサブワード分割アルゴリズムで、SentencePieceライブラリのデフォルトアルゴリズムとして実装されている。BPEやWordPieceがボトムアップ(小→大)で語彙を構築するのに対し、Unigramはトップダウン(大→小)のアプローチを取る点が根本的に異なる。
Unigramの語彙構築は以下のプロセスで進行する。
| ステップ | 処理内容 | 語彙サイズの変化 |
|---|---|---|
| 1. 初期化 | 大きな初期語彙を生成(全サブストリング等) | 数百万〜数千万 |
| 2. EMアルゴリズム | 各サブワードの出現確率を最尤推定 | 変化なし |
| 3. 損失計算 | 各サブワードを除去した場合のコーパス尤度低下量を計算 | 変化なし |
| 4. プルーニング | 尤度低下が最小のサブワードを一定割合(例: 20%)除去 | 80%に削減 |
| 5. 反復 | 目標語彙サイズに達するまで2-4を繰り返す | 32,000等 |
このトップダウンプロセスにより、コーパス全体の表現力を最大限に保ちながら語彙を圧縮できる。
Unigramの最大の特徴は、1つのテキストに対して複数の分割候補を確率的に生成できることである。
例えば「tokenization」というテキストに対して以下のような複数の分割が存在する。
| 分割パターン | 確率 | トークン数 |
|---|---|---|
| ["token", "ization"] | 0.45 | 2 |
| ["token", "iz", "ation"] | 0.30 | 3 |
| ["to", "ken", "ization"] | 0.15 | 3 |
| ["tokenization"] | 0.10 | 1 |
BPEは決定論的に1つの分割のみを出力するが、Unigramは全ての有効な分割とその確率を計算できる。推論時は通常、最大確率の分割(Viterbiアルゴリズム)を選択するが、学習時にはサンプリングによる正則化効果を活用できる。
Unigramの確率的分割を活用した正則化手法がSubword Regularizationである。
BPEではBPE-dropoutという類似手法が後に提案されたが、Unigramの方が理論的に自然な確率分布からサンプリングできる利点がある。
| 比較項目 | BPE | Unigram |
|---|---|---|
| 構築方向 | ボトムアップ(マージ) | トップダウン(プルーニング) |
| 分割の決定性 | 決定論的(1通り) | 確率的(複数候補) |
| 最適化目標 | 頻度ベース(局所最適) | 尤度ベース(大域最適) |
| 計算コスト | 低い | 高い(EM反復) |
| Subword正則化 | BPE-dropout(近似) | ネイティブ対応 |
| 未知語処理 | バイトフォールバック | バイトフォールバック |
| 実装 | tiktoken/sentencepiece | sentencepiece |
理論的にはUnigramの方がコーパス全体に対して最適な語彙を見つけやすいが、実用上の精度差はモデル全体の学習で吸収される。
| モデル | 語彙サイズ | 備考 |
|---|---|---|
| T5 (Text-to-Text Transfer Transformer) | 32,000 | Unigramの代表的採用例 |
| mT5 (multilingual T5) | 250,000 | 101言語対応の大語彙 |
| XLNet | 32,000 | Transformer-XLベース |
| ALBERT | 30,000 | パラメーター共有で軽量化 |
| PaLM / PaLM 2 | 256,000 | Google最大級のLLM |
| Flan-T5 | 32,000 | T5の命令チューニング版 |
Unigramモデルの学習には以下の実装上の考慮が必要である。
主な理由は2つあります。(1)歴史的経緯:GPT-1がBPEを採用し、その後のバージョンでも語彙互換性のために継続された。(2)推論速度:BPEのマージテーブルルックアップはUnigramのViterbiデコードより高速で、大量テキスト処理に有利です。Unigramの理論的優位性は、モデルスケールの増大で実用上は無視できるレベルになっています。
学術研究では有効性が認められていますが、大規模LLMの事前学習ではほとんど使われていません。理由は、数兆トークン規模の学習データでは、Subword Regularizationによる正則化効果がデータ量自体による正則化効果に対して相対的に小さくなるためです。小〜中規模モデルや低リソース言語のファインチューニングでは依然として有効です。
技術的には不可能です。各トークナイザーは独自の語彙とID体系を持つため、あるモデルのトークナイザーで生成したトークン列を別のモデルに入力すると意味のない結果になります。モデルの切り替え時は必ず対応するトークナイザーを使用し、テキストレベルでの変換を行う必要があります。