BPE(LLM)

Byte Pair Encoding

BPEとは

BPE(Byte Pair Encoding:バイトペアエンコーディング)とは、テキストをサブワード単位に分割するトークン化アルゴリズムです。もともとはデータ圧縮手法として開発されましたが、2016年に自然言語処理に適用されて以降、GPTシリーズをはじめとする多くのLLMで標準的なトークナイザーとして採用されています。

BPEの仕組み

BPEは、テキスト内で最も頻繁に隣接して出現するバイト(文字)ペアを繰り返し結合することで、語彙を構築します。初期状態では各文字が個別のトークンで、頻出ペアを統合していく過程で「un」「ing」「tion」といったサブワードが形成されます。最終的に指定した語彙サイズに達するまでこの統合を繰り返します。高頻度の単語は一つのトークンとなり、低頻度の単語はサブワードの組み合わせで表現されます。

BPEの利点と改良版

BPEの大きな利点は、未知語(OOV:Out-of-Vocabulary)問題を解決できることです。どんな新しい単語でもサブワードの組み合わせで表現できるため、語彙にない単語でも処理可能です。GPTシリーズではBPEをバイトレベルに拡張したBBPE(Byte-level BPE)が使用されており、任意のUnicode文字を扱えます。tiktoken(OpenAI提供)やsentencepiece(Google提供)などのライブラリで効率的なBPEトークン化が実装されています。