Googleが開発したサブワードトークナイゼーションアルゴリズム。BPEと同様にボトムアップで語彙を構築するが、マージ候補の選定に言語モデル尤度(対数尤度変化量)を使用する点が異なる。BERT・DistilBERT・ELECTRA等のGoogleのエンコーダモデルで標準的に採用されている。
WordPieceは、Googleが開発したサブワードトークナイゼーションアルゴリズムである。テキストを単語より小さな「サブワード」単位に分割し、頻出パターンは1トークンに、稀な語は複数のサブワードに分解する。BERT・DistilBERT・ELECTRA・MobileBERTなどGoogle系のエンコーダモデルで標準的に採用されており、NLP分野で最も広く使われたトークナイザの一つだ。
WordPieceとBPEはどちらもボトムアップでサブワード語彙を構築する点で共通しているが、マージ候補の選定基準が異なる。
| 比較軸 | BPE | WordPiece |
|---|---|---|
| マージ基準 | 最頻出ペア(頻度) | 尤度最大化ペア |
| 計算コスト | 低い(単純カウント) | 高い(尤度計算) |
| 理論的最適性 | 貪欲な近似 | より最適に近い |
| 実装複雑度 | シンプル | やや複雑 |
| 主な採用モデル | GPT系, LLaMA | BERT系 |
BPEは「コーパス中で最も頻繁に隣接するペア」をマージする。WordPieceは「マージによって訓練コーパスの言語モデル尤度が最も向上するペア」をマージする。具体的には以下の式でスコアを計算する。
score(x, y) = freq(xy) / (freq(x) × freq(y))
この式は相互情報量(PMI: Pointwise Mutual Information)に相当し、個別には頻出しないが共起すると意味のあるペアを優先的にマージする効果がある。
WordPieceの特徴的な表記ルールとして、単語の先頭以外のサブワードに ## プレフィックスが付く規則がある。
入力: "unbreakable"
分割結果: ["un", "##break", "##able"]
入力: "自作PCを組み立てる"
分割結果: ["自", "##作", "##P", "##C", "##を", "##組", "##み", "##立", "##てる"]
## はそのサブワードが単語の途中であることを示すマーカーだ。デコード時に ## を除去してサブワードを連結すれば元のテキストを復元できる。この設計により、モデルは単語の開始位置と途中位置を区別して学習できる。
BERTのWordPiece語彙は30,522トークンで構成される。
| 語彙の構成要素 | トークン数 | 説明 |
|---|---|---|
| 特殊トークン | 5 | [PAD], [UNK], [CLS], [SEP], [MASK] |
| 未使用予約 | 994 | [unused0]〜[unused993] |
| 通常トークン | 29,523 | 英語サブワード + 多言語文字 |
BERTの語彙は主に英語テキストで訓練されているため、日本語テキストのトークン効率は低い。漢字やカタカナが1文字ずつ分割されるケースが多く、同じ文の英語版と比較して2〜4倍のトークン数になる。この問題に対処するため、東北大学が公開した日本語BERT(tohoku-nlp/bert-base-japanese)は日本語に最適化された独自のWordPiece語彙を使用している。
WordPieceの発展は以下の3段階に分かれる。
BERTの爆発的な成功によりWordPieceは広く認知されたが、GPT-2以降の生成モデル(Decoder-only Transformer)はBPEを採用する流れとなり、2026年現在ではBPEが業界の主流になっている。WordPieceはBERT系のエンコーダモデルの遺産として残っている状況だ。
| モデル | 語彙サイズ | リリース年 | 備考 |
|---|---|---|---|
| BERT base/large | 30,522 | 2018 | 英語中心の多言語対応 |
| DistilBERT | 30,522 | 2019 | BERTの蒸留版(語彙共通) |
| ELECTRA | 30,522 | 2020 | 置換トークン検出方式 |
| MobileBERT | 30,522 | 2020 | モバイル向け軽量版 |
| BERT日本語(東北大) | 32,768 | 2020 | 日本語最適化WordPiece |
| multilingual BERT | 119,547 | 2018 |
理論的にはWordPieceの方が尤度ベースで最適な語彙を構築できますが、実用上の性能差は小さいです。BPEは実装がシンプルで高速なため、2026年現在の主流はBPEです。WordPieceはBERT系モデルを使う場合に意識するアルゴリズムで、新規モデル開発ではBPEが選ばれることが多いです。
##プレフィックスはWordPiece固有の表記です。BPEでは空白の有無で位置を区別し、SentencePieceでは▁(下部ブロック)で単語先頭を示します。いずれもサブワードの位置情報をエンコードする仕組みですが、記法が異なります。
多言語BERTの標準WordPiece語彙では日本語のトークン効率が悪く、漢字が1文字ずつ分割されがちです。日本語を主に扱う場合は、日本語コーパスで訓練された専用WordPiece語彙を持つモデル(tohoku-nlp/bert-base-japaneseなど)の使用を推奨します。
| 104言語対応 |