大規模言語モデル(LLM)とは、AIモデルであり、大量の言語データの集合を使って、もっともありそうなテキストの並びを処理または生成するように訓練されています。テキスト生成に使われる多くのLLMは、プロンプトを受け取り、少量の単位を一つずつ生成して応答を作ります。

言語モデルが「大規模」になる公式な規模の基準はありません。この呼び名は相対的なものです。通常は、多数の学習済みパラメータ、幅広い訓練データ、大きな計算要件、そして一つの狭い言語タスクにとどまらず対応できる能力の組み合わせを示します。

役に立つメンタルモデル

生成型LLMを、ある並びを受け取り、考えられる続きに対するスコアを返す関数だと考えてみましょう。

この並びはトークンで構成されます。トークンとは、モデルが処理するテキストの単位で、単語全体、単語の一部、句読点、その他の記号などがあります。モデルは隠れた段落を作成してから表示するのではありません。次に来る可能性のあるものをスコアリングし、トークンを一つ選び、そのトークンを並びに追加して、再び実行します。

このループが要点です:

flowchart LR
    A[Prompt and prior output] --> B[LLM scores possible next tokens]
    B --> C[One token is selected]
    C --> D[Selected token is appended]
    D --> B

したがって、モデル自身の出力が次の入力の一部になります。初期の選択が、その後のすべての選択を変える可能性があります。

このメンタルモデルは、LLMをデータベースと呼ぶより正確です。訓練によって、モデルが見たことのある素材を再現する場合はあります。しかし通常の生成は、保存された文の集合を検索して最も近いものを貼り付ける仕組みではありません。モデルは、現在の並びに対して学習済みの数値的な関係を適用します。

LLMの仕組み

LLMには、訓練と利用という二つの異なる段階があります。

事前学習では

テキストをトークンに分割します。モデルには、そのテキストから作られた予測問題が与えられます。因果言語モデルは、前にあるトークンから次のトークンを予測します。その他の言語モデルは、隠されたトークンを復元したり、ある並びを別の並びに変換したりすることで学習します。

各予測によって誤差シグナルが生じます。訓練では、より良い予測が出やすくなるよう、モデルの数値的な重みを繰り返し調整します。多くの例を通じて、これらの重みは、綴り、文法、文体、事実、コード、アイデア同士の関係に関する再利用可能なパターンを捉えます。

Transformerアーキテクチャは、各表現を計算する際に、利用可能な並びの中から関連する部分をモデルが組み合わせるのに役立ちます。これはLLMの基盤として主流のアーキテクチャですが、普遍的な定義の一部ではありません。他のアーキテクチャでも大規模言語モデルを構築できます。

事前学習によって作られるのは、必ずしも役に立つアシスタントではなく、基盤モデルです。追加の訓練によって、指示に従うこと、特定の種類の回答を好むこと、特定の要求を拒否することが上手くなる場合があります。これらの段階はモデルの振る舞いを変えますが、モデルをデータベースに変えるわけではなく、出力が真実であることを保証するわけでもありません。

生成時には

訓練済みの重みは、推論時点では固定されています。プロンプトと、その他に与えられたコンテキストはトークンに変換されます。モデルは、可能な次のトークンすべてに対するスコアを計算します。その後、ソフトウェアがデコーディング規則を使ってトークンを選びます。

毎回最もスコアの高いトークンを選ぶ方法もあります。もっともらしい複数のトークンからサンプリングする方法もあります。サンプリングを使うと、モデルの重みが変わらなくても、同じプロンプトに対して異なる応答が生成されることがあります。

トークンが選ばれると、それが並びに追加されます。モデルは、プロンプトとそれまでに生成されたすべての内容を条件として、新しい分布を計算します。生成は、モデルが停止トークンを選んだとき、出力上限に達したとき、または周囲のソフトウェアによって停止されたときに終了します。

生成の具体例

現在のテキストが次のようなものだとします:

フランスの首都は

説明のため、モデルが次に来る可能性のある4つのトークンに次の確率を割り当てたとします:

Possible next tokenIllustrative probability
Paris91%
Lyon3%
located2%
a1%

省略された可能性には、残りの確率が割り当てられています。これらの数値は仕組みを示すために作ったものであり、特定のモデルから測定したものではありません。

システムが パリを選ぶと、並びは次のようになります:

フランスの首都はパリ

モデルは今度、この長くなった並びを評価します。次のトークンとして、句読点や文を続ける単語などが考えられます。一つが選ばれると、ループが繰り返されます。

この例から、役に立つ事実が三つ分かります。

第一に、モデルには別個の「質問に答える」プログラムは必要ありません。質問、翻訳依頼、コード例、要約の指示はすべて、続きの内容からタスクが推測できるテキストとして表現できます。

第二に、確率の高い続きは、検証済みの事実と同じではありません。訓練の目的は、現実との直接的な照合ではなく、データに対する予測の適合度を高めることです。誤った記述でも、滑らかな続きになる可能性があります。

