Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Flash Attention

Découvrez Flash Attention - une méthode rapide et peu gourmande en mémoire pour transformer l'attention, qui accélère l'entraînement GPU et l'inférence en temps réel pour la PNL et la CV.

Flash Attention est un algorithme hautement optimisé conçu pour accélérer l'entraînement et l'inférence des modèles Transformer en gérant plus efficacement l'accès à la mémoire . Dans l'apprentissage profond (DL) moderne, en particulier avec les grands modèles, le principal goulot d'étranglement n'est souvent pas la vitesse de calcul du processeur, mais le temps nécessaire pour transférer les données entre la mémoire de stockage et les unités de calcul. Flash Attention s'attaque à ce « mur de mémoire » en réorganisant la manière dont les mécanismes d'attention traitent les données, ce qui se traduit par des performances plus rapides et une utilisation moindre de la mémoire sans sacrifier la précision.

Comment fonctionne l'attention flash

GPU comprendre Flash Attention, il est utile d'examiner l'architecture d'un GPU unité de traitement graphique). Un GPU dispose d'une mémoire à bande passante élevée (HBM) de grande capacité mais plus lente, et d'une mémoire SRAM sur puce de faible capacité mais incroyablement rapide. Les implémentations standard de l'attention lisent et écrivent de manière répétée de grandes matrices dans la mémoire HBM lente, ce qui crée un retard.

Flash Attention utilise une technique appelée « mosaïque » pour diviser la grande matrice d'attention en blocs plus petits qui tiennent entièrement dans la SRAM rapide. En conservant ces blocs dans la mémoire rapide et en effectuant davantage de calculs avant de réécrire le résultat, l'algorithme réduit considérablement le nombre d'opérations de lecture/écriture vers la HBM. Cette innovation, introduite par des chercheurs de l'université de Stanford, rend le processus « sensible à l'E/S », ce qui signifie qu'il tient explicitement compte du coût du transfert de données. Vous pouvez explorer les détails mathématiques dans l'article de recherche original.

Distinction par rapport aux termes apparentés

Il est important de distinguer l'attention flash de concepts similaires dans le glossaire de l'intelligence artificielle (IA):

  • Attention standard : implémentation traditionnelle qui calcule la matrice d'attention complète. Elle est mathématiquement identique à l'attention flash en termes de sortie, mais est souvent plus lente et gourmande en mémoire car elle n'optimise pas les E/S mémoire.
  • Flash Attention : une optimisation exacte de l'attention standard. Elle ne fournit pas d'approximation, mais les mêmes résultats numériques, mais beaucoup plus rapidement.
  • Attention clairsemée : technique d'approximation qui ignore certaines connexions afin d'économiser de la puissance de calcul. Contrairement à l'attention flash, l' attention clairsemée sacrifie une partie de la précision au profit de la vitesse.

Pertinence dans la vision par ordinateur et YOLO

Initialement développé pour le traitement du langage naturel (NLP) afin de traiter de longues séquences de texte, Flash Attention est devenu essentiel dans le domaine de la vision par ordinateur (CV). Les images haute résolution créent d'énormes séquences de données lorsqu'elles sont traitées par des transformateurs de vision (ViT).

Cette technologie influence le développement des détecteurs d'objets. Par exemple, le projet communautaire YOLO12 a introduit des couches d'attention exploitant ces principes. Cependant, les architectures purement basées sur l'attention peuvent souffrir d'une instabilité de l'entraînement et d'une lenteur CPU . Pour la plupart des applications professionnelles, Ultralytics est la norme recommandée. YOLO26 utilise une architecture hautement optimisée qui équilibre vitesse et précision pour la détection d'objets de bout en bout et la segmentation d'images, évitant ainsi la surcharge souvent associée aux couches d'attention lourdes sur les appareils périphériques.

Applications concrètes

Les gains d'efficacité obtenus grâce à Flash Attention permettent d'utiliser des applications qui étaient auparavant trop coûteuses ou trop lentes à exécuter.

  1. IA générative à contexte long : dans le monde des grands modèles linguistiques (LLM) tels que GPT-4, Flash Attention permet au modèle de « mémoriser » de grandes quantités d'informations. Cela permet d'obtenir une fenêtre contextuelle massive, permettant aux utilisateurs de télécharger des livres entiers ou des bases de données juridiques pour résumer des textes sans que le modèle ne plante en raison des limites de mémoire.
  2. Diagnostic médical haute résolution : dans l' analyse d'images médicales, les détails comptent. Les pathologistes analysent des scans gigapixels d'échantillons de tissus. Flash Attention permet aux modèles de traiter ces images massives à leur résolution native, identifiant ainsi de minuscules anomalies telles que des tumeurs cérébrales à un stade précoce sans réduire l'image et perdre des données vitales.

Mise en œuvre avec PyTorch Ultralytics

Les cadres modernes tels que PyTorch (version 2.0+) ont intégré Flash Attention directement dans leur API fonctionnelle sous le nom de « Scaled Dot Product Attention » (SDPA). Lorsque vous entraînez un modèle à l'aide de l' ultralytics package sur un GPU pris en charge GPU comme l'architecture NVIDIA ou Hopper), ces optimisations sont appliquées automatiquement.

L'exemple suivant montre comment lancer l'entraînement sur un GPU. Si l'environnement le permet, le framework sous-jacent utilisera des noyaux Flash Attention pour accélérer le processus d'entraînement.

import torch
from ultralytics import YOLO

# Verify CUDA device availability for Flash Attention support
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Training on: {device}")

# Load the latest YOLO26 model (recommended for stability and speed)
model = YOLO("yolo26n.pt")

# Train the model; PyTorch 2.0+ automatically uses optimized attention kernels
if device == "cuda":
    model.train(data="coco8.yaml", epochs=5, imgsz=640, device=0)

À mesure que le matériel évolue, des outils tels que la Ultralytics tireront parti de ces optimisations de bas niveau pour garantir que les exécutions de formation soient aussi rentables et rapides que possible pour les développeurs.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant