Transformer Explainer: LLMアーキテクチャの視覚的ガイド
Transformer Explainerは、GPT-2 (small) アーキテクチャのインタラクティブな視覚的ウォークスルーを提供し、大規模言語モデル (LLM) がどのようにテキストを処理し、トークンを予測するかを解明します。
ジョージア工科大学の研究者によって開発されたこのツールを使用すると、ユーザーは独自のテキストを入力し、トークンが埋め込み、アテンションメカニズム、MLP層をどのように通過するかをリアルタイムで観察できます。この実装では、Andrej Karpathy氏のnanoGPTから派生し、ONNX Runtimeに変換されたライブのGPT-2 (small) モデルを利用しており、SvelteとD3.jsを介してブラウザ上で直接実行されます。
Transformerアーキテクチャの核心
テキスト生成Transformerは、次トークン予測の原則に基づいて動作します。アーキテクチャは、埋め込み、Transformerブロック、出力確率の3つの主要な段階で構成されています。
1. 埋め込み: テキストをベクトルに変換
埋め込みは、生のテキストをモデルが処理できる数値形式に変換し、4つのステップで実行されます。
- トークン化: 入力テキストはトークン(単語またはサブワード)に分割されます。GPT-2は50,257個のユニークなトークンの語彙を使用します。
- トークン埋め込み: 各トークンは、約3900万個のパラメータからなる行列から768次元のベクトルにマッピングされます。これにより、意味的に類似したトークンが高次元空間内で近くに配置されるようになります。
- 位置エンコーディング: Transformerはシーケンスを逐次ではなく並列に処理するため、モデルは入力の順序を維持するために各トークンに位置情報を追加します。
- 最終的な埋め込み: トークンと位置のエンコーディングが合計され、最終的な表現が作成されます。
2. Transformerブロック
GPT-2 (small) のようなモデルは、複数のTransformerブロック(合計12個)を積み重ねて、入力のより高次の表現を構築します。各ブロックは2つの主要なコンポーネントで構成されています。
マルチヘッド自己アテンション
自己アテンションにより、トークン同士が通信し、文脈的な関係を捉えることができます。これは、クエリ (Q)、キー (K)、値 (V) 行列を通じて実現されます。
- クエリ (Q): 情報を求めるトークンを表します。
- キー (K): クエリが注目できる可能性のあるトークンを表します。
- 値 (V): QとKの一致が見つかったときに抽出される実際のコンテンツを含みます。
これらのベクトルは、複数の「ヘッド」(GPT-2 smallでは12個)に分割され、異なる言語的特徴(構文的特徴と意味的特徴など)を並列に捉えます。モデルはマスク付き自己アテンションを使用して、トレーニングや推論中にモデルが将来のトークンを「覗き見」することを防ぎ、現在の位置より左側にあるトークンのみに注目するようにします。
多層パーセプトロン (MLP)
アテンションがトークン間で情報をルーティングする一方で、MLPは各トークンの表現を個別に洗練させます。これは、GELU活性化関数を用いた2つの線形変換を使用します。最初の変換では次元を768から3072に拡大して複雑なパターンを捉え、2番目の変換で768に戻します。
3. 出力確率
最後のTransformerブロックの後、表現は50,257次元の空間(語彙サイズ)に投影され、ロジットが生成されます。これらのロジットは、ソフトマックス関数を介して確率分布に変換されます。
出力の多様性を制御するために、サンプリング中に3つのハイパーパラメータが使用されます。
- 温度 (Temperature): 確率分布を調整します。温度が低い(<1)とモデルは決定論的になり、高い(>1)とランダム性と「創造性」が増します。
- Top-k: 候補を最も可能性の高い $k$ 個のトークンに制限します。
- Top-p: 累積確率がしきい値 $p$ を超える最小のトークンセットに候補を制限します。
補助的なパフォーマンス機能
トレーニング中の安定性と効率を確保するために、Transformerはいくつかの補助的なメカニズムを採用しています。
- 層正規化 (Layer Normalization): 特徴量全体で入力を正規化し、内部共変量シフトを防ぐことでトレーニングを安定させます。
- ドロップアウト (Dropout): トレーニング中にニューロンをランダムに非アクティブ化し、過学習を防ぐ正則化手法です。
- 残差接続 (Residual Connections): 層の入力を出力に加算するショートカットであり、深いネットワークにおける勾配消失問題を軽減します。
技術的な洞察とコミュニティの視点
Transformer Explainerに関するコミュニティの議論では、アーキテクチャのいくつかの重要なニュアンスが強調されています。
動的なネットワーク構築
コミュニティからの洞察の一つは、アテンションメカニズムが推論中に本質的に小規模な単層ネットワークを動的に構築しているという点です。ユーザーの @andblac 氏は次のように述べています。
"アテンション行列はすでに計算されており、値ベクトルと乗算されています。これは、アテンション行列がその層の重みを形成する通常のネットワークの密結合層(Dense layer)に値ベクトルを押し込むのと全く同じように動作します。" — @andblac
アーキテクチャの進化
GPT-2は優れた教育的ベースラインとして機能しますが、ユーザーは現代のLLMが進化していることに注意を促しています。具体的には、GPT-2で使用されている絶対位置エンコーディングは、最先端のモデルではRotary Positional Embeddings (RoPE) のようなより柔軟な手法に大部分が置き換わっています。
リソースの負荷
ブラウザでライブモデルを実行するため、一部のユーザーからはハードウェアへの大きな負荷が報告されており、Chromebookのような低スペックデバイスではRAM使用量が多く(最大2.2 GB)、パフォーマンスが低下するという報告がありました。
Sources
関連
- Dispatch
- プロジェクト
- Dispatch
- Dispatch
- Dispatch