FlashAttentionって何?
アテンションはTransformerの「心臓」ですが、欠点があります。遅くてメモリを食う。系列が長くなると、メモリ使用量が漏れるように膨らみます。FlashAttentionは、そのアテンションを「より速く、より省メモリに」するアルゴリズム。計算の組み方を工夫し、メモリと時間を同時に減らします。何を解決するのか
メモリは系列長の2乗で増える従来のアテンションは、途方もなく大きな「アテンション行列」を丸ごと保存します。系列が2倍になればメモリは4倍にも。
頻繁な読み書きが速度を落とす
メモリ間の往復には、実は無駄が多く含まれます。
どう実現するのか
タイリング(分塊計算)行列を一気に計算せず、小さな塊に分けて高速なオンチップメモリで計算し、結果だけを残します。
再計算(Recomputation)
逆伝播に必要なものは保存せず、使うときにその場で再計算。少しの計算コストで、メモリを大幅に削減します。
データ移動を削減
遅いメモリ間の往復を減らし、GPUの力を「計算」に集中させます。
なぜ重要なのか
FlashAttentionは、ほぼすべての主要な大規模モデルの標準装備になっています。より長い文脈、より大きなモデルを現実にし、「モデルは大きくなるのに、メモリは節約できる」を支える立役者のひとつです。まとめ:FlashAttentionはアテンションを「軽く、速く」する技術。分塊で計算し、移動を減らせば、メモリも時間も節約できます。
コメント