見出し画像

02 チャットGPT基本概念 - トークンとは?


トークンとは何か、その役割は何か、まだ明確に理解していない方もいるかもしれません。

Chatgptと会話の時、Chatgptはコンテキストを忘れた時、何だこいつと思ったことはありませんか?
大型モデル内でのトークンの役割を理解することは、このAI技術を深く理解する上で非常に重要です


トークンとは


大型モデルにおいて基本的だが重要な概念です。これは、テキスト処理における最小単位で、単語、数字、記号、または漢字などが含まれます

トークンを、単語、数字、句読点、またはその他の言語要素と考えることもできますし、建物(文章)を構成するブロック(トークン)としても理解できます。


英語では、トークンは「apple」のような単語や、ピリオドのような句読点かもしれません。しかし、日本語などの他の言語では、トークンは一つの字や単語を表すことがあります。

例えば、「私は日本が好き」という文において、それぞれの単語「私」、「は」、「日本」、「が」、「好き」はトークンとみなすことができます。日本語では、トークンは一つの字かもしれませんし、一つの単語かもしれません

大型モデルのコアでは、「トークン」が重要な役割を果たしています。Chatgpt見ないな大型モデルとのコミュニケーションでは、入力されたテキストをトークンに分解し、これらのトークンに基づいて応答を生成します。

トークンの種類と役割

トークンには以下の種類があり、それぞれ異なる内容を反映しています:

  1. 語彙トークン(Word Tokens): 最も一般的なトークンのタイプで、テキスト中の単語や漢字を表します。例えば、「猫」、「走る」など。

  2. 記号トークン(Symbol Tokens): 句読点や特殊文字を含みます。例えば、コンマ、「?」など。

  3. 数字トークン(Number Tokens): 数字を表し、「2023」、「100」などが含まれます。


各トークンの種類は、テキスト処理において異なる役割を果たします。

  • 語彙トークンは、モデルがテキストの意味内容を理解するのに役立ちます。

  • 記号トークンは、テキストの構造や文法を理解するのに通常使用されます。

  • 数字トークンは、数字情報を含むテキストを処理する際に特に重要です。

大型言語モデルとのコミュニケーションでは、モデルは入力されたテキストを一連のトークンに分割します。これは、文章を単語やフレーズに分けるようなものです。

そして、モデルはこれらのトークンを一つずつ分析して、全体の文の意味を理解します。

さらに、モデルのトレーニング過程では、多くのトークンと、それらが異なるコンテキストでの使い方を学習しています。

モデルがテキストを生成する際にも、トークンに基づいて文章を構築します。モデルは、以前のトークンを考慮して、次に最適なトークンを予測し、連続した、合理的なテキストを生成します

このように、トークンの重要性は明らかであり、テキストを異なるタイプのトークンに分解することで、大型モデルは言語をより正確に分析し、理解し、問いに答えたり、テキストを生成したり、その他の言語関連のタスクをより高い効率と精度で実行できます。

トークンの使用量をどのように確認するか

ChatGPTにおいては、以下のウェブサイトにアクセスしてトークンの消費状況を確認できます:

https://platform.openai.com/tokenizer

よくあるLLM(モデル)のトークンサイズ


大型モデルのコンテキスト長さの一般的な影響は、大型モデルのコンテキスト長さを超えると、忘却が発生することが主な影響です。

例えば、ある大型モデルが1000文字をサポートしている場合、合計で1001文字に達した後、最初の文字の内容は忘れられます。

ここでの1001文字には、あなたの出力内容と大型モデルの出力内容が含まれます。

GPTのトークン上限は、公式リンク:
https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo


  • 通常のChatGPT Plus: 32K

  • Team(団体)サブスクリプションプラン: 32K

  • Enterprise(企業)サブスクリプションプラン: 128K

Claude2 Token上限:200K


ご参考まで、中国の百度(バイドゥ)開発したモデル「文心一言」

文心のトークン上限は以下の通りです。

  • 文心3.5: 3.6K

  • 文心4.0: 8.2K


トークンがプロンプト作成に与える影響

  1. プロンプトを作成する際には、どの大型モデルを使用するか、そのモデルのコンテキスト長さがどのくらいかを理解することが重要です。この情報を知っておくと、大型モデルが忘れるときに混乱することがありません

  2. プロンプトを設計、作成する際には、内容を明確に伝える必要がありますが、できるだけ簡潔に話すことが重要です。これにより、複数回の対話でも効率的に使用することができます。


トークン数が多いほど、なぜ難易度が高くなるのか


ここで関連する質問を探ります: なぜより多くのトークンを持つモデル(例えば32Kトークン)を処理する方が、より少ないトークンを持つモデル(例えば8Kトークン)を処理するよりもはるかに難しいのでしょうか。

この問題を一般的に説明するために、パーティーの例を使ってみましょう。

8000人のゲストを招待してパーティーを開催していると想像してみてください。ここでの各ゲストはトークンを代表しています。このパーティーでのあなたの仕事は、各人が他のすべての人と少なくとも一度は挨拶することを確認することです。これはすでにかなり大きな仕事です。

しかし、あなたのパーティーの規模が突然32000人に拡大したとします。これは、各人(各トークン)がより多くの人々(より多くのトークン)と挨拶を交わす必要があることを意味します。

明らかに、このタスクの難易度と作業量は倍増します。これが、より多くのトークンを持つモデルを処理する方が、より少ないトークンを持つモデルを処理するよりも難しい理由です。

技術的な側面では、この「挨拶」プロセスは、AIモデルのTransformerアルゴリズム内で「アテンション計算」(attention calculation)として知られています。

アテンションメカニズムでは、各トークンは他のすべてのトークンと一度計算する必要があります。したがって、トークンの数が増えると、必要な計算量は二乗で増加します。

例えば、8Kトークンの場合、約6400万回(8000×8000)のアテンション計算が必要です。32Kトークンの場合、約10.24億回(32000×32000)の計算が必要です。

これが、32Kトークンのモデルを処理する方が、8Kトークンのモデルを処理するよりもはるかに難しい理由です。さらに大規模なトークン(例えば128K)の処理は、さらに困難です。

記事に興味ある方は併せて以下のマガジンをご覧ください。
まだ更新中です~~


この記事が気に入ったらサポートをしてみませんか?