Sobes.tech
Senior

O que é o FlashAttention e qual é o ganho de memória que oferece?

sobes.tech IA

Resposta da IA

O FlashAttention é um algoritmo otimizado para calcular o mecanismo de atenção em transformadores, que reduz significativamente o consumo de memória e acelera os cálculos em comparação com a abordagem clássica.

A ideia principal do FlashAttention é calcular a atenção sem armazenar explicitamente grandes matrizes de resultados intermediários (por exemplo, a matriz de pesos de atenção QK^T), usando processamento em blocos e uso eficiente da memória cache da GPU. Isso permite reduzir o consumo máximo de memória aproximadamente em 3-4 vezes, o que é especialmente importante ao treinar grandes modelos de linguagem (LLM) com sequências longas.

Mais ou menos, se a atenção clássica requer memória O(N^2) para uma sequência de comprimento N, o FlashAttention reduz essa carga por meio de cálculos em tempo real e otimizações, permitindo executar modelos com contextos maiores nas mesmas GPUs.

Assim, o FlashAttention é uma maneira de tornar a atenção mais eficiente em memória e velocidade, o que é crítico para modelos de grande escala.