Tokenization (NLP) — トークン化

From Systems analysis wiki
Jump to navigation Jump to search

トークン化(Tokenization)は、大規模言語モデル(LLM)の文脈において、テキストのシーケンスをトークンと呼ばれる、より小さく管理しやすい単位に分割する基本的な前処理プロセスです。これらのトークンは、モデルが処理できる数値識別子に変換されます。トークン化は、モデルのパフォーマンス、効率、公平性、言語理解の質に直接影響を与えるため、極めて重要な最初のステップです。

基本概念

トークン

トークンは、言語モデルが処理するテキストの離散的な単位です。選択されたトークン化の手法に応じて、トークンは以下のいずれかを表します:

  • 単語全体(例:「猫」)。
  • 単語の一部またはサブワード(例:「未-」、「-然-」、「-形」)。
  • 個別の文字(例:「あ」、「い」、「う」)。
  • バイト(バイトレベルのトークン化の場合)。

各ユニークなトークンには、トークナイザの語彙から特定のインデックス番号が割り当てられます。

トークナイザの語彙

語彙(ボキャブラリー)は、モデルが認識できるすべての可能なトークンの完全なセットです。語彙サイズは重要なハイパーパラメータです:

  • 大規模な語彙は、より多くの単語を丸ごと表現できるため、理解度が向上し、シーケンス長が短縮されますが、モデルサイズと学習の複雑さが増大します。
  • 小規模な語彙はよりコンパクトですが、稀な単語や複雑な単語をより多くのサブワードに分割する必要があり、シーケンスが長くなり、意味の把握が困難になる可能性があります。

語彙サイズはモデルによって大きく異なり、GPT-2の約50,000トークンから、GPT-4(100,277)やLLaMA-3(128,000)のような現代のモデルでは100,000を超えるものもあります。

主なトークン化手法

トークン化には、主に3つの粒度レベルがあります。

1. 単語レベルのトークン化 (Word-level)

  • 原則: テキストは区切り文字(スペース、句読点)に基づいて個々の単語に分割されます。
  • 利点: 直感的で分かりやすい。トークンシーケンスが短くなり、計算負荷が軽減されます。
  • 欠点:
    • 未知語(Out-of-Vocabulary, OOV)問題: モデルは学習語彙になかった単語、タイポ、新語を処理できません。
    • 語彙サイズが大きい: すべてのユニークな単語を保存する必要があり、特に形態論的に豊かな言語では問題となります。

2. 文字レベルのトークン化 (Character-level)

  • 原則: テキストは個々の文字に分割されます。
  • 利点:
    • OOV問題がない: どんな単語も文字のシーケンスとして表現できます。
    • 語彙サイズが小さい: アルファベットと特殊文字のサイズに制限されます。
  • 欠点:
    • 長いシーケンス: テキストが非常に長いトークンシーケンスに変換されるため、計算コストが大幅に増加します。
    • 意味の喪失: モデルは個々の文字を操作するため、単語全体の意味を捉えるのが難しくなります。

3. サブワードトークン化 (Subword Tokenization)

これは、前述の手法の利点を組み合わせた、今日最も一般的な中間的アプローチです。

  • 原則: 頻繁に使用される単語は完全なトークンとして保持し、稀な単語や未知の単語はより小さく意味のある部分(サブワード)に分割します。
  • 利点:
    • OOV単語や形態的なバリエーションを効果的に処理します。
    • 語彙サイズを制御できます。
    • 単語の形態構造を捉えます。
  • 主なアルゴリズム:
    • Byte Pair Encoding (BPE): 文字の集合から開始し、最も頻繁に出現するペアを繰り返し新しいトークンに統合していく反復アルゴリズムです。GPTモデルで使用されています。GPT-2やRoBERTaで使用されているバイトレベルBPEは、単語をバイトシーケンスとして扱うことで、OOV問題を完全に解決します。
    • WordPiece: BPEに似たアルゴリズムですが、ペアをマージする際に、学習データの尤度を最大化するものを選択します。BERTモデルで使用されています。
    • Unigram LM: BPE/WordPieceとは異なり、この手法は大規模なサブワードの集合から開始し、コーパス全体の確率に最も影響を与えないトークンを削除することで徐々に語彙を削減します。これにより、1つの単語に対して複数の確率的なトークン化(サブワード正則化)を生成できます。
  • SentencePieceツールキット: Googleによるライブラリで、BPEとUnigram LMを実装し、テキストを連続した文字ストリームとして処理するため、(中国語のように)明確な単語区切りがない言語にも汎用的に対応できます。LLaMAやT5モデルで使用されています。

マルチモーダルLLMにおけるトークン化

テキストだけでなく、他のデータタイプも扱うマルチモーダルモデルでは、トークン化は他のデータタイプにも拡張されます:

  • 視覚的トークン化: 画像は小さなパッチ(例:16x16ピクセル)に分割され、テキストのトークンと同様にベクタートークンに変換されます。
  • 音声トークン化: 連続的な音声信号が、短い音声断片を表す離散的なトークンのシーケンスに変換されます。
  • 統合アプローチ (TEAL): あらゆるモダリティのデータが、まず対応するトークナイザでトークン化され、その後、それらの埋め込みが単一の共有空間で処理されるという概念です。

課題と制約

トークン化はその重要性にもかかわらず、LLMの動作における多くの問題の原因となっています:

  • 非一貫性と感度: 入力データのわずかな変更(タイポ、大文字小文字、末尾のスペース)がトークン化を劇的に変化させ、モデルの予測不可能な振る舞いを引き起こす可能性があります。
  • 多言語における問題: 多くの言語に対応する単一の語彙は、低リソース言語や形態論的に豊かな言語に対して非効率的であることが多く、非常に長いトークンシーケンスを生成してしまいます。
  • 推論への影響: 数値(例:「25,000」が「25」「,」「000」に分割される)や記号の非論理的な分割は、算術的および記号的なタスクの実行を困難にします。
  • グリッチトークン (Glitch Tokens): 学習データに含まれる異常または稀なトークン(例:Redditのユーザー名など)が、モデルの予測不可能または悪意のある振る舞いを引き起こす可能性があります。

進化する状況と将来の方向性

トークン化の研究は、以下の方向で活発に進められています:

  • トークナイザフリーモデル: 明示的なトークン化のステップとそれに伴う問題を完全に排除するために、バイトレベルまたは文字レベルで直接動作するモデル(CANINE、ByT5)の開発。
  • 適応型・学習可能なトークン化: 言語、ドメイン、あるいは特定の入力テキストに動的に適応できるトークナイザや、主要モデルと共同で学習されるトークナイザの作成。
  • 認知科学に基づいたアプローチ: 人間の言語処理に関する認知科学(例:「最小努力の法則」)から着想を得て、より意味的に理にかなったトークン化を生成する手法の開発。

外部リンク

参考文献

  • Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
  • Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
  • Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
  • Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
  • Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
  • Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
  • Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
  • Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
  • Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
  • Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.