Yolo 深圳
深セン
今すぐ参加
用語集

フラッシュ・アテンション

フラッシュ・アテンションは、NLPやCVのためのGPU トレーニングとリアルタイム推論を高速化するTransformerアテンションのための高速でメモリ効率の良い方法です。

フラッシュ・アテンションは、Transformerモデルのパフォーマンスを高速化するために設計された高度なアルゴリズムです。 Transformerモデルのパフォーマンスを高速化するために設計された高度なアルゴリズムです。 アテンション機構がグラフィックハードウェア上のメモリにアクセスする方法を最適化することで ハードウェア上のメモリにアクセスする方法を最適化することによって、Transformerモデルのパフォーマンスを加速するように設計された高度なアルゴリズムです。の計算ボトルネックに対処するために開発されました。 ディープラーニングにおける計算上のボトルネックに対処するために開発されたこの手法は 学習と 精度を犠牲にすることなく 精度を犠牲にすることなくデータの動きをより効率的に管理することで フラッシュ・アテンションは、AIモデルがより長いデータシーケンスを処理することを可能にします。 自然言語処理(NLP) と高性能コンピュータビジョン(CV)の最新のアプリケーションに不可欠です。

フラッシュ・アテンションの仕組み

フラッシュ・アテンションの革新性の核心は「IOアウェアネス」にある。 つまり、GPU(グラフィック・プロセッシング・ユニット)上の異なるレベルのメモリ間でデータを移動するコストを明示的に考慮することだ。 つまり、GPU (グラフィック・プロセッシング・ユニット)上の異なるメモリ・レベル間でデータを移動するコストを明示的に考慮することだ。標準的なアテンション実装では 標準的なアテンション実装では、大きな中間行列はGPUHBM(High Bandwidth Memory)から頻繁に読み出され、GPUHBMに書き込まれます。 メモリ(HBM)からの読み書きが頻繁に行われます。

フラッシュ・アテンションは、タイリングと呼ばれる技術を使ってこのプロセスを再構築する。これは、大きなアテンション・マトリックスを GPU高速オンチップSRAM(スタティック・ランダム・アクセス・メモリー)に完全に収まる小さなブロックに分割します。より多くの計算を SRAM内でより多くの計算を実行し、HBMへの読み書き操作を最小限に抑えることで、メモリ帯域幅のボトルネックを軽減します。 ボトルネックを軽減します。このコンセプトは スタンフォード大学の研究者たちによって導入され、その詳細は FlashAttention.

スタンダード・アテンションとの主な違い

フラッシュ・アテンションを一般的なアテンションの概念と区別することは重要である。

  • 標準的な注意:モデルが異なる入力要素の重要性を評価する数学的操作を指す。 異なる入力要素の重要性を計量する数学的演算のこと。従来の実装は、多くの場合メモリに縛られる。 に費やされる。
  • フラッシュ・アテンション:全く同じ数学的ロジックの実装です。それは 標準的なアテンションと同じ数値出力を生成するが、はるかに高速である。
  • 近似法:スパースアテンションや、精度とスピードをトレードオフにした低ランク近似とは異なり、フラッシュアテンションは厳密なアルゴリズムです。 フラッシュ・アテンションは厳密なアルゴリズムであり、モデルの完全な精度を維持します。

コンピュータ・ビジョン・モデルにおける関連性

フラッシュ・アテンションは、言語処理分野で大規模言語モデル(LLM)のために開発されました。 ラージ・ランゲージ・モデル(LLM)の領域で生まれたものであるが ビジョン・タスクにますます不可欠になってきている。例えば ヴィジョン・トランスフォーマー(ViT)のような最新のアーキテクチャは、アテンション・レイヤーに大きく依存している。 アテンション・レイヤーに大きく依存している。

YOLO12のようなコミュニティ主導のモデルには、フラッシュ・アテンションを利用したアテンション・メカニズムが統合されている。 フラッシュ・アテンションを利用したアテンション・メカニズムが統合されている。 アーキテクチャを採用している。しかし、このようなモデルは、依然として高いメモリ消費とトレーニングの不安定性に悩まされることがある。ほとんどの 実用的なユースケースでは Ultralytics YOLO11が スピードと効率の優れたバランスを提供します。今後 YOLO26は、エンド・ツー・エンドのタスクをネイティブにサポートするよう設計されている。 タスクをネイティブにサポートするよう設計されている。

実際のアプリケーション

フラッシュ・アテンションによって、AIシステムはこれまで計算不可能だったタスクを処理できるようになる。

  1. ロングコンテクスト文書分析:自然言語処理では GPT-4のようなモデルは、フラッシュ・アテンションを利用し コンテキスト・ウィンドウを維持する。これによりAIは 書籍全体や長大な法的契約書を、以前の情報を「忘れる」ことなく一度に処理することができる。 テキストの要約能力を大幅に向上させる。
  2. 高解像度医療画像医療では 医療画像解析ではしばしば ギガピクセルの病理スライドを処理します。フラッシュ・アテンションは、このような大きな画像を、積極的なダウンスケールなしに高解像度で解析することを可能にします。 脳腫瘍などの診断に重要なディテールを維持したまま、積極的なダウンスケーリングを行うことなく 脳腫瘍

PyTorch Ultralytics実装

最新のフレームワーク PyTorch(バージョン2.0以降)のような最新のフレームワークは、Flash アテンションを機能APIに直接統合しています。高レベルライブラリを使用する場合、ハードウェアがそれをサポートしていれば、システムは自動的に最も効率的なカーネル(フラッシュアテンションのような)を選択します。 NVIDIA AmpereやHopper GPUのようにハードウェアがサポートしている場合、システムは自動的に最も効率的なカーネル(Flash Attentionのような)を選択します。

次の例は、ユーザーがこのエコシステムをどのように活用するかを示している。モデルをロードして CUDA デバイスに移動させることで、基礎となるフレームワークはモデルのトレーニング中にこれらの最適化を適用します。 適用します。

import torch
from ultralytics import YOLO

# Ensure PyTorch is using a CUDA device for GPU acceleration
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Using device: {device}")

# Load the YOLO11 model, which is optimized for efficiency
model = YOLO("yolo11n.pt")

# When training on a compatible GPU with PyTorch 2.0+,
# Flash Attention (SDPA) is utilized automatically for attention layers where applicable.
if device == "cuda":
    results = model.train(data="coco8.yaml", epochs=5, imgsz=640)

このシームレスな統合により このシームレスな統合は、Ultralytics プラットフォームを使用する開発者が、複雑なCUDAカーネルを手作業で記述することなく、最先端のアクセラレーション技術 複雑なCUDA カーネルを手作業で記述する必要がありません。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加