本章では、現代AIの中核であるTransformerの内部構造を数理的に分解し、 その最適化手法までを深く理解する。
ブラックボックスとして扱われがちなAttentionメカニズムを構造レベルで把握し、 大規模モデルの性能・効率を左右する設計思想を習得する。
1. Attentionの数理(Self-Attentionの分解)
Self-Attentionは、入力系列内の各要素同士の関係性を動的に計算するメカニズムである。 基本式は以下の通り。
Attention(Q, K, V) = softmax(QK^T / √d_k) V
- Q(Query):注目対象
- K(Key):参照対象
- V(Value):実際の情報
- d_k:次元数(スケーリング用)
この計算は以下の3ステップに分解できる。
- 類似度計算:QとKの内積
- 正規化:softmaxによる重み付け
- 集約:Vの加重和
この構造により、系列内の長距離依存関係を効率的に捉えることが可能となる。
2. Multi-Head Attentionと表現力の拡張
Transformerでは単一のAttentionではなく、複数の視点から情報を捉えるために Multi-Head Attentionが用いられる。
MultiHead(Q, K, V) = Concat(head_1, ..., head_h) W^O
各ヘッドは異なる重みを持ち、異なる関係性(文法・意味・位置)を同時に学習する。
- ヘッド数増加 → 表現力向上
- ただし計算量・メモリ増加
3. Transformerの計算量問題とFlashAttention
Self-Attentionの計算量は系列長 n に対して以下となる。
O(n^2)
この二乗スケーリングは長文処理において大きなボトルネックとなる。
■ FlashAttention
FlashAttentionは、GPUのメモリアクセスを最適化することで、 計算効率とメモリ使用量を大幅に削減する手法である。
- ブロック単位で計算(tiling)
- 中間行列を保持しない(IO-aware設計)
- 数値安定性を維持しつつ高速化
結果として、大規模LLMのトレーニングおよび推論の高速化に大きく貢献している。
4. Positional Encodingの進化(RoPE / ALiBi)
Transformerは順序情報を持たないため、位置情報を明示的に付与する必要がある。
■ 従来のPositional Encoding
- sin / cos関数による周期的エンコーディング
- 固定的で拡張性に制限あり
■ RoPE(Rotary Positional Embedding)
- ベクトル回転による位置情報付与
- 相対位置関係を自然に保持
- 長文への拡張性が高い
■ ALiBi(Attention with Linear Biases)
- Attentionスコアに線形バイアスを追加
- 追加パラメータ不要
- 長距離依存に強い
近年のLLMではRoPEやALiBiが主流となり、 長文処理性能の向上に寄与している。
5. KVキャッシュと推論最適化
推論時において、Transformerは過去トークンの計算を再利用することで効率化できる。
■ KVキャッシュの仕組み
- 各トークンのKey / Valueを保存
- 次トークン生成時に再計算を省略
これにより、計算量は以下のように変化する。
- 通常:O(n^2)
- キャッシュ利用:O(n)
■ 実務での最適化ポイント
- キャッシュサイズ管理(メモリ制約)
- バッチ推論とのトレードオフ
- ストリーミング生成対応
LLM APIやチャットシステムでは、この最適化がレスポンス速度に直結する。
まとめ
本章ではTransformerの内部構造を数理レベルで分解し、 その最適化手法までを体系的に理解した。
- Self-Attentionは関係性の重み付き集約
- Multi-Headで多視点表現を獲得
- FlashAttentionにより計算効率を改善
- RoPE / ALiBiで位置表現が進化
- KVキャッシュで推論を高速化