Unigramモデル(ユニグラムモデル)
Unigramモデルとは、言語モデルに基づくサブワード分割アルゴリズムで、大きな初期語彙から不要なトークンを確率的に削除(プルーニング)して最適な語彙を構築する手法である。BPEのボトムアップ方式とは逆のトップダウンアプローチを取り、GoogleのGemma/Gemini系で採用されている。
Unigramモデルは2018年に工藤拓氏(Google)が提案したサブワード分割手法で、BPEとは根本的に異なるアプローチを取る。BPEが小さな語彙から反復的にマージして拡大するボトムアップ方式であるのに対し、Unigramは大きな初期語彙から不要なトークンを削除して縮小するトップダウン方式である。
概要
Unigramモデルの特徴は、各トークンに出現確率が割り当てられ、テキストの分割が確率モデルに基づいて行われる点にある。同じテキストに対して複数の分割候補が存在し、最も尤度(likelihood)が高い分割が選択される。
例:「unbreakable」の分割候補
- 「un」+「break」+「able」(尤度: 0.85)
- 「un」+「breakable」(尤度: 0.72)
- 「unbreak」+「able」(尤度: 0.68)
- 「u」+「n」+「b」+「r」+「e」+「a」+「k」+「a」+「b」+「l」+「e」(尤度: 0.001)
最も尤度の高い分割が採用される。
語彙構築プロセス
Unigramの語彙構築(訓練)は以下のステップで行われる:
- 初期語彙の生成: コーパスから頻出する部分文字列を全て抽出し、目標語彙サイズの10-20倍の巨大な初期語彙を構築
- EMアルゴリズム: Expectation-Maximization法で各トークンの最適な出現確率を推定
- プルーニング: 語彙から1つのトークンを除去した場合の尤度低下を計算し、影響が最小のトークンを削除
- 反復: 手順2-3を目標語彙サイズに達するまで反復
| ステップ | BPE | Unigram |
|---|---|---|
| 初期語彙 | 最小(文字/バイト) | 最大(全部分文字列) |
| 操作 | マージ(追加) | プルーニング(削除) |
| 方向 | ボトムアップ | トップダウン |
| 確率モデル | なし(決定的) | あり(確率的) |
| 分割の一意性 | 一意 | 複数候補(最尤選択) |
確率的分割の利点
Unigramの確率的分割には独自の利点がある:
- 正則化効果: 訓練時にサンプリングベースの分割を使用することで、モデルが特定のトークン分割に過学習するのを防止
- サブワードの正則化(Subword Regularization): 同じテキストを異なるトークン列で表現することで、モデルのロバスト性が向上
- 多言語適性: 言語によって最適な分割粒度が異なる場合でも、確率モデルが適応的に調整
Gemma/Geminiでの採用
GoogleのGemma 2/4およびGemini 2.0では256,000語彙のUnigramトークナイザを採用している。この巨大語彙の背景:
- 100言語以上の多言語対応: 各言語に十分なトークンを割り当て
- コード・数式対応: プログラミング言語と数学記号を高効率にトークン化
- 圧縮効率: 大語彙により1トークンあたりの情報量が増加、推論ステップ数を削減
256K語彙 vs 128K語彙のトークン数比較:
| テキスト種別 | 128K (Llama 3) | 256K (Gemma) | 差分 |
|---|---|---|---|
| 英語散文 | 100 | 92 | -8% |
| 日本語 | 55 | 48 | -13% |
| Python | 78 | 71 | -9% |
| アラビア語 | 70 | 55 | -21% |
よくある質問(FAQ)
Q1: UnigramとBPEはどちらが優れていますか? A: 性能面では大きな差はなく、モデル全体のアーキテクチャや訓練データの影響の方が支配的です。Unigramは確率的分割によるロバスト性、BPEは実装のシンプルさと高速性で優位です。2026年時点ではBPE採用モデルの方が多数派ですが、Googleの主要モデル(Gemma/Gemini)がUnigramを採用しており、品質の差は無視できるレベルです。
Q2: Unigramの語彙構築はBPEより時間がかかりますか? A: はい、一般的にUnigramの方が計算コストが高くなります。EMアルゴリズムの反復と、各プルーニングステップでの尤度計算が必要なためです。ただし語彙構築は一度だけの処理であり、推論時(エンコード時)の速度はSentencePieceライブラリのトライ構造最適化により実用的な速度が確保されています。
Q3: Unigramモデルで「サブワード正則化」を使うメリットは? A: 訓練時にテキストの分割をランダムにサンプリングすることで、モデルが特定のトークン境界に依存しなくなります。これはデータ拡張の一種として機能し、特に低リソース言語やドメイン外テキストでのロバスト性が向上します。Google T5の訓練でサブワード正則化が標準的に使用され、翻訳タスクでBLEUスコアが0.5-1.0ポイント改善した報告があります。
まとめ
- Unigramは大語彙からのトップダウンプルーニングで最適語彙を構築
- 確率モデルによる柔軟な分割が多言語・ロバスト性に貢献
- Gemma/Geminiの256K語彙で100言語以上をカバー
- BPEとの性能差は微小だが、サブワード正則化は独自の利点
- SentencePieceライブラリで統一的に利用可能