Framework para definir modelos de aprendizaje automático de última generación de texto, visión, audio y modalidades múltiples, para inferencia y entrenamiento.
Dao-AILab/flash-attention
Implementación oficial de FlashAttention, un kernel de atención exacta y eficiente en memoria para entrenar e inferir con modelos Transformer en GPU.
- Estrellas
- 25,163
- Forks
- 3,175
- Issues abiertos
- 1,382
- Último commit
- hace 9 horas
¿Qué es?
FlashAttention implementa la atención exacta para modelos Transformer, reduce el uso de memoria de la GPU y acelera el cálculo de atención. La atención estándar requiere una cantidad de memoria que crece cuadráticamente con la longitud de la secuencia; FlashAttention obtiene el mismo resultado con un consumo de memoria que crece linealmente, lo que permite procesar secuencias mucho más largas en una GPU.
El repositorio incluye FlashAttention-2 para NVIDIA CUDA (GPU Ampere, Ada y Hopper) y AMD ROCm, además de FlashAttention-3 para GPU Hopper y FlashAttention-4, escrito en CuTeDSL para GPU Hopper y Blackwell. Las funciones principales de Python cubren la atención estándar, de longitud variable, con QKV empaquetado y la inferencia con KV-cache, y admiten máscaras causales, atención con ventana deslizante, ALiBi, MQA/GQA, dropout y softcapping.
El paquete se instala con pip y requiere PyTorch y un toolkit de CUDA o ROCm. Linux es la plataforma principal compatible.
Funciones clave
- 01Calcula la atención exacta con un consumo de memoria que crece linealmente con la longitud de la secuencia.
- 02Admite máscaras causales, atención local con ventana deslizante y ALiBi.
- 03Ofrece MQA y GQA mediante tensores KV con menos cabezas que Q.
- 04Incluye una KV-cache paginada y una actualización in-place de la KV-cache para la decodificación incremental.
- 05Ofrece compilaciones CUDA para GPU NVIDIA y backends Triton y CK para GPU AMD.
Casos de uso
- Entrenar modelos de lenguaje Transformer grandes con secuencias largas en GPU NVIDIA A100 o H100.
- Servir inferencias de LLM con decodificación incremental y una KV-cache paginada.
- Ejecutar atención en GPU AMD Instinct mediante los backends de ROCm.
Inicio rápido
- 1
Instala los requisitos de compilación: packaging, psutil y ninja
- 2
Instala FlashAttention desde PyPI
pip install flash-attn --no-build-isolation
Antes de usarlo
- Solo tiene soporte oficial en Linux; la compilación en Windows no está bien probada.
- Necesita un kit de herramientas CUDA o ROCm y una GPU compatible; para CUDA, por ejemplo, Ampere, Ada o Hopper.
- La compilación desde el código fuente puede ser lenta y consumir mucha memoria si no se usa ninja y no se limita el número de tareas paralelas.
Temas
Preguntas frecuentes
- ¿Qué es flash-attention?
- Implementación oficial de FlashAttention, un kernel de atención exacta y eficiente en memoria para entrenar e inferir con modelos Transformer en GPU. FlashAttention implementa la atención exacta para modelos Transformer, reduce el uso de memoria de la GPU y acelera el cálculo de atención. La atención estándar requiere una cantidad de memoria que crece cuadráticamente con la longitud de la secuencia; FlashAttention obtiene el mismo resultado con un consumo de memoria que crece linealmente, lo que permite procesar secuencias mucho más largas en una GPU.
- ¿flash-attention es gratuito? ¿Qué licencia tiene?
- flash-attention es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿flash-attention sigue mantenido?
- Mantenimiento activo. El último commit de flash-attention fue el 20 oct 2026.
- ¿Para qué puedo usar flash-attention?
- Entrenar modelos de lenguaje Transformer grandes con secuencias largas en GPU NVIDIA A100 o H100. Servir inferencias de LLM con decodificación incremental y una KV-cache paginada. Ejecutar atención en GPU AMD Instinct mediante los backends de ROCm.
- ¿Cómo se instala flash-attention?
- Instala los requisitos de compilación: packaging, psutil y ninja Instala FlashAttention desde PyPI: pip install flash-attn --no-build-isolation
- ¿Dónde consigo flash-attention?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Dao-AILab/flash-attention
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una biblioteca de optimización de deep learning que facilita y hace más eficiente el entrenamiento distribuido y la inferencia de modelos grandes.
SGLang es un framework de inferencia de código abierto para servir modelos de lenguaje, visión y difusión en diversas plataformas GPU, TPU y CPU.
Biblioteca y servidor rápidos y eficientes en memoria para ejecutar y servir modelos de lenguaje grandes mediante una API compatible con OpenAI.
Un entorno mínimo y fácil de modificar que cubre todo el flujo de trabajo de los LLM, desde la tokenización y el preentrenamiento hasta el ajuste fino, la evaluación y el chat, en un único nodo con GPU.
Biblioteca de Python que ejecuta modelos de lenguaje grandes capa por capa para que los modelos de 70B puedan inferir en una sola GPU de 4 GB, sin cuantización.