Stanford CS229 Spring 2026 Lecture 14: Transformers and In‑Context Learning

TL;DR

この講義では、大規模言語モデルがいかにしてテキストをトークンに変換し、Transformerを用いてトークン列を自己回帰的にモデル化し、尤度を最大化することで学習し、temperature scalingやtop‑k samplingなどの手法を用いてテキストを生成するかを説明します。また、自己注意(self-attention)の計算コストがシーケンス長に対して二次関数的に増加することについても触れます。

Tokenization

Tokenization(トークン化)は、生のテキストをTransformerが処理可能な整数のIDのシーケンスに変換します。講師は、トークン化とは最小の入力単位を選択することであると説明し、純粋な文字単位や単語単位のトークン化は非効率であると述べています。サブワード・トークン化(例:byte‑pair encoding)は、単語を再利用可能な断片に分割するため、モデルが「internationalize」と「internationalization」のような関連する単語間で理解を共有することを可能にします。結果として得られる語彙(vocabulary)は、定義済みのサブワードのリストであり、各トークンにはIDが割り当てられます。講師は、Qin 3.5のようなオープンソースモデルの語彙数は(講師の発言によれば)約250トークンであること、またCloud Codeで使用されているような一部のプロプライエタリなトークナイザーはより細分化されており、同じテキストに対するトークン数が約1,000から1,500トークンに増加していることに言及しています。

Autoregressive Probability Model

言語モデルは、連鎖律を用いてトークンシーケンス上の確率分布を定義します:p(x₁…x_T) = ∏ₜ p(x_t | x₁…x_{t‑1})。各条件付き分布は、語彙全体に対するロジットベクトルを出力するニューラルネットワークによってモデル化され、これはsoftmaxを介して確率に変換されます。結合分布を直接モデル化しようとするとV^Tの計算が必要になり、実行不可能であるため、自己回帰的な分解により、ステップごとの計算をVに対するsoftmaxに抑え、管理可能なものにしています。

Transformer Architecture

Transformerは、トークンtの計算が先行するトークンのみに依存するように計算するため、モデルは因果的(自己回帰的)です。学習中、損失は観測されたシーケンスの負の対数尤度であり、−log softmax(f_θ(x₀…x_{t‑1}))[x_t]の総和として計算されます。生成において、モデルはこれらの条件付き分布からトークンを一つずつサンプリングします。temperature scalingは分布を鋭くしたり緩やかにしたりし、top‑k samplingは考慮対象を最も可能性の高いk個のトークンに制限します。

Attention Mechanism

単一ヘッドのAttention層は、ベクトルのシーケンス(トークン埋め込み)を受け取り、新しいベクトルのシーケンスを生成します。各位置tにおいて、Query Q_t = h_t W_Q、Key K_t = h_t W_K、Value V_t = h_t W_V(すべて行ベクトル)を計算します。Attentionスコアは、すべてのソース位置sにおける内積 Q_t·K_sᵀ であり、スケーリングされた後、softmaxを通過して重み α_{t,s} を得ます。位置tにおける出力は、加重平均 ∑s α{t,s} V_s です。因果性を強制するために、マスクによってsoftmaxの前に未来の位置のスコアを −∞ に設定し、s>t に対して α_{t,s}=0 となるようにします。

Multi‑Head Attention and Masking

複数のAttentionヘッドが並列に動作し、それぞれが独自の射影行列(W_Q, W_K, W_V)を持ちます。それらの出力は結合(concatenate)され、線形射影されて最終的な層の出力が生成されます。講師は、ヘッドの数はモデルのサイズに応じて通常、数十から数百のオーダーであると述べています。自己回帰的特性を維持するために、各ヘッドの内部でマスキングが適用されます。softmaxの前に、未来のトークンに対応するスコアはすべて −∞ に置き換えられ、これはsoftmaxの後にゼロになるため、モデルが未来のトークンに注意を向けることを防ぎます。

MLP and Residual Connections

各Attention層の後、各位置のベクトルは、非線形関数(例:GeLU)を伴う2つの線形層で構成される多層パーセプトロン(MLP)を通過します。MLPはすべての位置において独立かつ同一に適用されます。残差接続(Residual connections)は層の入力を出力に加算し、その後に層正規化(layer normalization)が続きます(講師はpre‑normまたはpost‑normのバリエーションに言及しています)。このパターン(attention → add & norm → MLP → add & norm)が、複数のTransformer層にわたって繰り返されます。

Training and Generation

学習では、SGDやAdam(ブラックボックス最適化器として言及)などの最適化アルゴリズムを使用して、すべてのタイムステップにわたる負の対数尤度の総和を最小化します。生成は、文頭トークン(または与えられたプロンプト)から始まり、softmax分布から逐次的に次のトークンをサンプリングします。Temperature tはsoftmaxの前のロジットをスケーリングします:t<1は分布を鋭くし(高確率のトークンを優先)、t>1は分布を緩やかにします(多様性を増加)。Top-k samplingは、k個の最大のロジットのみを保持し、再正規化して、そのサブセットからサンプリングします。

Computational Efficiency

講師は、素朴な自己注意(naive self-attention)はすべてのペアの内積を計算する必要があり、シーケンス長をT、ヘッドの次元をd_hとすると、O(T²·d_h)の時間とメモリが必要になることを強調しています。この二次関数的な依存性は、長いコンテキスト(例:数百万トークン)に対して致命的になります。Flash Attentionのような手法は、Attention行列の一部をオンザフライで再計算することで、メモリ使用量を削減することを目指しています。講師は、代替となるAttentionのバリエーションによってTへの依存度を改善できる可能性があるが、表現力とのトレードオフになる可能性があることを述べています。


提供されたトランスクリプトのみに基づいています。外部の事実は追加されていません。

Sources