Self-Attention(自己注意機構)SA
Self-Attention は、入力系列の各トークンが同じ系列内の他のトークンとの関連度を計算する仕組みです。Query・Key・Value の3行列に射影しスコアリングすることで、文脈依存の表現を獲得します。
詳細解説
Self-Attention(自己注意機構、セルフアテンション)は、Transformer の中核となる演算で、入力系列の各位置のトークン表現を、同じ系列内のすべてのトークンとの関連度に応じて重み付き和として再構成します。各トークン埋め込みを線形変換して Query(Q)、Key(K)、Value(V) の3つの行列を作り、QK^T を次元数の平方根 sqrt(d_k) でスケーリングして softmax を適用したアテンション重みで V を加重平均する Scaled Dot-Product Attention の形式が標準です。RNN と異なり全位置を同時並列計算できるため GPU 親和性が高く、長距離依存もシングルステップで捉えられます。一方で計算量・メモリ量が系列長 N の2乗でスケールするため、長文や高解像度入力では Flash Attention・Sliding Window・Linear Attention などの最適化が用いられます。デコーダでは未来トークンを参照しないよう因果マスク(causal mask)を適用します。LLM の事実上の標準演算として、推論最適化・量子化・分散学習のあらゆる議論の出発点になります。
実装例 / 使い方
- 01BERT のエンコーダ層では Self-Attention で双方向の文脈を取り込みます
- 02GPT 系のデコーダは因果マスク付き Self-Attention で次トークンを予測します
- 03シーケンス長 N に対して計算量が O(N^2) になるため長文では工夫が要ります
関連する用語
Transformer
Transformer (トランスフォーマー) は 2017 年 Google 論文で発表された深層学習アーキテクチャで、Self-Attention 機構を核...
Multi-Head Attention(マルチヘッド注意)
MHAMulti-Head Attention は、Self-Attention を複数の「ヘッド」に分割して並列計算し結果を結合する仕組みです。各ヘッドが異なる文法...
Flash Attention(高速アテンション)
FAFlash Attention は、GPU の SRAM とタイリングを活用してアテンション行列をメモリに具体化せず計算する I/O 最適化アルゴリズムです。メ...
Positional Encoding(位置符号化)
PEPositional Encoding は、Transformer の入力埋め込みに位置情報を付与する仕組みです。Self-Attention 自体は順序を持た...
KV Cache(KVキャッシュ)
KV CacheKV Cache は、自己回帰生成中に過去トークンの Key・Value を保存して再利用する仕組みです。1トークン生成あたりの計算量が O(N^2) から O...
Self-Attention(自己注意機構)を、実際に活用する
用語の意味は分かった。次は実装。EXBANK の無料診断で、貴社で具体的にどう活用できるかをご提案します。
営業時間 平日10-18時 / 通常24時間以内に返信
