AI・機械学習
上級

Unigramトークナイザー(ユニグラムトークナイザー)

トップダウン方式のサブワード分割アルゴリズム。大きな初期語彙から出発し、各サブワードの除去がコーパス全体の尤度に与える影響を評価しながら語彙を段階的に削減する。SentencePieceのデフォルトアルゴリズムで、T5・mT5・XLNet・ALBERTなどで採用。

0 回閲覧
0 いいね

Unigramトークナイザーとは

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.452
["token", "iz", "ation"]0.303
["to", "ken", "ization"]0.153
["tokenization"]0.101

BPEは決定論的に1つの分割のみを出力するが、Unigramは全ての有効な分割とその確率を計算できる。推論時は通常、最大確率の分割(Viterbiアルゴリズム)を選択するが、学習時にはサンプリングによる正則化効果を活用できる。

Subword Regularization

Unigramの確率的分割を活用した正則化手法がSubword Regularizationである。

  • 目的: 学習時に異なるサブワード分割をサンプリングすることで、モデルが特定の分割パターンに過学習するのを防ぐ
  • 手法: エポックごとに異なる確率でサブワード分割を生成し、学習データの多様性を増加
  • 効果: 機械翻訳タスクで+0.5〜1.0 BLEUの改善が報告されている(Kudo, 2018)

BPEではBPE-dropoutという類似手法が後に提案されたが、Unigramの方が理論的に自然な確率分布からサンプリングできる利点がある。

BPEとの詳細比較

比較項目BPEUnigram
構築方向ボトムアップ(マージ)トップダウン(プルーニング)
分割の決定性決定論的(1通り)確率的(複数候補)
最適化目標頻度ベース(局所最適)尤度ベース(大域最適)
計算コスト低い高い(EM反復)
Subword正則化BPE-dropout(近似)ネイティブ対応
未知語処理バイトフォールバックバイトフォールバック
実装tiktoken/sentencepiecesentencepiece

理論的にはUnigramの方がコーパス全体に対して最適な語彙を見つけやすいが、実用上の精度差はモデル全体の学習で吸収される。

採用モデル一覧

モデル語彙サイズ備考
T5 (Text-to-Text Transfer Transformer)32,000Unigramの代表的採用例
mT5 (multilingual T5)250,000101言語対応の大語彙
XLNet32,000Transformer-XLベース
ALBERT30,000パラメーター共有で軽量化
PaLM / PaLM 2256,000Google最大級のLLM
Flan-T532,000T5の命令チューニング版

実装上の注意点

Unigramモデルの学習には以下の実装上の考慮が必要である。

  • 初期語彙の生成: 全サブストリングを列挙すると計算量が爆発するため、BPEで大きめの語彙を先に作り、それを初期語彙とする手法が一般的
  • EMアルゴリズムの収束: 通常5-10回のEM反復で十分に収束するが、コーパスサイズが非常に大きい場合はメモリ消費に注意
  • Viterbiデコード: 推論時の最大確率分割はViterbiアルゴリズムで効率的に計算可能(動的計画法でO(n²))

FAQ

Q1: なぜGPT系列はUnigramではなくBPEを使うのですか?

主な理由は2つあります。(1)歴史的経緯:GPT-1がBPEを採用し、その後のバージョンでも語彙互換性のために継続された。(2)推論速度:BPEのマージテーブルルックアップはUnigramのViterbiデコードより高速で、大量テキスト処理に有利です。Unigramの理論的優位性は、モデルスケールの増大で実用上は無視できるレベルになっています。

Q2: Subword Regularizationは現在も使われていますか?

学術研究では有効性が認められていますが、大規模LLMの事前学習ではほとんど使われていません。理由は、数兆トークン規模の学習データでは、Subword Regularizationによる正則化効果がデータ量自体による正則化効果に対して相対的に小さくなるためです。小〜中規模モデルや低リソース言語のファインチューニングでは依然として有効です。

Q3: UnigramモデルとBPEモデルの語彙を混合して使えますか?

技術的には不可能です。各トークナイザーは独自の語彙とID体系を持つため、あるモデルのトークナイザーで生成したトークン列を別のモデルに入力すると意味のない結果になります。モデルの切り替え時は必ず対応するトークナイザーを使用し、テキストレベルでの変換を行う必要があります。