A memória da atenção pode ultrapassar os parâmetros do modelo porque os pesos permanecem fixos, enquanto as caches, ativações e áreas de trabalho dependentes dos tokens aumentam com o contexto e a concorrência.
Um modelo quantizado pode caber confortavelmente na RAM ou VRAM de um servidor doméstico, mas prompts longos, vários utilizadores em casa, entradas multimodais ou lotes grandes podem ainda causar pressão sobre a memória. O ficheiro do modelo descreve os pesos persistentes, não o conjunto de trabalho completo da inferência. A atenção cria estado específico de cada pedido para todos os tokens retidos e pode exigir buffers temporários cujo pico depende do runtime. As secções abaixo distinguem a memória fixa dos parâmetros da memória dependente da sequência e identificam quando esta última se torna o verdadeiro limite de capacidade.
Os parâmetros do modelo formam uma base fixa após o carregamento
Os pesos do modelo ocupam uma quantidade previsível de memória quando o seu número e formato numérico são conhecidos. Um modelo de quatro bits utiliza menos armazenamento para os parâmetros do que uma versão de oito bits ou de ponto flutuante, embora os metadados do runtime e as escalas acrescentem alguma sobrecarga.
A arquitetura Transformer utiliza os mesmos parâmetros aprendidos para um prompt curto e para um prompt longo. A dimensão ocupada pelos parâmetros não duplica simplesmente porque o utilizador adiciona mais contexto.
Esta base fixa explica por que razão o tamanho do ficheiro do modelo é útil para uma verificação inicial de compatibilidade. Não é uma estimativa completa da memória máxima necessária para a inferência.
A atenção completa pode criar trabalho intermédio que cresce com o quadrado da sequência
A autoatenção convencional compara as posições dos tokens entre si. Se uma implementação materializar grandes matrizes de pontuações e probabilidades de atenção, as suas dimensões crescem com o quadrado do comprimento da sequência.
O FlashAttention identifica a memória de atenção quadrática como um problema central das sequências longas e evita armazenar a matriz completa, calculando a atenção em blocos.
Por isso, os kernels modernos e otimizados de inferência podem utilizar muito menos memória temporária do que a fórmula ingénua sugere. O trabalho de atenção subjacente continua a tornar-se mais exigente com sequências longas, mas a escolha da implementação determina se a matriz completa, com crescimento quadrático, aparece na memória do dispositivo.
A área de trabalho máxima também pode variar consoante a versão do kernel, a forma do lote, a dimensão das cabeças e o facto de o runtime recorrer ou não a um caminho de atenção menos eficiente.
A cache KV acrescenta estado persistente para cada token retido
A descodificação autoregressiva armazena as chaves e os valores dos tokens anteriores para que o modelo não tenha de recalcular todo o prefixo antes de gerar cada token seguinte.
O PagedAttention trata o crescimento da cache KV como uma limitação principal da memória ao servir modelos. A sua capacidade aumenta com os tokens retidos, as camadas que produzem a cache, as dimensões de chave e valor, a precisão e o número de sequências ativas.
Ao contrário de uma matriz de atenção temporária, este estado tem de permanecer disponível durante toda a conversa ativa. Um contexto longo pode, portanto, continuar a consumir memória mesmo quando o modelo produz apenas um novo token de cada vez.
A explicação da ZimaSpace sobre a margem de memória para IA distingue o armazenamento do modelo da capacidade adicional necessária para o contexto e para vários utilizadores em simultâneo.
Os pedidos simultâneos multiplicam o estado dinâmico da atenção
Vários utilizadores podem partilhar uma única cópia dos pesos do modelo, mas os seus prompts privados, tokens gerados e ramificações da cache KV permanecem normalmente separados.
O vAttention utiliza alocação física dinâmica porque os comprimentos dos pedidos e os tempos de conclusão não são conhecidos quando o serviço começa.
Um servidor que suporta uma conversa de 32 000 tokens pode não suportar quatro conversas desse tipo em simultâneo. O tamanho do lote e o número de utilizadores multiplicam o estado dependente dos tokens, embora o total de parâmetros do modelo permaneça inalterado.
A partilha de prefixos pode reduzir a duplicação quando os pedidos têm um prefixo em cache idêntico, mas as conversas domésticas divergentes continuam a exigir um estado de continuação independente.
As ativações e as reservas do runtime aumentam ainda mais o pico
O pré-preenchimento do prompt, a projeção multimodal, a descodificação especulativa, a captura de grafos, a conversão temporária de tensores e as áreas de trabalho das bibliotecas podem alocar memória para além dos pesos e da cache KV.
O FlashAttention-2 observa que a atenção continua a ser um gargalo para sequências longas, mesmo quando kernels melhores eliminam grandes intermediários materializados.
Os alocadores de memória com cache das frameworks podem manter blocos libertados para reutilização, pelo que as ferramentas do dispositivo podem apresentar uma grande ocupação do processo depois de concluído um pedido de pico. Essa reserva é diferente da memória dos tensores ativos, mas continua a limitar outro processo.
A memória mais elevada observada pode, por isso, ocorrer durante o pré-preenchimento ou a mudança de modelo, e não durante a descodificação estável de um token de cada vez.
As otimizações da atenção deslocam o limite, mas não o eliminam
A atenção Flash reduz a E/S temporária e o armazenamento de matrizes, a alocação paginada reduz a fragmentação da cache KV, uma precisão inferior da cache reduz os bytes por token e a atenção com consultas agrupadas utiliza menos cabeças de chave e valor.
A atenção com consultas agrupadas reduz a memória das cabeças de chave e valor, mantendo mais capacidade do que uma única cabeça de múltiplas consultas.
Janelas deslizantes, expulsão da cache, transferência para outro dispositivo e recuperação podem limitar ou deslocar o estado da atenção, mas cada uma destas opções altera a latência, o contexto acessível ou o comportamento das respostas.
Faça testes com toda a carga de trabalho prevista: precisão do modelo, comprimento real do prompt, limite de saída, tamanho do lote, utilizadores, tokens de visão e outros serviços locais. A memória da atenção ultrapassou a dos parâmetros quando reduzir o estado dos tokens ou a concorrência restaura a estabilidade sem alterar os pesos do modelo.
FAQ
A memória da atenção ultrapassa sempre a memória dos pesos do modelo?
Não. Prompts curtos de um único utilizador deixam frequentemente os pesos como o componente dominante. O estado da atenção torna-se dominante apenas quando o contexto, o processamento em lote ou a concorrência ultrapassam um limiar específico do modelo e do runtime.
O FlashAttention elimina a memória da cache KV?
Não. Reduz a computação da atenção e o tráfego temporário de memória. O serviço autoregressivo continua a precisar do estado retido de chaves e valores, a menos que o runtime o recalcule, expulse ou transfira.
A RAM do sistema pode resolver uma falta de memória para a atenção?
Pode suportar a inferência no CPU ou a transferência para outro dispositivo em runtimes compatíveis, mas mover o estado ativo através de uma ligação mais lenta pode aumentar a latência e reduzir a velocidade de geração.
Centro de Tecnologia e IA
Mais para Ler

Porque é que as previsões da casa inteligente se tornam menos precisas após mudanças sazonais na rotina?
As rotinas sazonais alteram a relação entre o tempo, os sensores, a ocupação e as ações pretendidas, tornando obsoleto um modelo treinado com hábitos...

Porque é que um NVR doméstico não regista eventos breves quando o seguimento de objetos está ativado?
O seguimento precisa de deteções suficientes para iniciar e confirmar uma trajetória, pelo que um objeto que apareça brevemente pode desaparecer antes de o...

Porque é que as etiquetas de fotografias geradas por IA mudam após uma atualização do modelo?
Uma atualização do modelo altera a representação e a classificação utilizadas para atribuir etiquetas, pelo que a mesma fotografia pode ultrapassar diferentes limites semânticos...

