Rapport technique SageAttention2 : Attention précise sur 4 bits pour accélération de l'inférence plug-and-play.SageAttention2 Technical Report: Accurate 4 Bit Attention for
Plug-and-play Inference Acceleration
Bien que la quantification pour les couches linéaires soit largement utilisée, son application pour accélérer le processus d'attention reste limitée. SageAttention utilise une multiplication de matrices sur 8 bits, une multiplication de matrices sur 16 bits avec un accumulateur sur 16 bits, et des méthodes d'amélioration de la précision, mettant en œuvre un noyau précis et deux fois plus rapide par rapport à FlashAttention2. Pour améliorer davantage l'efficacité du calcul d'attention tout en maintenant la précision, nous proposons SageAttention2, qui utilise une multiplication de matrices sur 4 bits (Matmul) significativement plus rapide aux côtés de techniques supplémentaires d'amélioration de la précision. Tout d'abord, nous proposons de quantifier les matrices (Q, K) en INT4 avec une granularité au niveau de la vague et de quantifier les matrices (widetilde P, V) en FP8. Deuxièmement, nous proposons une méthode pour lisser Q et V, améliorant la précision de l'attention avec INT4 QK et FP8 PV. Troisièmement, nous analysons la précision de la quantification à travers les pas de temps et les couches, puis proposons une méthode de quantification adaptative pour garantir les métriques de bout en bout sur divers modèles. Les opérations par seconde (OPS) de SageAttention2 surpassent FlashAttention2 et xformers d'environ 3x et 5x sur RTX4090, respectivement. Des expériences approfondies confirment que notre approche entraîne une perte négligeable de métriques de bout en bout à travers divers modèles, y compris ceux pour le traitement de langage, la génération d'images et la génération de vidéos. Les codes sont disponibles sur https://github.com/thu-ml/SageAttention.