見出し画像

【AIとの距離感・補足】Attentionを並列で走らせる|Multi-Head Attention

この記事はAttentionの話を読んでいるとより理解しやすくなっています。
はじめての方は先にこちらをどうぞ。


🤔 Attentionをひとつだけ使う、の何が足りないのか

前の記事でAttentionの話を書いたとき、「どの単語に注目するかをスコアで決める」という仕組みを追いました。

ただ調べていくうちに、実際のTransformerではAttentionをひとつだけ使っているわけではない、とわかりました。複数のAttentionを並列で走らせている。これをMulti-Head Attentionと呼びます。

「なぜひとつじゃ足りないのか」というのが、最初に引っかかった問いでした。ひとつで全部見られるなら、それで十分じゃないのか、と。


👁️ ひとつのAttentionだと、何が起きるか

Attentionはスコアを使って「どの単語に注目するか」を決めます。でも、ひとつのAttentionが持てる「注目の仕方」はひとつだけです。

たとえば「彼女はケーキを食べた。それはとても甘かった」という文章で、ひとつのAttentionが「それ→ケーキ」という指示の関係に注目しているとします。そのとき同時に「彼女→食べた」という動作の関係や、「甘かった→ケーキ」という性質の関係にも同じくらい注目できるか、というと難しい。

ひとつの視点は、ひとつの関係を追うのに向いています。でも文章の中には、同時に追うべき関係がいくつもある。「ひとつじゃ足りない」の正体は、たぶんここでした。調べるまで気づいていなかった。

そこで「視点を増やす」という発想が出てきます。


🔭 複数の視点で同時に見る

Multi-Head Attention(マルチヘッドアテンション)は、複数のAttentionを同時に並列で走らせる仕組みです。つまり、文章を複数の「視点」から同時に見て、それぞれの結果を組み合わせることで、より豊かな理解を得る、ということです。

「Head」はAttentionのひとつひとつの単位のことです。これが複数(Multi)ある、というのが名前の由来です。

具体例①:ケーキの文章

先ほどの文章で考えると、こうなります。

  • Head 1:「それ→ケーキ」という指示の関係に注目

  • Head 2:「彼女→食べた」という動作の関係に注目

  • Head 3:「甘かった→ケーキ」という性質の関係に注目

これらを同時に並列で走らせて、最後に結果を合わせる。ひとつの視点だけでは見落としやすい関係も、複数の視点があれば補い合えます。

ひとつのAttentionが「何に注目するか」を決めるとしたら、Multi-Head Attentionは「何種類もの注目の仕方を同時に試す」イメージに近いです。

具体例②:もう少し複雑な文章

「田中さんは昨日、長年勤めた会社を辞めて、新しい仕事を始めた」という文章。

ここには「田中さん→辞めた」「田中さん→始めた」「昨日→辞めた」「長年→勤めた」など、複数の関係が絡み合っています。ひとつのAttentionでこれを全部追うのは難しい。複数のHeadがそれぞれ担当を分けて同時に追うことで、文章全体の構造が見えてくる。

この例を考えたとき「確かにこれはひとつじゃ無理だ」と少し腑に落ちました。


🔑 Query・Key・Valueという3つの役割

ここは少し込み入った話です。難しければ次のセクションに飛んでも大丈夫です。

Attentionの内部では、QueryKeyValueという3つの要素が使われています。難しそうな名前ですが、役割で考えると少し掴みやすくなります。

Queryは「何を探しているか」

Query(クエリ)は「今、何を知りたいか」を表す情報です。つまり、注目の起点となる単語が「どんな関係を探しているか」を表したものです。

Keyは「自分はこういう情報」

Key(キー)は「自分はこういう情報を持っている」を表す情報です。文章の各単語が「自分はこんな役割がある」と名乗っているイメージに近い。

Valueは「実際に渡す中身」

Value(バリュー)は「実際に渡す情報の中身」です。QueryとKeyが照合されてスコアが決まったあと、そのスコアに応じてValueが引き渡されます。

図書館で例えると、Queryは「こういう本を探している」という問い、Keyは本の背表紙のタイトル、Valueは本の中身です。タイトルが問いに合っていれば、その本の中身を取り出す。

自分はこの説明を読んで「なんとなくわかった気がするけど、正直まだふんわりしている」という感じでした。「QueryとKeyでスコアを決めて、Valueを取り出す」という流れだけ手元に残しておけば、先には進めます。


🔢 実際には何個走らせているのか

Transformerの元の論文では、8つのHeadを並列で走らせていました。つまり、8種類の視点から同時に文章を見ていた、ということです。

GPT・Claude・Geminiのような大規模なモデルでは、さらに多くのHeadが使われています。ただ、何個が最適かはモデルによって異なるそうで、研究者が調整しながら決めているようです。

「8個で十分なのか、100個だともっと賢くなるのか」が気になりましたが、単純に増やせばいいわけでもなく、計算コストとのバランスがあるそうです。そこはまだ追いきれていません。


🔗 毎日使っているAIとのつながり

ClaudeもGeminiもGPTも、このMulti-Head Attentionを使って文章を理解しています。

Claudeに文章の相談をするとき、長い文脈の中から「ここが大事」という部分を拾ってくれる感覚があります。複数のHeadがそれぞれ違う関係を同時に追っているから、ひとつの視点では見落とすような意図も拾えている。

Geminiで調べものをするときも、GPTで壁打ちをするときも、同じ仕組みが動いています。「なんでわかったんだろう」という瞬間の裏側が、少し見えた気がします。

Query・Key・Valueはまだふんわりしたままですが。

ま、いっか。


あとがき

ここまで読んでくださり、ありがとうございます。

Attentionだけでも、すごー!と思っていたところに、さらにMulti-Head Attention。
終わりがないって、こういうことを言うんですかね。ほんとうにすごいです。

メンバーシップの皆様、いつもありがとうございます!

「フォロー」や「スキ」をしていただけると励みになります!
今後ともよろしくお願いします!




いいなと思ったら応援しよう!

緑どんぐり 気に入っていただけたら、チップで応援してもらえると嬉しいです。 いただいた応援は、今後の記事作りの励みになります!

この記事が参加している募集