AI・機械学習
中級

BPEトークナイゼーション(Byte Pair Encoding)(ビーピーイートークナイゼーション)

LLM学習で最も広く使われるサブワードトークン化アルゴリズム。頻出するバイト/文字ペアを繰り返し結合してボキャブラリーを構築する。GPT-2/3/4・Llama・Mistralなど主要LLMで採用され、未知語を複数サブワードに分割する柔軟性が特徴。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
tokenization
bpe
subword
vocabulary
llm-training
nlp

BPEトークナイゼーション(Byte Pair Encoding)

BPE(Byte Pair Encoding)はLLMのトークン化処理で最も広く採用されているサブワードアルゴリズム。1994年のPhilip Gageのデータ圧縮アルゴリズムが起源で、2016年にSennrichらがNMT(ニューラル機械翻訳)向けに転用。GPT-2での採用を経て、GPT-4・Llama-3・Mistral・Claude等の主要LLMの標準トークナイザーとして確立された。

BPEアルゴリズムの動作

  1. 初期化: 入力文字列をキャラクター(または文字)単位に分割
  2. 頻度カウント: 全テキストコーパスで隣接ペアの出現頻度を集計
  3. 最頻ペア結合: 最も頻出するペアを1つのトークンとしてボキャブラリーに追加
  4. 繰り返し: 目標語彙数(例: 50,000)に達するまで繰り返す
  5. 確定: 学習済みマージルールをトークナイザーとして保存

主要LLMのBPE語彙サイズ比較

モデルvocab sizeトークナイザー備考
GPT-250,257tiktoken BPEバイトレベル
GPT-4/4o100,256tiktoken cl100k_base多言語強化
Llama-232,000SentencePiece BPE日本語弱め
Llama-3128,256tiktoken 互換多言語大幅強化
Mistral-7B32,000SentencePiece BPELlama-2互換
Gemma-2256,000SentencePiece BPE最大級vocab

語彙サイズとトレードオフ

語彙サイズが大きいほど1トークンあたりの情報量が多くなり(高圧縮率)、同じテキストを少ないトークン数で表現できる。ただし大きすぎると埋め込み行列のメモリが増加(例: 256,000 × 4096次元 × fp16 = 2GB)、低頻度トークンの学習データが少なくなり品質低下、推論時のソフトマックス計算コストが増加する問題がある。100,000〜256,000が2024〜2025年の主流。日本語・中国語等CJK言語を扱う場合は大きめの語彙サイズが有利。

Byte-Level BPEとの違い

通常のBPEはUnicodeキャラクターから開始するが、Byte-Level BPE(GPT-2で導入)は256バイト値から開始する。これにより全Unicode文字をバイト列として表現でき、未知文字が存在しない(OOV問題が発生しない)利点がある。GPT-4/Llama-3はいずれもByte-Level BPEを採用している。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/6