optimizing-attention-flash
Optimizes transformer attention with Flash Attention for 2-4x speedup and 10-20x memory reduction. Use when training/running transformers with long sequences (u003e512 tokens), encountering GPU memory issues with attention, or need faster inference. Supports PyTorch native SDPA,
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Optimizes transformer attention with Flash Attention for 2-4x speedup and 10-20x memory reduction. Use when training/running transformers with long sequences (u003e512 tokens), encountering GPU memory issues with attention, or need faster inference. Supports PyTorch native SDPA, flash-attn library, H100 FP8, and sliding window attention.
How to use
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.