リソース/モデルのトレーニング/トークンとコンテキスト

概念

トークン

モデルが実際に読み書きするテキストの断片。それらがどのように作られるのか、モデル間でカウントが異なる理由、そしてトレーニングにおけるすべての制限や価格がトークン単位で測定される理由について。

第2章読了時間 2分参考文献 5件

トークンとは何か

言語モデルが文字や単語を直接認識することはありません。テキストがモデルに届く前に、トークナイザーがテキストを固定の語彙から抽出した断片に分割し、それぞれの断片をその語彙内の番号に置き換えます。モデルはその番号の羅列を読み取り、回答も番号として出力します。その後、トークナイザーがそれを再びテキストに変換します。

“How do I reset my password?”
How2437␣do466␣I314␣reset13259␣my616␣password9206?30
27文字6単語≈ 7トークン
1つの文、7つのトークン。通常、スペースはその後の単語とセットになるため、「 do」と「do」は異なるトークンになります。

現在の語彙には、数万から数十万の項目が含まれています。頻出する単語は通常、その前のスペースを含めて独自の項目として登録されます。頻度の低い単語はより小さな断片の組み合わせで表現され、珍しい製品名などは4つや5つのトークンになることもあります。

トークナイザーの構築方法:バイト対符号化(BPE)

現在のトークナイザーの多くは、Sennrich、Haddow、Birchによって言語モデル向けに適合されたバイト対符号化(BPE)の一種を使用しています。語彙は、モデル自体のトレーニングが行われる前に、大量のテキストサンプルから学習されます。

  1. 最小単位(単一の文字、または256通りのバイト)から開始します。
  2. サンプル内の隣り合う単位のペアをすべてカウントし、最も頻出するペアを見つけます。
  3. そのペアを新しい単位に結合し、語彙に追加します。
  4. 語彙が目標のサイズに達するまで繰り返します。

結果として、語彙の項目はそのサンプルで一般的だったものに割り当てられます。バイトレベルのバージョンは文字ではなくバイトから始まるため、あらゆる言語、絵文字、または特殊な記号など、どのような入力でもエンコード可能ですが、珍しいものの場合は効率が低下します。

BPEが「ing」を学習する仕組み
  1. サンプルには「walking」「talking」「making」が何度も含まれています。最初はそれぞれが文字に分割されます:w a l k i n g。
  2. iの後にnが続くペアが最も頻出するため、これが1つの単位になります:w a l k in g。
  3. 次に、inの後にgが続くペアが最も頻出します:w a l k ing。
  4. 何万回もの結合を経ると、「walking」のような頻出単語は1つのトークンになる可能性が高く、一方で「unwalkable」のような珍しい単語は依然として複数のピースから構成されます。

同じテキストでカウントが異なる理由

テキストの種類典型的な挙動
日常的な英語1トークンあたり約4文字、または単語の4分の3
数値、ID、日付短い断片に分割されます。2024-03-17 は5つ以上のトークンを消費する場合があります
コードとJSON括弧、引用符、インデントもすべてトークンを消費します
その他の言語同じ意味でもより多くのトークンを消費することが多く、2023年の調査では、同じ翻訳テキストで最大15倍の差が測定されました
珍しい名前や専門用語複数のサブワードの断片に分割されます

各モデルファミリーは独自のトークナイザーをトレーニングするため、あるモデルで1,000トークンとなるドキュメントが、別のモデルでは1,150トークンになる場合があります。異なるトークナイザーでカウントされたものや、文字数から推定されたものは、あくまで概算にすぎません。

それが学習において重要である理由

  • コスト。 トレーニングは処理されたトークンごとに、利用は入力および出力トークンごとに課金されます。
  • 制限。 コンテキストウィンドウとサンプルごとのトレーニング制限は、メッセージや単語ではなく、トークン単位で計算されます。
  • 特有の弱点。 モデルは「strawberry」を10文字のアルファベットではなく、いくつかのトークンとして認識します。そのため、文字数を数えたり単語を逆から読んだりすることが驚くほど苦手です。

よくある間違い

  • コストや制限を見積もる際に、トークンを単語として扱うこと。
  • あるモデルでのカウントが別のモデルにも適用されると想定すること。
  • 英語以外のデータに対して、英語のトークンあたりの文字数比率を用いて予算を立てること。
  • JSON、マークアップ、長いIDなどのフォーマットもトークンを消費することを忘れること。

参考文献および関連資料

外部ソースは新しいタブで開きます。

  1. 01Neural Machine Translation of Rare Words with Subword UnitsSennrich, Haddow & Birch, 2016 · arXiv · arxiv.orgNLPにBPEトークン化を導入した論文。
  2. 02Byte-Pair Encoding tokenizationHugging Face LLM Course · huggingface.coコードを用いて段階的に解説されたBPEトレーニング。
  3. 03Language Model Tokenizers Introduce Unfairness Between LanguagesPetrov et al., 2023 · arXiv · arxiv.org一部の言語において、同じコンテンツでどれだけコストが増加するか。
  4. 04openai/tiktokenOpenAI · GitHub · github.comご自身でトークンをカウントするために実行できる、広く使用されているBPEトークナイザー。
  5. 05Understand and count tokensGemini API docs · ai.google.dev別のプロバイダーによるトークンとそのカウント方法の解説。

専門家が数週間かける作業を数分に短縮します

Scalataがお客様のチーム、データ、および統制にどのように適合するかをご確認ください。

営業へのお問い合わせ