Découvrez comment Flash Attention optimise la mémoire et accélère les modèles Transformer. Découvrez comment il améliore la vision par ordinateur et pourquoi Ultralytics est le meilleur choix.
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.
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 techniques dans l'article de recherche original.
Il est important de distinguer l'attention flash de concepts similaires dans le glossaire de l'intelligence artificielle (IA):
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, certains modèles expérimentaux tels que le YOLO12, développé par la communauté, ont 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.
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.
Alors que Flash Attention est souvent une optimisation interne au sein de bibliothèques telles que PyTorch, vous pouvez facilement exploiter les modèles basés sur l'attention avec Ultralytics. L' extrait de code suivant montre comment charger un RT-DETR , qui utilise des mécanismes d'attention, pour effectuer une inférence sur une image.
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model which utilizes transformer attention
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the number of detected objects
print(f"Detected {len(results[0].boxes)} objects.")
À l'aide d'outils tels que la Ultralytics , les développeurs peuvent former et déployer ces modèles sophistiqués sans avoir à implémenter manuellement GPU complexes. La plateforme gère l' infrastructure, ce qui permet aux équipes de se concentrer sur la constitution d'ensembles de données de haute qualité et l'interprétation des résultats.