幻想を支える30万ドルの数式
住宅価格を予測する基本的なモデルを想像してみてください。1,000平方フィートに学習済みの「重み(weight)」である300を掛けると、30万ドルという出力が得られます。実際のニューラルネットワークはこれを大規模化し、複数の層にわたって多くの入力と重みを組み合わせます。ある層の出力が、次の層の入力となります。
これらの計算単位は「ニューロン(neurons)」であり、学習されたすべての値は「パラメータ(parameters)」と呼ばれます。この単純な掛け算は直感的な理解には役立ちますが、LLMの複雑さを過小評価しています。Llama 3 405Bのような最先端のLLMは126層を持ち、GPT-4は96から128層と推定されています。
層を積み重ねることで、モデルはより複雑なパターンを学習できるようになります。「約100層」という深さは一般的な例ですが、具体的なアーキテクチャは大きく異なります。各層は入力データを変換し、ネットワークが生のデータから特徴を抽象化できるようにします。これは、物体を認識する前に輪郭を認識するプロセスに似ています。
なぜ「bank」には周囲の言葉が必要なのか
テキストは最初から言葉として扱われるのではなく、「トークン(tokens)」として旅を始めます。これは、一般的な単語の断片や句読点を表す数値IDです。「Bank」は単一のトークンIDかもしれません。その後、専用のルックアップテーブルが各トークンIDを数値の「埋め込み(embedding)」にマッピングします。これはベクトルのリストであり、モデルが処理を開始するための有用な表現を提供します。
「bank」という単語を考えてみましょう。「川の土手(river bank)に座った」と「銀行(bank)にお金を預けた」では、その意味が劇的に変化します。固定された辞書のエントリでは、このニュアンスを捉えることはできません。モデルがこの曖昧さを解消するには、周囲の単語を考慮する必要があります。
ここで、Transformerアーキテクチャの核心的なメカニズムである「因果的自己注意(causal self-attention)」が登場します。各層の中で、特定の場所にあるすべてのトークンは、シーケンス内の先行するすべてのトークンに「注意(attend)」を向け、情報を引き出すことができます。最も関連性の高い文脈の手がかりを混ぜ合わせることで、数値表現を動的に更新するのです。
「river bank」の「bank」の場合、注意メカニズムは「river」を重視する可能性が高く、「money in the bank」では「money」に焦点を当てます。この文脈的なブレンドにより、トークンのベクトルはその特定の用法を正確に反映したものになります。このような層を約100回繰り返すと、最終的なトークンの埋め込みはメッセージ全体の完全な文脈を包含するようになり、モデルは次に続くトークンについて非常に精度の高い予測を行えるようになります。
注意が焦点を定め、MLPがパターンを見つける
LLMの核心的な計算単位であるTransformerブロックは、2つの異なる操作を行います。第一に、「注意メカニズム(attention mechanism)」がトークンの位置をまたいで情報を混合します。これにより、モデルは先行するすべての単語が現在の単語に対して持つ関連性を重み付けし、周囲の単語を考慮することで「bank」が川の土手を指すのか金融機関を指すのかといった曖昧さを解消します。
注意メカニズムがトークンを文脈化した後、「フィードフォワードネットワーク(FFN)」がそのベクトルを独立して処理します。FFNはパターン検出器だと考えてください。調整された「bank」の数値表現を受け取り、「これはお金に関するものか?」といった埋め込まれたパターンを確認します。パターンが一致すれば、FFNはその特定の概念についてモデルが学習した内容を増幅させます。Gevaらのような研究者は、これらの層が連想記憶として機能し、事実の関連付けを呼び出していることを示しています。
この簡略化された見方は本質を捉えていますが、実際のTransformerブロックにはresidual connectionsや正規化レイヤーといったメカニズムも組み込まれています。動画の例えでは分かりやすさのために省略されましたが、これらのコンポーネントは学習を安定させ、パフォーマンスを向上させます。Transformerアーキテクチャの詳細については、記念碑的な論文であるAttention Is All You Needをご覧ください。Llama 3 405Bのような現代のLLMは、最大126層ものレイヤーを活用して複雑な文脈表現を構築しています。
この記事が気に入ったら、毎朝同じようなものをメールで受け取れます。
1日1通 · 2クリックで解除 · サードパーティのトラッキングなし
一度に1トークンずつ、少しの工夫を加えて
約100層のAttentionとフィードフォワードネットワークを経た後、モデルの最後のトークン位置に対する最終的な文脈表現が出力レイヤーに到達します。このベクトルは次にlogitsに変換されます。これはモデルの語彙に含まれるすべてのトークンに対する数値スコアであり、32,000から128,000以上のユニークなトークンに及びます。その後、softmax関数がこれらのlogitsを確率に変換し、各トークンが次の単語である可能性を示します。
次に、デコーディングによって次のトークンが選択されます。最も確率の高いトークンを単純に選ぶのも一つの戦略ですが、samplingのような高度な手法ではランダム性の要素が導入され、確率分布内でより多様で創造的な出力を可能にします。この単一のトークンが入力に追加され、プロセス全体が繰り返されることで、次のトークンが順番に生成されます。
この反復的で一度に1トークンずつ処理するプロセスはautoregressive generationと呼ばれ、回答全体を構築します。重要なのは、モデルが回答全体を事前に計画しているわけではなく、前のトークンに基づいて各トークンを予測しているという点です。高度な推論モデルは、中間ステップや「思考」を生成するために推論時の計算時間を費やすことがありますが、それでも最終的な出力はトークンごとに順番に生成されます。
よくある質問
LLMはどのようにして次の単語を選択しますか?
文脈に基づいて語彙内のトークンのスコアを計算し、そのスコアとデコーディング設定に従ってトークンを選択します。
TransformerにおけるAttentionの役割は何ですか?
Attentionは、各トークンの表現が文脈内の関連するトークンを参照できるようにすることで、「川の土手(river bank)」と「銀行口座(bank account)」のような意味の違いをモデルが区別できるようにします。
LLMは人間のように考えますか?
人間のような意味では考えません。標準的なLLMは学習された計算と次トークン予測を通じてテキストを生成しますが、マルチステップの出力は推論のように見えることがあります。
LLMにおけるパラメータとは何ですか?
パラメータとは、モデルがどのように入力を変換し予測を生成するかを形作る、重みを含む学習済みの数値のことです。

