0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Multi-Head Attentionの仕組み

Posted at

1.まえがき

- こちらは以下のMulti-Head Attentionを解説するための記事です。

- まずMulti-Head AttentionTransformerの言葉を理解するのに重要な機構です。
これにより様々な言葉同士の組み合わせや表現を理解出来るようになりました。

2.構造

3.理論

- この仕組みを理解するには、想像しがたい所がありますが、なんとなくでも理解出来れば良いと思います。
- 入力はTokenizerでのToken idLinearを通して各トークン毎の第一段階としての表現を行います。
- このままだとまだ位置が分からないので、Positional Embeddingを使う事で、言葉同士の距離を使えます。
- 次にこれらは名前の通りMulti-Head Attention複数のアテンションを作成します。
- 一つのアテンションとして見て、各層毎に存在している一つの層にQ, K, VLinearにそれぞれ同じ入力を通します。
- Qこれは関連する表現の質問, Kこれは関連する表現の回答, Vこれは関連する表現の出力です。
- アテンションとして重要な所でQを一つ選択してKには他のトークンからの出力を使います、ここにMatmulを行い近似度を測ります、ScaleとMaskをしてSoftmaxを行い、使ったKの所にあるVと選択したQと一緒にMatmulを、行います。
- つまり、各トークンのQ毎に他のKVMatmulを行い近似度が高い所の表現を入れることで、複数の層を通して少しずつ他のトークンとの繋がりから言葉の理解をしていきます。
- Masked Multi-Head Attentionと言うのもあり、これは選択したQよりも後を見ないようにして、前だけを見るようにします、次の言葉を予測するように学習させるのと、出せるようにします。
- Add & Normで入力と出力を加算します。
- Feed-Forward NetworkAdd & Normを行い次の層に続きます。
- 最後の所にある、トークンの出力だけを使い、次の言葉をLinearSoftmaxに通して様々なToken idの確率を出させます。
- 出たトークンのどれかを上位から選択することで、文字が繋がります、再度入力に入れて最初から行う事で出た文字の次の文字を探します。
- これらを繰り返す事によって自由な文章の生成が可能となります。

●処理の手順例

4.まとめ

- 入力にLinearを通して表現を得て、Positional Embeddingを使う事で、QKMatmulをする時に文章の距離が近ければ、近似値が高くなるようになります。
- 各層のAttentionにあるQKVを入れていく事で、トークンの繋がりや言葉の意味を理解します。
- 文章の終わりのトークンが来たら生成を止めます。
- 各層と各トークンを通していく事で言葉の理解を可能となります、次の文字を一つ出していきます。
- またQ K Vは何度も行うと処理が大変なので、キャッシュに、出力を残す事で長くなっても直ぐに次の文字を生成する事が可能になっております。
- Masked Multi-Head AttentionLLMの生成に役立っています。
- 簡単な説明で分かりにくい所もあったと思いますが、疑問点や質問があれば聞いて下さい、ありがとうございました。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?