Attention éclair


Définition

Ce concept regroupe différentes approches algorithmiques pour augmenter la performance en temps d'exécution et/ou en mémoire du mécanisme d'attention original.

Il existe différentes implémentations qui dépendent entre autres de l'organisation matérielle des processeurs graphiques, souvent pour un fabricant en particulier.

Compléments

Les couches d'auto-attention permettent de comprendre les relations contextuelles entre les données d'entrée. Cependant, la consommation maximale de mémoire des processeurs graphiques pour les couches d'auto-attention augmente quadratiquement avec la longueur de la séquence d’entrée. Ainsi, l'algorithme d'auto-attention classique devient rapidement prohibitif en termes de mémoire pour les longs contextes d'entrée.

Afin de résoudre ce problème, Tri Dao et al. ont inventé en 2022 l'algorithme d'attention éclair (FlashAttention) dont le coût en mémoire n'augmente que linéairement avec la longueur de la séquence d'entrée. Évidemment, l’algorithme d’attention éclair est un peu plus lent. En contrepartie, l'attention-éclair est plus rapide en inférence que l'attention classique car elle réduit considérablement les accès mémoires plus lents du processeur graphique en se concentrant plutôt sur la mémoire vive statique (SRAM) qui est plus rapide.

Le mécanisme d'attention éclair basé sur le lightning attention s'exécute en temps linéaire alors que le mécanisme d'attention original d'exécution en temps quadratique. Cette amélioration est basée sur la normalisation du gradient pour lutter contre l'explosion du gradient et l'utilisation privilégiée de la diagonale de la matrice d'attention c.-à-d. les segments textuels voisins pour lutter contre l'évanescence du gradient.

Français

attention éclair

attention flash Calque de l'anglais

Anglais

FlashAttention Proposition originale de Tri Dao et al. (2022)

flash attention

lightning attention

Sources

- arxiv - Qin & al. 2023 - Lightning Attention

- arxiv - Tri Dao et al. (2022) - FlashAttention

Source: Medium