Zubnet AIAprenderWiki › Flash Attention
Infraestrutura

Flash Attention

Também conhecido como: FlashAttention, FlashAttention-2
Uma implementação otimizada para GPU do mecanismo de atenção que é 2–4x mais rápida e usa significativamente menos memória do que a atenção padrão. O Flash Attention consegue isso não mudando o que a atenção calcula, mas reestruturando como a computação é realizada no hardware da GPU — minimizando transferências lentas de memória entre a HBM da GPU e a SRAM on-chip.

Por que isso importa

O Flash Attention é provavelmente a otimização de sistemas mais impactante na IA moderna. Tornou modelos de contexto longo práticos ao reduzir o uso de memória da atenção de quadrático para quase linear (na prática), possibilitando diretamente o salto de janelas de contexto de 4K para 128K+. Todo LLM importante o utiliza. Sem o Flash Attention, os modelos de contexto longo de hoje seriam proibitivamente caros.

Em profundidade

A percepção-chave (Dao et al., 2022): a atenção padrão materializa a matriz completa N×N de atenção na HBM (high bandwidth memory) da GPU, o que é intensivo em memória (quadrático no comprimento da sequência) e lento (a largura de banda da HBM é o gargalo). O Flash Attention nunca materializa essa matriz. Em vez disso, calcula a atenção em blocos, carregando pequenos blocos de Q, K, V na SRAM rápida on-chip, computando resultados parciais e acumulando-os — uma técnica chamada "tiling" ou "fusão de kernels".

A Economia de Memória

A atenção padrão armazena a matriz N×N de atenção, exigindo O(N²) de memória. Para um contexto de 128K com 128 cabeças de atenção, isso são centenas de gigabytes. O Flash Attention usa O(N) de memória ao computar o softmax incrementalmente e nunca armazenar a matriz completa. Isso é o que tornou janelas de contexto de 128K–1M viáveis no hardware existente. O FlashAttention-2 melhorou ainda mais o throughput ao paralelizar melhor entre os blocos de threads da GPU.

Design de Algoritmos Ciente de IO

O Flash Attention exemplifica um princípio mais amplo: no hardware moderno, o gargalo frequentemente é a largura de banda de memória, não a computação. GPUs podem realizar trilhões de operações por segundo, mas só conseguem ler/escrever centenas de gigabytes por segundo da HBM. Algoritmos que minimizam o tráfego de memória (mesmo ao custo de computação extra) frequentemente vencem. Essa abordagem "ciente de IO" está influenciando como todo o campo pensa sobre design de algoritmos para cargas de trabalho de IA.

Conceitos relacionados

← Todos os termos
← Ficha de Modelo FLOPs →