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 のトークナイザー プロンプトのボックスに入力し始めると、ボックス内のトークンの合計数をカウントするカウンターが表示されます。

入力が速い場合、カウンターの更新に数秒かかる場合があります。

次の単語にはいくつのトークンが含まれるでしょう?

単語 appleblueberriesSkarsgård のトークンの数を調べてみましょう。

apple という単語は一般的な単語であるため、表すために必要なトークンは 1 つです。 一方、単語 blueberries を表すには、2 つのトークン (blueberries) が必要です。 単語が一般的なものでない場合は、Skarsgård のような適切な名前を表すために複数のトークンが必要になります。

このトークン表現により、AI モデルは、1 文字ずつテキストを生成する必要なしに、どの辞書でも見つからない単語を生成できます。

Note

1 文字ずつテキストを生成していたのでは、たちまち訳が分からなくなる可能性があります。

入力候補のしくみ

自然言語モデルでは、非決定論的な方法で一度に入力候補の 1 つのトークンが生成されます。

各ステップにおいて、モデルはトークンとそれに関連付けられた重みのリストを出力します。 その後、API は、その重みに基づいてリストから 1 つのトークンをサンプリングします。 重み付けが大きいトークンほど、選ばれる可能性が高くなります。

n 個の入力トークンを表す複数の正方形ブロック、それらの横にある矢印、それが指している 1 つの出力トークンを表す 1 つの正方形を示す図。

API は、選択したトークンをプロンプトに追加し、入力候補のトークンの最大長に達するまで、または新しいトークンが生成されないようにする "ストップ トークン" と呼ばれる特別なトークンをモデルが生成するまで、プロセスを繰り返します。

この非決定論的なプロセスにより、ユーザーが入力候補の要求を送信するたびに、モデルは新しい単語を生成します。

Note

各 LLM には、生成できるトークンの数に制限があります。 入力候補では、元のプロンプト内のトークンの合計数と、それらが結合されて新しく生成されるトークンに対し、この制限が適用されます。 トークンの制限について詳しくは、「Azure OpenAI Service モデル」をご覧ください。

トークンの制限が大きいほど、長い入力候補と大きなプロンプトが考慮されるようになります。