AI・機械学習
中級

WordPieceトークナイザー(ワードピーストークナイザー)

Googleが開発したサブワード分割アルゴリズム。BPEと類似するが、マージ対象のペア選択に尤度最大化(言語モデル確率の向上量が最大のペア)を用いる点が異なる。BERTおよびその派生モデル(DistilBERT、ALBERT、ELECTRA等)の標準トークナイザー。

0 回閲覧
0 いいね

WordPieceトークナイザーとは

WordPieceは、Googleが2012年に日本語・韓国語の音声認識システム向けに開発し、その後2016年にGoogle Neural Machine Translation(GNMT)で自然言語処理に導入したサブワード分割アルゴリズムである。2018年にBERTが採用したことで広く知られるようになり、Transformerベースの理解系モデル(エンコーダーモデル)における事実上の標準トークナイザーとなった。

BPEとの違い:マージ基準

WordPieceとBPEの最も本質的な違いはマージペアの選択基準にある。

比較項目BPEWordPiece
マージ基準出現頻度が最大のペア尤度向上が最大のペア
理論的根拠データ圧縮(頻度ベース)言語モデル最適化(確率ベース)
計算量O(N) per stepO(N × V) per step
分割の最適性局所最適(貪欲法)より大域的に最適
実装複雑度低いやや高い

具体的には、BPEが「ペア(a,b)の出現回数」でソートするのに対し、WordPieceは「ペア(a,b)をマージした場合の言語モデルlog-likelihood増分」でソートする。log-likelihood増分は以下の式で計算される。

score(a,b) = log(P(ab)) - log(P(a)) - log(P(b))

この基準により、頻度は低いが言語的に重要なペア(形態素境界に沿ったマージ等)が優先される傾向がある。

WordPieceの特徴的な記法

WordPieceトークナイザーには、単語の途中に出現するサブワードに「##」プレフィックスを付与する慣習がある。

入力テキストWordPieceトークン列
"embedding"["em", "##bed", "##ding"]
"tokenization"["token", "##ization"]
"unhappy"["un", "##happy"]
"playing"["play", "##ing"]

「##」プレフィックスにより、デコード時にどのトークンが単語先頭で、どのトークンが単語途中かを区別できる。BPEのSentencePiece実装が「▁」(空白マーカー)を単語先頭に付与するのとは逆のアプローチである。

BERTにおけるWordPieceの実装

BERTのWordPieceトークナイザーは以下の処理パイプラインで動作する。

  1. BasicTokenizer: 空白分割、句読点分離、Unicode正規化、小文字化(uncasedモデル)
  2. WordPieceTokenizer: BasicTokenizerの出力をサブワードに分割
  3. 特殊トークン追加: [CLS], [SEP], [PAD], [MASK], [UNK]を挿入

BERTの語彙サイズは以下の通りである。

モデル語彙サイズ対象言語
bert-base-uncased30,522英語
bert-base-cased28,996英語(大文字区別)
bert-base-multilingual-cased119,547104言語
bert-base-chinese21,128中国語
bert-base-japanese32,000日本語

WordPieceを採用する主要モデル

モデルリリース年語彙サイズ備考
BERT201830,522WordPiece普及の契機
DistilBERT201930,522BERTと同一語彙
ALBERT201930,000パラメーター共有で軽量化
ELECTRA202030,522置換トークン検出で事前学習
DeBERTa v32021128,000語彙拡大版
CANINE2021-文字レベル(WordPiece不使用)

注目すべきは、GPT系列の生成モデルがBPEを採用し、BERT系列の理解モデルがWordPieceを採用するという明確な棲み分けが存在する点である。これは歴史的経緯によるもので、アルゴリズムの性能差よりもエコシステムの慣性が大きい。

WordPieceの限界と後継

WordPieceの主な限界は以下の通りである。

  • 学習コストの高さ: 尤度計算のために言語モデルの訓練が必要で、BPEより学習が遅い
  • 公式実装の非公開: GoogleのWordPiece学習アルゴリズムの公式実装は長らく非公開だった(Hugging Faceのtokenizersライブラリで再実装)
  • 生成モデルでの不採用: GPT系列がBPEを選択したことで、生成AI時代にシェアが縮小

FAQ

Q1: WordPieceとBPEで実際の分割結果は異なりますか?

同じ語彙サイズで学習した場合、分割結果の90%以上は一致します。差が出るのは頻度が低い単語で、WordPieceは言語的に意味のある境界(形態素境界)に沿った分割を選ぶ傾向があります。ただし実用上の精度差はモデル全体の学習で吸収されるため、トークナイザー単体での性能差は限定的です。

Q2: なぜGPT系列はWordPieceではなくBPEを選んだのですか?

主な理由は実装の単純さと学習速度です。BPEは頻度カウントのみで語彙を構築でき、言語モデルの学習が不要です。OpenAIがGPT-1開発時にBPEを選択し、その後のGPT-2/3/4でも互換性のために継続した経緯があります。性能面ではWordPieceの方が理論的に優位ですが、差はモデルスケールで相殺されます。

Q3: 新しいモデルを作る場合、どのトークナイザーを選ぶべきですか?

2026年時点では、BPE(SentencePieceまたはtiktoken)が最も無難な選択です。理由は、エコシステムの成熟度(ツール・ライブラリ・事例)がBPEで最も高く、主要LLMとの互換性も確保しやすいためです。WordPieceはBERT系列の微調整を行う場合に選択しますが、新規にゼロからモデルを構築する場合はBPEが推奨されます。