AI・機械学習
上級

WordPiece(ワードピース)

WordPieceはGoogleが開発したサブワードトークン化アルゴリズムで、BERTやDistilBERT等のTransformerモデルで標準的に採用されており、コーパスの尤度最大化を基準にサブワード語彙を構築する。

0 回閲覧
0 いいね

WordPieceとは

WordPieceは、Googleが2012年にSchusterとNakajima によって提案したサブワードトークン化アルゴリズムである。BERT(2018年)での採用により広く知られるようになり、DistilBERT、ELECTRA、MobileBERT等のBERT派生モデルで標準的に使用されている。BPEと同様にサブワード分割を行うが、マージ基準が「頻度」ではなく「コーパス尤度の最大化」である点が異なる。

アルゴリズムの仕組み

WordPieceの語彙構築プロセス:

  1. 初期化: 全文字を初期語彙として設定
  2. 候補ペア生成: 隣接トークンの全ペアを列挙
  3. 尤度評価: 各ペアをマージした場合のコーパス全体の対数尤度変化を計算
  4. 最良ペア選択: 尤度向上が最大のペアを語彙に追加
  5. 反復: 目標語彙サイズ(BERTでは30,522)に達するまで繰り返す

尤度ベースの選択により、単純な頻度ベースのBPEよりも統計的に最適な語彙構成が得られる。

「##」接頭辞による単語内位置表現

WordPieceの特徴的な記法として、単語の先頭以外のサブワードに「##」接頭辞を付ける:

  • embeddings → [em, ##bed, ##ding, ##s]
  • unhappiness → [un, ##happi, ##ness]
  • トークン化 → [ト, ##ー, ##ク, ##ン, ##化]

この記法により、同一文字列でも単語先頭とそれ以外で別トークンとして区別され、形態素的な情報が保持される。

BERTファミリーでの採用状況

モデル語彙サイズ対応言語パラメータ数リリース年
BERT-base30,522英語110M2018
BERT-multilingual119,547104言語179M2018
DistilBERT30,522英語66M2019
ELECTRA-base30,522英語110M2020
MobileBERT30,522英語25.3M2020
DeBERTa-v3128,100英語+多言語304M2021

WordPieceとBPEの詳細比較

比較項目WordPieceBPE
マージ基準コーパス尤度最大化ペア出現頻度最大
計算コスト高い(尤度計算が必要)低い(頻度カウントのみ)
語彙品質統計的に最適ヒューリスティック
実装複雑度高い低い
分割記法##接頭辞(非先頭)なし(位置情報なし)
主な採用先BERT系エンコーダモデルGPT系デコーダモデル
ロスレス復元##除去で復元可能トークン結合で復元

実装上の注意点

WordPieceトークナイザを使う際の実践的なポイント:

  • HuggingFace Tokenizers: tokenizers.models.WordPieceクラスで学習・推論可能。BERTのトークナイザはAutoTokenizer.from_pretrained('bert-base-uncased')で即座に利用できる
  • vocab.txtの構造: 1行1トークンのテキストファイル。[PAD]、[UNK]、[CLS]、[SEP]、[MASK]の5特殊トークンが先頭に配置
  • 小文字化: bert-base-uncasedは入力を小文字化するが、bert-base-casedは大文字小文字を区別する。固有名詞認識タスクではcasedモデルが適切
  • 最大トークン長: BERTは512トークン制限。長文は切り詰めるかスライディングウィンドウで処理
  • [UNK]トークン: 語彙にないサブワードは[UNK]に変換される。多言語テキストでは語彙カバレッジに注意

よくある質問(FAQ)

Q1: WordPieceが最新のLLMで使われなくなった理由は何ですか? A: WordPieceの尤度計算は語彙構築時の計算コストが高く、100K以上の大語彙構築に不向きである。また、エンコーダモデル(BERT系)からデコーダモデル(GPT系)への主流シフトに伴い、より実装がシンプルなBPEが標準となった。

Q2: WordPieceの「##」記法にはどのような利点がありますか? A: 単語内の位置情報を保持できるため、形態素解析的な情報が失われにくい。例えば「un##happy」と「happy」が異なるトークン列になり、接頭辞「un-」の意味的役割をモデルが学習しやすくなる。BPEにはこの位置情報がない。

Q3: WordPieceで日本語を扱う場合の注意点は? A: BERT-multilingual(119,547語彙)は日本語をカバーするが、語彙の大部分は欧米言語に割り当てられている。日本語特化が必要な場合はcl-tohoku/bert-base-japanese-whole-word-masking(32,000語彙・MeCab前処理)が推奨される。

まとめ

  • WordPieceは尤度最大化ベースのサブワードトークン化アルゴリズム
  • BERTファミリー(30,522語彙)で標準採用されている
  • 「##」接頭辞で単語内位置情報を保持する独自記法を持つ
  • BPEより統計的に最適な語彙を構築するが計算コストが高い
  • 現在の大規模LLMではBPEが主流だが、エンコーダモデルでは依然重要