Présentation de Flash-MSA

Flash-MSA est une implémentation open-source de l'attention sparse Minimax (MSA) pour l'entraînement de modèles de traitement de langage. Cette implémentation est conçue pour fonctionner sur les GPU Hopper et Blackwell avec le framework CuTeDSL.

Architecture de Flash-MSA

Flash-MSA présente plusieurs différences clés par rapport à l'attention sparse Deepseek. Tout d'abord, elle utilise une sparsité par blocs de 128, ce qui introduit des propriétés de mise en cache pour les noyaux. Ensuite, elle utilise la formule GQA (Generalized Query Attention) au lieu de MLA (Multi-Head Attention) pour l'attention principale. Enfin, elle permet une spécialisation groupée des têtes de proxy, ce qui augmente l'expressivité de l'attention principale.

Fonctionnement de Flash-MSA

Le fonctionnement de Flash-MSA peut être divisé en deux parties : l'attention proxy et l'attention principale. L'attention proxy est responsable de la sélection des blocs de clés et de valeurs à utiliser pour l'attention principale. L'attention principale est une attention sparse qui utilise les blocs sélectionnés pour calculer les poids d'attention.

KL Divergence Loss = ∑[p_t * log(p_t/p_px,t)]

La perte de divergence de KL est calculée en utilisant la formule ci-dessus, où p_t est la distribution de probabilité principale et p_px,t est la distribution de probabilité proxy.

Implémentation et performances

L'implémentation de Flash-MSA est conçue pour minimiser les répétitions de travail et maximiser l'utilisation des ressources GPU. Les résultats montrent que Flash-MSA peut atteindre des performances supérieures à celles des implémentations existantes de l'attention sparse.