Skip to content

LLMの核心「Attention」の仕組みを直感的に理解する

   
LLMの核心「Attention」の仕組みを直感的に理解するのGPT生成本文インフォグラフィック

LLM(大規模言語モデル)で用いられているAttentionの仕組みについて。


1. Attentionとは何か?(ひとことで言うと)

Attentionとは、「文章中の『どの単語』に『どれくらい注目すべきか』を計算し、動的に意味をつなぐ仕組み」です。

従来のモデルとの違い

  • 昔のAI: 文章を最初から順番に読むだけ。「それ」が出てきた頃には、前の文脈を忘れていることがありました。
  • Attention: 処理する瞬間に、文章全体を見渡して、関連する単語だけにスポットライトを当てます。

2. 仕組みの核心:Q, K, V(クエリ、キー、バリュー)

Attentionは、単語同士の関連性を計算するために、各単語に以下の3つの役割(ベクトル)を持たせます。

役割名前イメージ意味
QQuery虫眼鏡・検索メモ「僕と関係ある言葉はどこ?」(探す側)
KKey名札・背表紙「私はこういう役割の言葉だよ!」(探される側)
VValue本の中身・書類「私の意味(情報)はこれだよ」(実際に渡す中身)

文章中のすべての単語が、この3つ(Q, K, V)を持っています。全員が「探す側」であり、「探される側」であり、「情報源」なのです。

具体例:「私はカニが食べたい」

「食べたい」という単語が処理されるとき…

  1. Q(食べたい)の発信: 「『#食材』の特徴を持つやつはどこだ!?」
  2. K(カニ)の反応: 「はい! 私のKには『#食材』タグがついてます!」(ヒット!)
  3. V(カニ)の取り込み: 「じゃあ、君のV(カニの味・イメージ)をよこせ!」

→ これにより、「食べたい」という単語に「カニ」の意味が混ざり合い、「カニを食べる口」という具体的な文脈が生まれます。


3. 計算のプロセス(どうやって混ぜる?)

「全単語に対して計算して足し合わせる」と言われますが、単純に全部掛け算するわけではありません。「2段階の手順」が重要です。

手順①:QとKで「配合比率(重み)」を決める

まず、Q と K を掛け合わせ(内積)、相性スコア(%)を出します。これをAttention Weightと呼びます。

  • 「食べたい」のQ × 「カニ」のK = 関連度 90%
  • 「食べたい」のQ × 「私」のK = 関連度 5%

手順②:その比率で V を混ぜ合わせる

決まった比率に従って、V(中身の情報)だけを鍋に入れて煮込みます。

新しい意味 = (90% × カニのV) + (5% × 私のV) + …

DJのミキサーの例え:

  • QとKは、どの曲を流すか決める「ボリュームつまみを回す手」。
  • Vは、実際にスピーカーから流れる「音楽そのもの」。
  • 結果として、必要な音楽(V)だけが大音量で流れます。

4. 内部表現とパラメータ

ベクトルと行列

  • Q, K, Vの実体は、人間には解読不能な「数字の列(ベクトル)」です。
  • これらは、元の単語ベクトル(Embedding)に、学習済みの「変換行列 (W_Q, W_K, W_V)」を掛けることで作られます。

Multi-Head Attention(マルチヘッド)

巨大なベクトルを1つ使うのではなく、次元数を小さく分割して(例:512次元→64次元×8個)、複数の視点で計算します。

  • メリット: 文法、時間関係、代名詞など、異なる特徴を並列で捉えられる。
  • 実態: 人間に分かりやすく分担されているとは限らず、「文法60%+時間40%」のように役割が入り混じっている(Entanglement)ことが多いです。

「230B」などの数字の意味

モデルのサイズ(例:230B = 2300億パラメータ)は、主に「変換行列 W に含まれる数字の総数」を指します。
この数字が大きいほど、より複雑な文脈やニュアンスを捉えるための「計算回路」が緻密で大量にあることを意味します。


まとめ

Attentionとは Q(探す)と K(タグ)を使って「単語間の関連度」を計算し、その度合いに応じて V(意味)をブレンドする、動的な情報合成システム です。

この計算を何層にも重ね、数千億個のパラメータで行うことで、LLMは人間のような高度な言語理解を実現しています。