第三に、出力は経路に依存します。確率の低いトークンや誤ったトークンが選ばれると、その後のトークンはその選択を含む文脈で生成されます。モデルは誤った前提を訂正するために戻るのではなく、そこから一貫した形で続けることがあります。

LLMが多くのタスクを実行できる理由

大規模で多様な事前学習によって、モデルはさまざまな反復構造に触れます。そこには、質問に続く回答、コメントに続くコード、根拠に続く主張、完了した作業に続く指示などが含まれます。こうした構造を予測する学習によって、再利用可能な表現が作られます。

プロンプトは、モデルを使う時点でタスクを指定することもできます。望む結果を説明したり、例を提示したりすると、モデルはそれらを条件として続きを生成します。これは、タスク情報が新たな重み更新によって組み込まれるのではなく、入力として与えられるため、しばしば文脈内学習と呼ばれます。

したがって、「次のトークンを予測する」という表現は、それが生み出す振る舞いより単純に聞こえることがあります。目的は単純ですが、それを実行する学習済みの関数は単純ではありません。通常のオートコンプリートとLLMは関連する予測問題を解きますが、モデルの能力、文脈の利用方法、訓練の広さ、適用できるパターンの範囲は大きく異なります。

LLMが重要な理由

一つの事前学習済みモデルで、入力を変えることにより、文章作成、抽出、分類、翻訳、要約、質問応答、コード生成に対応できます。これにより、言語はソフトウェアの柔軟なインターフェースになります。

同じ柔軟性がリスクも生みます。LLMの出力は権威ある情報源から検索されたものではなく、生成されたものです。結果は誤っていたり、偏っていたり、一貫性がなかったり、プロンプトの言い回しに左右されたりする可能性があります。重要なのは、LLMがあるテーマを「知っている」かどうかだけではありません。信頼性は、タスク、訓練データと与えられたコンテキスト、デコーディング方法、そして周囲のシステムが行うチェックに左右されます。

LLMはAI製品の一つの層にすぎません。ユーザーアカウント、永続的な記憶、ウェブアクセス、非公開文書、行動を実行する権限を自動的に備えているわけではありません。こうした機能はモデルの周囲にあるソフトウェアによって提供されます。

よくある誤解

「LLMはチャットボットである」

LLMは、言語を処理または生成するモデルです。AIチャットボットは、LLMに会話インターフェース、指示、検索、モデレーション、メモリ、その他のソフトウェアを組み合わせた製品です。同じLLMをチャットインターフェースなしで使うこともできます。

「モデルは答えを検索している」

モデルは通常、重みと現在のコンテキストから続きを計算します。製品が別途ウェブを検索したり文書を取得したりして、その結果をプロンプトに入れることはできます。しかし、それは周囲のAIハーネスの機能であり、LLM自体が検索を実行した証拠ではありません。

「流暢な言語は、モデルが理解していることを証明する」

理解を測る単一のテストについて、研究者の意見は一致していません。LLMは有用な言語能力を示し、複雑なタスクを支える内部表現を形成できます。しかし、それだけで人間のような意味、経験、意図、または世界とのグラウンディングがあることを示すわけではありません。「理解する」をあらゆる場面で使える説明にするより、測定している振る舞いを具体的に説明するほうが明確です。

「単なるオートコンプリートなので、新しいことは何もできない」

LLMは自己回帰予測器ですが、「単なる」という言葉では重要な点が隠れてしまいます。それは、モデルが何を学習したか、そしてどれだけの文脈を条件にできるかです。訓練データに完全な文章として存在しなかったパターンを組み合わせることもできます。ただし、新しい出力であることは、その中のすべての主張が正しい証拠にはなりません。

「大規模には明確な境界がある」

パラメータ数、訓練トークン数、計算量の単位について、最低値を定める統一的な定義はありません。小規模言語モデルとLLMの境界は、利用方法や技術によって変わります。規模に関する主張は、比較対象の数量を明示して初めて意味を持ちます。

LLMがより大きなシステムの中で果たす役割

基本的な構成は次のようになります:

  1. LLMは、コンテキストを可能な言語の続きを表すものに変換します。
  2. ハーネスはコンテキストを準備し、モデルを呼び出し、データやツールに接続する場合があります。
  3. チャットボットは、そのシステムを会話として提示します。
  4. An AIエージェントは、行動を選択し、結果を確認し、目標に向かって処理を続けるループを追加します。

これらの層を分けて考えると、製品に関する主張を評価しやすくなります。「アシスタントがウェブを検索した」はシステム全体について述べています。「LLMが検索クエリを生成し、返されたテキストを解釈した」は、モデルの役割をより正確に述べています。

次に読む内容

LLMが処理する単位を理解するには、AIにおけるトークンとは何か?を読んでください。次に、1回の生成中に利用できる情報の上限についてはコンテキストウィンドウとは何か?を、モデルの重みがどのように学習されるかについてはAIにおける訓練とは何か?を、訓練済みモデルが使われるときに何が起きるかについてはAIにおける推論とは何か?を参照してください。