サブワードトークン化は、自然言語処理における技術であり、生のテキストを一連のトークンに変換する。各トークンは、単語全体、単語の一部、または単一の文字であり得る。これは、各単語を不可分な単位として扱う単語レベルトークン化と、テキストを個々の文字として処理する文字レベルトークン化の中間に位置する。サブワード単位を使用することで、トークナイザーは大規模な語彙を効率的に処理し、稀な単語や未知の単語を表現し、意味のある形態情報を保持することができる。このアプローチは、テキストを処理する現代の大規模言語モデルやその他のニューラルネットワークアーキテクチャの基礎となっている。
核となるアイデアは、単語をトレーニングコーパスで頻繁に出現する小さな断片に分割することである。例えば、「unhappiness」という単語は「un」、「happi」、「ness」に分割されるかもしれないし、十分に一般的であれば「unhappiness」を単一のトークンとして保持することもできる。この柔軟性により、モデルは既知のサブワード単位を組み合わせて新しい単語を理解できる一方、語彙サイズを管理可能に保つことができる。サブワードトークン化は2010年代半ば以降広く採用され、Transformer (architecture)ベースのモデルの主要な構成要素となっている。
歴史と発展
サブワードトークン化の概念は、機械翻訳や言語モデリングにおけるオープン語彙問題に対処する必要性から生まれた。1990年代から2000年代の初期のアプローチでは形態素解析が使用されたが、これらはしばしば言語固有であり、計算コストが高かった。大きな進展は、テキスト圧縮用のByte-Pair Encoding(BPE)の導入であり、2016年にRico Sennrichらによってトークン化に適応された。彼らの論文「Neural Machine Translation of Rare Words with Subword Units」は、BPEがSequence-to-Sequence (Seq2Seq)モデルで稀な単語を効果的に処理できることを示した。
ほぼ同時期に、WordPieceモデルがGoogleで開発され、当初は音声認識用で、後にBERTによって普及した。もう一つの変種であるUnigram Language Modelは、2018年に工藤拓によって導入され、ALBERTやT5などのモデルで使用された。これらの方法はサブワード単位の選択方法が異なるが、すべてテキストの最適なセグメンテーションを見つけるという目標を共有している。
方法とアルゴリズム
Byte-Pair Encoding(BPE)
BPEは、連続するシンボル(最初は文字)の最も頻繁なペアを新しいシンボルに反復的にマージするデータ圧縮アルゴリズムである。トークン化では、プロセスは文字に分割されたテキストのコーパスから始まり、隣接するペアを繰り返しカウントし、目標の語彙サイズに達するまで最も頻繁なペアをマージする。結果として得られる語彙には、文字、サブワード、および単語全体が含まれる。BPEは、OpenAIのGPTシリーズやMetaのLLaMAなど、多くのモデルで使用されている。
WordPiece
WordPieceはBPEに似ているが、マージに尤度ベースの基準を使用する。個々の文字から始めて、トレーニングデータの尤度を最大化する新しいトークンを追加することで語彙を構築する。このアプローチは、より言語学的に意味のあるサブワードを生成する傾向がある。WordPieceは、BERT、ELECTRA、およびGoogleの他のモデルで使用されている。
Unigram Language Model
Unigramトークン化は、各サブワードを独立した単位として扱い、確率モデルを使用して各単語の最適なセグメンテーションを選択する。可能なサブワードの大規模な語彙から始め、各トークンが全体的な尤度にどれだけ寄与するかに基づいて剪定する。この方法は複数のセグメンテーションを可能にし、SentencePiece実装で使用されている。
現代の言語モデルにおける役割
サブワードトークン化は、ほぼすべての現代の大規模言語モデルにとって重要な前処理ステップである。GPT-4、Claude、Geminiなどのモデルは、Transformer (architecture)アーキテクチャに供給する前にテキストをサブワードトークンに変換するトークナイザーに依存している。トークナイザーの選択は、モデルのパフォーマンス、計算効率、および複数言語の処理能力に影響を与える。
例えば、より大きな語彙を持つトークナイザーは、より多くの単語を単一のトークンとして表現でき、シーケンス長と計算コストを削減できるが、モデルのメモリフットプリントも増加させる可能性がある。逆に、より小さな語彙はより多くの単語を分割することを強制し、より長いシーケンスと意味の潜在的な損失につながる可能性がある。トークナイザーは通常、大規模なコーパスでトレーニングされ、モデルのトレーニング中は固定されたままである。
サブワードトークン化は、言語間転移も可能にする。言語間でサブワード単位を共有することで、モデルはコードスイッチングや低リソース言語の稀な単語をよりよく処理できる。これは、mBERTやXLM-RoBERTaなどの多言語モデルにとって特に重要である。
課題と今後の方向性
その広範な使用にもかかわらず、サブワードトークン化には限界がある。一つの問題は、形態的境界と一致しない任意のセグメンテーションを生成できることであり、モデルが単語構造を学習するのを難しくする。もう一つの課題は、医学や法律などの専門分野で新しい用語が頻繁に出現する場合の語彙外単語の処理である。一部の研究者は、これらの問題を回避するために文字レベルまたはバイトレベルのトークン化を提案しているが、これらのアプローチはしばしばより長いシーケンスとより多くの計算を必要とする。
最近の開発には、トレーニング中にトークナイザーを調整できる適応型トークン化や、固定トークナイザーなしでテキストのセグメンテーションを学習するエンドツーエンドモデルが含まれる。しかし、2025年現在、サブワードトークン化はほとんどの本番システムで標準であり、その効率と言語的品質を向上させるための継続的な研究が行われている。