GUIDE IA du langage

FlashAttention

FlashAttention est un algorithme économe en mémoire qui calcule exactement la même attention que les transformateurs standards, mais sans jamais écrire la matrice d'attention géante pour ralentir la mémoire du GPU.

2 minutes de lectureDernière mise à jour

Aperçu

It made long-context training and inference dramatically faster and cheaper.

Plongée profonde

L'attention standard calcule un score pour chaque paire de jetons, produisant une matrice N par N. Pour une séquence de 4 000 jetons, cela représente 16 millions de scores, et la matrice doit être écrite et relue à partir de la mémoire à large bande passante (HBM) du GPU. Ce trafic de mémoire, et non les calculs, est le véritable goulot d'étranglement. FlashAttention, introduit par Tri Dao et ses collègues en 2022, restructure le calcul de sorte que la matrice ne soit jamais entièrement matérialisée. Il traite la séquence en tuiles qui s'insèrent dans la minuscule SRAM ultra-rapide du GPU, calculant le softmax progressivement au fur et à mesure. Le résultat est mathématiquement identique à l'attention standard mais utilise beaucoup moins de mémoire et s'exécute plusieurs fois plus rapidement, permettant des fenêtres contextuelles beaucoup plus longues.

Aperçu technique

L'astuce est le « softmax en ligne » combiné au carrelage. FlashAttention charge de petits blocs de requêtes, de clés et de valeurs dans SRAM, calcule les résultats d'attention partielle et redimensionne les sommes cumulées à mesure que de nouveaux blocs arrivent afin que la normalisation softmax reste correcte sans voir tous les scores en même temps. Parce qu'il ne stocke jamais la matrice N par N complète dans HBM, la mémoire évolue de manière linéaire plutôt que quadratique, et le noyau est fusionné en une seule opération GPU pour minimiser les lectures et écritures lentes de la mémoire.

Impact stratégique

Vitesse et échelle

Les flux de travail linguistiques peuvent évoluer plus rapidement sans sacrifier la cohérence.

Accès et portée

Il étend l’accès à toutes les langues et styles de communication.

Décisions plus claires

Les équipes peuvent consacrer plus de temps au jugement tandis que l’automatisation gère les répétitions.

L'avenir de FlashAttention

FlashAttention est devenu un élément de base par défaut. FlashAttention-2 a amélioré le partitionnement du travail du GPU et FlashAttention-3 exploite les nouvelles fonctionnalités matérielles de Hopper telles que l'asynchronie et le FP8 de faible précision. Attendez-vous à une co-conception continue avec des puces, à une intégration plus approfondie dans les serveurs d'inférence pour les documents longs et à des variantes adaptées pour une attention clairsemée ou à fenêtre glissante. Alors que les fenêtres contextuelles s'orientent vers des millions de jetons, les noyaux compatibles IO comme celui-ci restent essentiels pour maintenir les coûts de formation et de service gérables.

Mise en œuvre dans le monde réel

Entraîner des modèles de langage volumineux tels que les systèmes de type Llama et GPT plus rapidement et à moindre coût GPU

Servir des assistants de discussion à long contexte qui ingèrent des livres ou des bases de code entiers sans manquer de mémoire

Accélérer les pipelines de synthèse de documents qui traitent des dizaines de milliers de jetons à la fois

Alimenter les transformateurs de vision et multimodaux où de longues séquences de patchs d'images rendent l'attention coûteuse

Risques et garde-fous

Les faits hallucinés peuvent discrètement entrer dans des rapports, des flux de support ou des résultats de recherche.

La sensibilité des invites peut créer des résultats incohérents pour des demandes similaires.

Les données textuelles sensibles peuvent être exposées si les contrôles d’accès sont faibles.

Feuille de route de mise en œuvre

1

Définissez le format de sortie, le ton et les normes de qualité avant le déploiement.

2

Établissez des réponses auprès de sources fiables chaque fois que la précision est importante.

3

Gardez un point de contrôle d’examen humain pour les résultats à enjeux élevés.

4

Suivez les modèles de défaillance et recyclez régulièrement les invites ou les flux de travail.

Continuez à explorer

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the FlashAttention quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Démarrer le quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Guide suivant

Incrustations de positions rotatives

Questions fréquemment posées

What is FlashAttention?

FlashAttention est un algorithme économe en mémoire qui calcule exactement la même attention que les transformateurs standards, mais sans jamais écrire la matrice d'attention géante pour ralentir la mémoire du GPU. Cela a rendu la formation et l’inférence sur un contexte long considérablement plus rapides et moins chères.

Quel est le principal goulot d’étranglement ciblé par FlashAttention dans l’attention standard ?

L'attention standard est liée à la mémoire : le déplacement de l'énorme matrice N par N vers et depuis une mémoire à large bande passante domine le temps, et non l'arithmétique elle-même.

Comment le résultat de FlashAttention se compare-t-il à l'attention standard ?

FlashAttention calcule exactement les mêmes valeurs d'attention ; il réorganise simplement le calcul pour éviter de matérialiser la matrice complète.

Quelle mémoire GPU FlashAttention exploite-t-il en traitant les données en tuiles ?

FlashAttention charge de petites tuiles dans la SRAM rapide sur puce du GPU, gardant le travail lourd à proximité des unités de calcul.

Quelle technique permet à FlashAttention de calculer softmax sans voir tous les scores en même temps ?

Un softmax en ligne maintient les maximums et les sommes en cours, redimensionnant les résultats partiels à mesure que de nouvelles tuiles arrivent afin que la normalisation finale soit correcte.

De quoi FlashAttention-3 a-t-il spécifiquement profité ?

FlashAttention-3 a été co-conçu avec des GPU Hopper modernes, utilisant une exécution asynchrone et un FP8 de basse précision pour des accélérations supplémentaires.