Token (LLM) — トークン

From Systems analysis wiki
Jump to navigation Jump to search

トークン (token) — 大規模言語モデル (LLM) が扱うことのできるテキストの最小単位です。LLMで処理される前に、あらゆるテキストはまずトークンのシーケンスに変換され、その後、モデルが分析・処理しやすい数値表現に変換されます。

使用されるトークン化戦略に応じて、トークンは以下のようなものを表すことがあります:

  • 単語全体 (例:「家」)
  • 単語の一部または語幹 (例:「お家」における「家」)
  • 個々の文字や句読点 (例:「,」、「!」)

トークンを使用することで、言語モデルはテキストの構造を効率的に学習・再現し、パターンを特定し、テキストの意味や構文を理解することが可能になります。

トークン化プロセス

トークン化 (tokenization) とは、元のテキストをトークンに分割し、その後モデルが理解できる数値IDに変換するプロセスです。

この段階は、大規模言語モデルが機能するための必須かつ基本的なステップです。これにより、LLMは以下のことが可能になります:

  • 構文の分析 — テキストの構造と要素(単語やフレーズ)の配置。
  • 意味の抽出 — テキストの深い意味と要素間の相互関係。

トークン化にはいくつかの主要な手法があり、その中には以下のものがあります:

  • Byte Pair Encoding (BPE): 最も頻繁に出現する文字のペアを繰り返し新しいトークンに置き換えるアルゴリズムで、珍しい単語や形態的なバリエーションを効率的に処理できます。
  • WordPiece: BERTモデルで使用され、単語をサブワード単位に分割することで、未知語の処理に役立ちます。
  • SentencePiece: テキストを文字のシーケンスと見なし、BPEまたはUnigramベースのモデルを適用してトークン化する手法です。

トークン化手法の選択は、モデルのパフォーマンス、様々な言語を処理する能力、および学習の効率に影響を与えます。

特別なトークン

基本的なトークンに加えて、モデルは以下のようなテキストの機能的要素を示すために特別なトークンも使用します:

  • [CLS] (class) — シーケンスの開始を示すトークンで、テキスト分類タスクでよく使用されます。
  • [SEP] (separator) — テキストの異なる部分(例:質問と回答、文や段落)を区切ります。
  • [MASK] — モデルが予測すべき単語を示す特別なトークン(BERTやその他のマスク化言語モデルで使用されます)。
  • [PAD] (padding) — テキストの長さを揃えるために使用されます。

これらの特別なトークンは、モデルが処理するテキストの構造とコンテキストをより正確に理解するのに役立ちます。

トークンとコンテキストウィンドウ

コンテキストウィンドウ (context window) とは、モデルがテキストを生成する際に同時に考慮し、処理できるトークンの最大数です。

例えば、GPT-3モデルは2048トークンのコンテキストウィンドウを持っています。これは、テキストを生成する際に、モデルが最大で元のテキストの2048トークン分の情報を同時に考慮できることを意味します。コンテキストウィンドウのサイズは、以下に影響します:

  • モデルが利用できる情報の最大量
  • 生成される回答の品質と意味のある内容
  • 長いテキストを理解し、トークン間の距離が離れていてもコンテキストを維持するモデルの能力

参考文献

  • 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.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. *EMNLP 2021*. 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.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling: Assessing Vocabulary Allocation and Overlap Across Languages. 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.