Repolode
Dao-AILab

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. 1

    Instala los requisitos de compilación: packaging, psutil y ninja

  2. 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