Self-Attention

Self-Attention

執筆済 AILLMTransformer

同じ系列の中で Attention を取る。 QKV がすべて同じ入力から作られる。

Q=XWQ,K=XWK,V=XWV

何ができるのか#

各トークンが系列内の他のすべてのトークンを参照できる。

「それ」が何を指すか、動詞の主語がどれか、といった 長距離の依存関係を、距離に関わらず 1 ステップで捉えられる。

RNN では距離に比例したステップ数が要り、 その間に情報が減衰していた。

Multi-Head#

1 種類の Attention では 1 つの関係しか捉えられない。 複数の「ヘッド」を並列に走らせ、結果を連結する。

MultiHead=Concat(head1,,headh)WO

ヘッドごとに異なる関係(構文的、意味的、位置的)を 学習していることが観察されている。

因果マスク#

生成モデルでは、未来のトークンを見てはいけない

maskij={0jij>i

softmax の前に を足すことで、 未来への重みを 0 にする。 これにより訓練時に全位置を並列に計算しながら、 各位置が過去だけを見る状況を再現できる。

計算量#

𝒪(T2d)

全トークン対を計算するため、系列長の 2 乗。 これが長文脈の主要な制約になっており、 FlashAttention(IO を減らす)、 疎な Attention、線形 Attention などの改良が続いている。

参考文献#

ノート一覧を閉じる