LLM の主要な概念
"トークン" や "プロンプト" など、LLM を効果的に使うために理解しておくことが重要な、主要な概念がいくつかあります。
- プロンプト: プロンプトは、LLM に指示するために使われるテキスト文です。 文をどのように表現するかによって、得られる結果が異なります。
- トークン:トークンには、1 文字、単語の一部、または単語全体を使用できます。 一般的な単語は 1 つのトークンを使って表すことができますが、あまり一般的でない単語を表すには複数のトークンが必要です。
プロンプト
テキスト プロンプトは文です。 LLM は、複数の異なる言語を理解します。 LLM を使うために特定の言語を学習する必要なく、自分の言語でプロンプトを記述できます。 次に示すのはプロンプトの例です。
Generate an image of a pink parrot with a pirate hat. (海賊の帽子をかぶったピンク色のオウムの画像を生成する。)
Create a web app in Python that handles customers. (顧客を処理する Web アプリを Python で作成する。)
求めている内容を具体的に示すほど、よい結果が得られます。
トークン
トークンは、LLM が理解して処理できる基本単位のテキストまたはコードです。
OpenAI の自然言語モデルは、テキストの単位としての単語や文字ではなく、その中間のトークンを基にして動作します。
OpenAI には便利なトークナイザー Web サイトが用意されており、要求をトークン化する方法を理解するのに役立ちます。 詳しくは、OpenAI のトークナイザーに関するページをご覧ください。
Note
OpenAI のトークナイザー プロンプトのボックスに入力し始めると、ボックス内のトークンの合計数をカウントするカウンターが表示されます。
入力が速い場合、カウンターの更新に数秒かかる場合があります。
次の単語にはいくつのトークンが含まれるでしょう?
単語 apple
、blueberries
、Skarsgård
のトークンの数を調べてみましょう。
apple
という単語は一般的な単語であるため、表すために必要なトークンは 1 つです。 一方、単語 blueberries
を表すには、2 つのトークン (blue
と berries
) が必要です。 単語が一般的なものでない場合は、Skarsgård
のような適切な名前を表すために複数のトークンが必要になります。
このトークン表現により、AI モデルは、1 文字ずつテキストを生成する必要なしに、どの辞書でも見つからない単語を生成できます。
Note
1 文字ずつテキストを生成していたのでは、たちまち訳が分からなくなる可能性があります。
入力候補のしくみ
自然言語モデルでは、非決定論的な方法で一度に入力候補の 1 つのトークンが生成されます。
各ステップにおいて、モデルはトークンとそれに関連付けられた重みのリストを出力します。 その後、API は、その重みに基づいてリストから 1 つのトークンをサンプリングします。 重み付けが大きいトークンほど、選ばれる可能性が高くなります。
API は、選択したトークンをプロンプトに追加し、入力候補のトークンの最大長に達するまで、または新しいトークンが生成されないようにする "ストップ トークン" と呼ばれる特別なトークンをモデルが生成するまで、プロセスを繰り返します。
この非決定論的なプロセスにより、ユーザーが入力候補の要求を送信するたびに、モデルは新しい単語を生成します。
Note
各 LLM には、生成できるトークンの数に制限があります。 入力候補では、元のプロンプト内のトークンの合計数と、それらが結合されて新しく生成されるトークンに対し、この制限が適用されます。 トークンの制限について詳しくは、「Azure OpenAI Service モデル」をご覧ください。
トークンの制限が大きいほど、長い入力候補と大きなプロンプトが考慮されるようになります。