Czym jest FlashAttention i jakie zyski pamięciowe zapewnia?
sobes.tech AI
Odpowiedź od AI
FlashAttention to zoptymalizowany algorytm obliczania mechanizmu uwagi (attention) w transformatorach, który znacznie zmniejsza zużycie pamięci i przyspiesza obliczenia w porównaniu z klasycznym podejściem.
Główną ideą FlashAttention jest obliczanie uwagi bez jawnego przechowywania dużych macierzy wyników pośrednich (np. macierzy wag uwagi QK^T), korzystając z przetwarzania blokowego i efektywnego wykorzystania pamięci podręcznej GPU. Pozwala to zmniejszyć szczytowe zużycie pamięci o około 3-4 razy, co jest szczególnie ważne podczas trenowania dużych modeli językowych (LLM) z długimi sekwencjami.
Przybliżenie, jeśli klasyczna uwaga wymaga pamięci O(N^2) dla sekwencji długości N, FlashAttention zmniejsza to obciążenie dzięki obliczeniom na bieżąco i optymalizacjom, co pozwala uruchamiać modele z większymi kontekstami na tych samych GPU.
W ten sposób, FlashAttention to sposób na uczynienie uwagi bardziej efektywną pod względem pamięci i szybkości, co jest krytyczne dla dużych modeli.