À suivreGuide suivant
Déploiement de l’attention et taille des têtes
Technique
GUIDE Technique
FlashAttention is an IO-aware way to compute exact attention without materializing the full attention matrix in high-bandwidth memory.
Écoutez ce guideNarré par l'IA · ~2 min
It uses tiling and online softmax to reduce memory traffic; speed and memory gains depend on sequence length, hardware and implementation.
Standard attention compares every token to every other token, producing an N-by-N score matrix that grows quadratically with sequence length. Naively, that matrix is written to and read back from GPU high-bandwidth memory (HBM), and that shuttling — not the multiplications — is the real bottleneck. Flash Attention, introduced by Tri Dao and colleagues in 2022, reorganizes the computation so the matrix is never fully stored. It processes queries, keys, and values in small tiles that fit in fast on-chip SRAM, computes partial results, and stitches them together using an online running-softmax trick. The algorithm computes the same attention operation while reducing high-bandwidth-memory traffic and intermediate storage. It can be faster, especially on long sequences, but measured gains depend on GPU, sequence length, dtype and implementation.
Entraînement de grands modèles de langage tels que les systèmes de classe Llama et GPT avec des fenêtres de contexte plus longues à un coût de mémoire inférieur.
Servir les assistants de chat plus rapidement en accélérant l'étape de pré-remplissage où une longue invite est lue pour la première fois.
Activation d'outils d'analyse de documents qui ingèrent des livres ou des bases de code entières en rendant possible l'attention sur de longues séquences sur un seul GPU.
Alimenter des transformateurs de vision et d'audio où les entrées haute résolution créent de très longues séquences de jetons.
FlashAttention-2 and FlashAttention-3 research explores improved work partitioning, asynchronous execution, and hardware-specific low-precision paths. Results depend on the GPU, sequence length, dtype and implementation. These algorithms can reduce memory traffic for dense attention, but they do not remove the underlying query-key pair computations. Benchmark the exact training or serving workload before assuming a speedup.
Newsletter gratuite
Trois histoires d'IA vérifiées chaque matin de la semaine, écrites dans un anglais simple. Gratuit pour toujours, sans publicité.
Un e-mail chaque jour de la semaine. Désabonnez-vous en un clic. Nous ne vendons ni ne partageons jamais votre adresse.
Testez-vous
Commentaires instantanés sur chaque réponse et un certificat partageable avec une pièce d'identité vérifiable une fois que vous avez réussi un cours.
Soutenez l’enseignement gratuit de l’IA. AI Understanding est une organisation à but non lucratif 501(c)(3) : pas de publicité, pas de paywall, jamais. Faire un don
FlashAttention is an IO-aware way to compute exact attention without materializing the full attention matrix in high-bandwidth memory. It uses tiling and online softmax to reduce memory traffic; speed and memory gains depend on sequence length, hardware and implementation.
Flash Attention est sensible aux E/S : il réduit les données transférées entre la SRAM rapide sur puce et la mémoire lente à large bande passante, qui est le véritable goulot d'étranglement plutôt que l'arithmétique elle-même.
Il organise le calcul de manière à ce que chaque bloc s'insère dans une SRAM rapide, calculant et accumulant des sorties partielles sans jamais matérialiser la matrice entière dans HBM.
Le softmax en ligne conserve un maximum courant et un dénominateur courant lors de la diffusion en continu des tuiles, redimensionnant les sorties partielles précédentes afin que la normalisation finale soit exacte.
La matrice d'attention naïve évolue selon N carrés dans la mémoire, évitant ainsi son stockage complet permet de réaliser les plus grandes économies précisément lorsque les séquences sont longues.
La prise en charge des E/S signifie que l'algorithme est conçu en fonction du coût de déplacement des données dans la hiérarchie de la mémoire, minimisant ainsi le trafic HBM plutôt que les opérations arithmétiques.
Continuez à apprendre
Plus de guides sélectionnés pour ce sujet
À suivreGuide suivant
Déploiement de l’attention et taille des têtes
Technique