optimizing-attention-flash
Przyspeszy transformery do 4x i zmniejszy zużycie pamięci GPU o 95% dzięki Flash Attention
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Zoptymalizuj wydajność modeli transformerowych za pomocą Flash Attention. Narzędzie zapewnia 2–4-krotne przyspieszenie i 10–20-krotne zmniejszenie zużycia pamięci, szczególnie przydatne przy pracy z długimi sekwencjami (powyżej 512 tokenów) i problemach z pamięcią GPU. Obsługuje natywny PyTorch SDPA, bibliotekę flash-attn, precyzję FP8 na H100 oraz attention z przesuwającym się oknem. Idealne do trenowania i wnioskowania na dużych modelach.
Jak używać
Sprawdź wersję PyTorch — powinna być co najmniej 2.2.0. Uruchom
python -c "import torch; print(torch.__version__)"w terminalu. Jeśli masz starszą wersję, zaktualizuj PyTorch poleceniempip install --upgrade torch.Wybierz metodę integracji. Dla najprostszego podejścia użyj natywnego PyTorch SDPA (dostępny w wersji 2.2+), który automatycznie włącza Flash Attention jeśli jest dostępna. Alternatywnie zainstaluj bibliotekę flash-attn poleceniem
pip install flash-attn --no-build-isolationdla większej kontroli i dodatkowych opcji.Zaimplementuj attention w swoim modelu. W przypadku PyTorch SDPA zaimportuj
torch.nn.functionali użyj funkcjiscaled_dot_product_attention(q, k, v)zamiast ręcznego obliczania attention. Dla flash-attn zaimportujflash_attn_funci przekaż tensory w formacie [batch, seqlen, nheads, headdim].Przygotuj tensory wejściowe — query, key i value powinny być na urządzeniu CUDA i w formacie float16 lub bfloat16. Upewnij się, że sekwencja ma więcej niż 512 tokenów, aby w pełni wykorzystać optymalizacje Flash Attention.
Przetestuj wydajność za pomocą profilowania. Porównaj czas wykonania i zużycie pamięci przed i po włączeniu Flash Attention, aby potwierdzić przyspieszenie i oszczędności pamięci.
Zweryfikuj dokładność — uruchom testy aby upewnić się, że wyniki modelu pozostają zgodne z wersją bazową bez Flash Attention.