Framework para definir modelos de ponta em machine learning para texto, visão, áudio e tarefas multimodais, voltado a inferência e treinamento.
Dao-AILab/flash-attention
Implementação oficial do FlashAttention, um kernel de atenção exata e eficiente em memória para treinar e executar inferência de modelos Transformer em GPUs.
- Estrelas
- 25,163
- Forks
- 3,175
- Issues abertas
- 1,382
- Último commit
- há 13 horas
O que é?
FlashAttention é uma implementação de atenção exata para modelos Transformer que reduz o uso de memória da GPU e acelera o cálculo de atenção. A atenção padrão precisa de memória que cresce quadraticamente com o tamanho da sequência; FlashAttention calcula o mesmo resultado com memória que cresce linearmente, permitindo que sequências muito mais longas caibam na GPU.
O repositório inclui FlashAttention-2 para NVIDIA CUDA (GPUs Ampere, Ada e Hopper) e AMD ROCm, além de FlashAttention-3 para GPUs Hopper e FlashAttention-4, escrito em CuTeDSL para GPUs Hopper e Blackwell. As principais funções Python abrangem atenção padrão, de comprimento variável, com QKV empacotado e inferência com KV cache, com suporte a máscaras causais, atenção com janela deslizante, ALiBi, MQA/GQA, dropout e softcapping.
O pacote é instalado com pip e requer PyTorch e um toolkit CUDA ou ROCm. Linux é a principal plataforma compatível.
Recursos principais
- 01Calcula atenção exata com uso de memória que cresce linearmente com o tamanho da sequência.
- 02Oferece suporte a máscaras causais, atenção local com janela deslizante e ALiBi.
- 03Oferece MQA e GQA por meio de tensores KV com menos heads do que Q.
- 04Inclui um KV cache paginado e uma atualização in-place do KV cache para decodificação incremental.
- 05Oferece builds CUDA para GPUs NVIDIA e backends Triton e CK para GPUs AMD.
Casos de uso
- Treinar modelos de linguagem Transformer grandes com sequências longas em GPUs NVIDIA A100 ou H100.
- Executar inferência de LLMs com decodificação incremental e KV cache paginado.
- Executar atenção em GPUs AMD Instinct usando os backends ROCm.
Início rápido
- 1
Instale os pré-requisitos de compilação: packaging, psutil e ninja
- 2
Instale o FlashAttention pelo PyPI
pip install flash-attn --no-build-isolation
Antes de usar
- O suporte oficial é apenas para Linux; a compilação no Windows não foi bem testada.
- É necessário um kit de ferramentas CUDA ou ROCm e uma GPU compatível, como Ampere, Ada ou Hopper para CUDA.
- A compilação a partir do código-fonte pode ser lenta e consumir muita memória sem ninja e sem limitar as tarefas paralelas.
Tópicos
Perguntas frequentes
- O que é flash-attention?
- Implementação oficial do FlashAttention, um kernel de atenção exata e eficiente em memória para treinar e executar inferência de modelos Transformer em GPUs. FlashAttention é uma implementação de atenção exata para modelos Transformer que reduz o uso de memória da GPU e acelera o cálculo de atenção. A atenção padrão precisa de memória que cresce quadraticamente com o tamanho da sequência; FlashAttention calcula o mesmo resultado com memória que cresce linearmente, permitindo que sequências muito mais longas caibam na GPU.
- flash-attention é gratuito? Qual é a licença?
- flash-attention é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- flash-attention ainda é mantido?
- Manutenção ativa. O último commit de flash-attention foi em 20 de out. de 2026.
- Para que posso usar flash-attention?
- Treinar modelos de linguagem Transformer grandes com sequências longas em GPUs NVIDIA A100 ou H100. Executar inferência de LLMs com decodificação incremental e KV cache paginado. Executar atenção em GPUs AMD Instinct usando os backends ROCm.
- Como instalar flash-attention?
- Instale os pré-requisitos de compilação: packaging, psutil e ninja Instale o FlashAttention pelo PyPI: pip install flash-attn --no-build-isolation
- Onde consigo flash-attention?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Dao-AILab/flash-attention
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca de otimização de deep learning que facilita e torna mais eficiente o treinamento distribuído e a inferência de modelos grandes.
SGLang é um framework open source de inferência para servir modelos de linguagem, visão-linguagem e difusão em diversas plataformas com GPU, TPU e CPU.
Biblioteca e servidor rápidos e eficientes em memória para executar e servir modelos de linguagem grandes com uma API compatível com a OpenAI.
Um harness mínimo e fácil de modificar que cobre todo o pipeline de LLM, da tokenização ao pré-treinamento, ajuste fino, avaliação e chat, executável em um único nó com GPU.
Biblioteca Python que executa LLMs grandes camada por camada, permitindo inferência com modelos da classe 70B em uma única GPU de 4 GB, sem quantização.