TransformerとRNNの根本的な違いは何ですか?
根本的な違いは処理順序にあります:
この根本的な違いにより、TransformerはほぼすべてのNLPタスクでRNNを上回り、GPTやClaudeなどの現代LLMを生み出しました。
Attentionスコアはどのように計算されますか?
簡略化した計算フロー:
このプロセスはシーケンス内のすべての単語に対して実行され、完全に並列化できます。
ClaudeのコンテキストウィンドウとAttention機構にはどんな関係がありますか?
関係は直接的です。Self-Attentionはシーケンス内のすべての単語ペアについて計算が必要なため、計算量はシーケンス長に対して二乗で増加(O(n²))します。コンテキストウィンドウが長いほど、計算コストが高く、応答が遅く、メモリ要件も大きくなります。
これが、理論上は無限にできても実際のモデルにコンテキストウィンドウの上限がある理由です——能力と計算可能性のトレードオフです。また、非常に長いコンテキストで序盤のコンテンツが出力への影響力を失う理由も説明します:Attentionが多すぎる単語に分散し、個々の単語の影響力が希薄化されるのです。
なぜ「Attention Is All You Need」と言うのですか?Transformerは他のコンポーネントも使いますよね?
そうです——論文のコア主張は、Self-Attentionだけで言語の長距離依存関係を処理するのに十分であり、RNNのステップごとの記憶伝播機構が不要になるというものです。
ただし、Transformerは「Attentionのみ」ではありません。位置エンコーディング(Position Encoding:Attention自体は語順を認識しないため、位置情報を別途注入する必要がある)、フィードフォワードニューラルネットワーク層(FFN:Attention後の非線形変換)、残差接続(Residual Connection)、層正規化(Layer Norm)も含まれます。
タイトルの「All You Need」は「RNNの再帰的構造はもう必要ない」という意味であり、他のコンポーネントは依然として必要です。タイトルには若干の誇張がありますが、コアの主張は正しいです。
「彼女は本を手に取り、それをバッグに入れた——『それ』は何を指しますか?」とClaudeに聞くと、Claudeは「バッグ」ではなく正しく「本」と答えます。この一見シンプルな能力の背後にあるのが、現代AIの最も重要なイノベーション:アテンション(Attention)機構です。
アテンションを理解することは、Claudeがなぜ時に優れた性能を発揮し、時に長文で誤りを犯すのかを理解することに直結し、Claudeが重要な情報を「気づきやすい」プロンプトの書き方にも役立ちます。
アテンション機構の登場前、言語モデルは主にRNN(再帰型ニューラルネットワーク)に依存していました。RNNは単語ごとに読み進める読者のように機能し、最初の単語から順番に処理しながら「これまで読んだ情報」を固定サイズのベクトルに圧縮して次のステップに渡します。
問題は明白です:長い文では、序盤の情報が後からの情報に繰り返し上書きされ、文末までにほぼ消えてしまいます。これが長距離依存問題です。文の冒頭にある単語が文末の解釈に影響する必要がある場合、そのシグナルは何度もの圧縮を生き延びなければならず、ステップごとに弱まっていきます。
2017年、Google Brainの論文「Attention Is All You Need」が根本的な変革を提案しました:順番に読む代わりに、すべての単語が同時に他のすべての単語を「見て」、どの単語により多くの注意を向けるかを決定するというものです。
「銀行家は預金のため川岸に歩いて行った」という文を考えます。「銀行」は文脈によって金融機関にも川岸にもなります。アテンション機構はどうやってこれを解決するのでしょうか?
Self-Attentionは文中の各単語に3つのベクトルを生成します:
- Query(クエリ):「私はどんな情報を探していますか?」
- Key(キー):「私はどんな情報を提供できますか?」
- Value(バリュー):「あなたが私を選んだとき、私の実際の内容は何ですか?」
「銀行」がQueryベクトルを計算するとき、他のすべての単語のKeyベクトルとの内積(類似度計算)を行います。「預金」のKeyベクトルは「銀行」のQueryと強くマッチし、高いAttentionスコアを得ます。「川岸」はこの文脈ではマッチ度が低くなります。
「銀行」の新しい表現は、すべての単語のValueベクトルの加重平均となります——Attentionスコアが高い単語ほど多く貢献し、低い単語は少なく貢献します。これがAttentionによって「銀行」が金融機関として理解される仕組みです。
単一のQuery/Key/Valueセットは一度に一種類の関係しか捉えられません。Multi-Head Attention(マルチヘッドアテンション)は、複数(12個や32個など)の独立したアテンション計算を同時に実行し、各「ヘッド」が異なる種類の関係を学習します。
同じ文の中で:
- あるヘッドは統語的依存(主語→動詞)に特化するかもしれません
- 別のヘッドは意味的関連性(動物語→動作語)を学習するかもしれません
- さらに別のヘッドは照応関係(代名詞→指示対象の名詞)を追跡するかもしれません
すべてのヘッドの出力は結合され、線形層を通じて最終的な表現に統合されます。この設計によりTransformerは複数の次元で同時にテキストを理解でき、単一RNNの線形読み取りよりはるかに豊かな表現が可能になります。
アテンション機構はいくつかの重要なブレークスルーをもたらしました:
並列計算:順番に処理しなければならないRNNと異なり、Self-Attentionは文中のすべての単語ペア間の関係を同時に計算でき、訓練速度を劇的に向上させ、大規模コーパスでの訓練を可能にしました。
任意距離の依存関係:2つの単語が文中でどれだけ離れていても、Self-Attentionは直接の接続を確立できます——ステップごとのシグナル伝播も、距離による減衰もありません。
部分的な解釈可能性:Attentionスコアは可視化できます。研究者は特定の出力を生成する際にモデルがどのコンテキスト単語を「最も重視した」かを見ることができ、RNNのブラックボックスよりも透明です。
スケーラビリティ:Transformerアーキテクチャは膨大なパラメータ数への拡張を自然にサポートします。GPT、Claude、Geminiなどの大規模言語モデルはすべてTransformerの後継であり、数千億から数兆のパラメータで大規模テキストデータを訓練しています。
アテンションを理解することでClaudeの使い方が改善されます:
重要な情報はプロンプトの冒頭か末尾に置く:研究では、長いコンテキストでモデルが中間部分への注意が相対的に低くなる「中間での消失」効果が示されています。最も重要な指示や制約はプロンプトの冒頭に置くか、末尾で明示的に再述してください。
コンテキストの曖昧さを解消する:アテンションはコンテキストを使って曖昧さを解消します。コンテキスト自体が曖昧であれば、モデルは推測するしかありません。シナリオを明示し(「ソフトウェア開発の文脈で」「非技術者向けに」)、アテンションに明確なシグナルを与えましょう。
非常に長いコンテキストでのアテンション希薄化:アテンション関係の数はコンテキスト長の二乗で増加します。非常に長いコンテキストでは、序盤のコンテンツが生成に与える影響が低下します。長文書を扱う際に覚えておくべき構造的制約です。