AI・機械学習
中級

バイトレベルBPEトークナイゼーション(バイトレベルビーピーイートークナイゼーション)

BPEの起点をUnicode文字でなくバイト(0-255)にすることで全Unicode文字をOOVなしに表現するトークン化手法。GPT-2で導入され、GPT-4・Llama-3で標準化。256バイトを基本ボキャブラリーとして全言語・絵文字・バイナリデータを統一的にトークン化できる。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
tokenization
bpe
byte-level
unicode
oov-free
gpt-2

バイトレベルBPEトークナイゼーション

Byte-Level BPE(バイトレベルBPE、略称BBPE)はOpenAIのRadfordらがGPT-2論文(2019年)で提案したBPEの拡張版。通常のBPEがUnicode文字(コードポイント)を最小単位とするのに対し、BBPEは256種類のバイト値(0x00〜0xFF)を最小単位として採用する。これにより全Unicode文字は必ず既存のバイト列として表現でき、語彙外(OOV)問題が原理的に発生しない。

通常BPEとの違い

特性通常BPEByte-Level BPE
最小単位Unicode文字(コードポイント)バイト(0x00〜0xFF)
初期vocab文字セット(数百〜数千)256バイト値
OOV発生あり(未知文字)なし(全入力をバイト表現可能)
絵文字対応不安定(OOV可能性)完全対応
バイナリデータ非対応理論上対応

GPT-2での導入背景

GPT-2以前のLMは語彙外の文字に対して<unk>トークンを使っていた。これにより稀少言語・絵文字・コード中の特殊文字でトークン化が崩れる問題があった。GPT-2ではこれを解決するためBBPEを採用し、全Unicode文字を正確にトークン化できるように設計した。

バイト値の可読化

0x00〜0xFF の256バイト値を直接使うと多くは非印字可能文字になり可読性が低い。GPT-2/tiktokenでは256バイト値を256個の可読文字(ASCII可印字文字+カスタム文字)にマッピングする変換テーブルを使用する。例えば「こんにちは」(UTF-8: e3 81 93 e3 82 93...)はバイト列に変換後、BPEマージルールで「こ」「ん」「にちは」等のサブワードに結合される。

Llama-3でのBBPE採用

LLaMA-2がSentencePiece BPE(Unicode文字レベル)だったのに対し、LLaMA-3はtiktoken互換のBBPEに切り替えた。語彙サイズも32,000から128,256へ4倍拡大。これによりLLaMA-3は絵文字・CJK文字・コードを前世代より大幅に効率的に表現でき、特に日本語テキストのトークン効率が2〜3倍改善した。

コードLLMでの重要性

コード生成モデルにとってBBPEは特に重要。プログラムコードには通常テキストに現れない文字(\x00パディング、バイナリデータ、非ASCII識別子等)が多く、OOV問題がコード品質に直結する。GitHub Copilot/CodeX等のコードLLMがBBPEを採用しているのはこの理由による。

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