FlashAttention representa un avance en la optimización de mecanismos de atención al ser consciente de E/S en lugar de solo de cómputo. La autoatención estándar tiene una complejidad temporal y espacial O(n²), lo que la hace prohibitivamente costosa para secuencias largas. FlashAttention aborda esto dividiendo el cálculo de atención en mosaicos y fusionando kernels para minimizar las lecturas/escrituras de memoria entre la memoria de alto ancho de banda (HBM) de la GPU y la SRAM en el chip. Este enfoque logra resultados de atención exactos (no aproximados) mientras usa significativamente menos memoria y es más rápido. Para los desarrolladores que trabajan en grandes modelos de lenguaje o cualquier arquitectura basada en transformers, comprender FlashAttention es crucial para escalar eficientemente a contextos más largos.
Este artículo ofrece una inmersión profunda en FlashAttention, un mecanismo de atención exacta consciente de E/S que reduce significativamente los costos de memoria y cómputo para secuencias largas. Explica el problema de complejidad cuadrática de la atención estándar y cómo las técnicas de división en mosaicos y fusión de kernels de FlashAttention lo superan.