PagedAttention
Saiba como o PagedAttention otimiza a gestão da memória dos LLMs e a eficiência da cache KV. Explore o seu impacto no débito e compare-o com o desempenho do Ultralytics YOLO26.
PagedAttention é um algoritmo de gestão de memória altamente eficiente, concebido para otimizar a velocidade de inferência e o débito de Modelos de linguagem de grande dimensão (LLMs). Inspirada nos conceitos de memória virtual e paginação dos sistemas operativos tradicionais, esta técnica resolve o enorme consumo de memória associado à cache de chave-valor (frequentemente designada por cache KV) durante a geração de texto. Ao dividir os blocos de memória contínuos necessários para a cache em "páginas" menores e não contíguas, a PagedAttention elimina eficazmente a fragmentação interna e externa da memória. Isto permite que os servidores de IA processem simultaneamente um número significativamente maior de pedidos em lote, maximizando a utilização da GPU.
PagedAttention vs. Flash Attention#
Embora ambas as técnicas otimizem o desempenho das redes neuronais, têm como alvo diferentes gargalos. A Flash Attention é uma otimização ao nível computacional que acelera o próprio mecanismo de atenção, minimizando as leituras e escritas lentas na hierarquia de memória da GPU. Em contrapartida, a PagedAttention é uma estratégia de alocação de memória. Concentra-se exclusivamente na forma como a memória da janela de contexto é estruturada e armazenada, permitindo um dimensionamento dinâmico sem pré-alocar blocos de memória grandes e desperdiçados.
Aplicações no mundo real#
A eficiência de memória proporcionada pela PagedAttention transformou a forma como os modelos generativos de grande escala são implementados em produção.
-
Serviço de API de alto débito: Os sistemas de produção que disponibilizam modelos semelhantes ao GPT-4 utilizam PagedAttention através de frameworks como o vLLM. Ao partilharem blocos de memória entre diferentes pedidos de utilizadores, os fornecedores conseguem servir até quatro vezes mais utilizadores no mesmo hardware, reduzindo drasticamente o custo de execução de serviços de IA baseados na cloud.
-
Estratégias de descodificação complexas: Quando um modelo de IA gera várias respostas potenciais em simultâneo (como na pesquisa em feixe ou na amostragem paralela), a PagedAttention permite que estas sequências paralelas partilhem com segurança as mesmas páginas de memória fundamentais. Isto impede o sistema de duplicar memória redundante, tornando as tarefas de raciocínio complexo significativamente mais rápidas.
Eficiência de memória em visão computacional#
Embora a PagedAttention seja utilizada principalmente no processamento de linguagem natural, o princípio subjacente de otimização rigorosa da memória é igualmente essencial na visão computacional (CV). Ao implementar modelos em dispositivos edge com recursos limitados, é essencial evitar o excesso de utilização de memória. O Ultralytics YOLO26 alcança nativamente uma eficiência de inferência em tempo real, dispensando a necessidade de uma gestão de cache pesada através da utilização de uma arquitetura de ponta a ponta sem NMS.
Para os programadores que procuram gerir de forma integrada os requisitos de memória e exportação de pipelines de deteção de objetos, a Ultralytics Platform oferece ferramentas de implementação automatizadas que empacotam os modelos para uma execução otimizada no hardware.
Exemplo de Código#
A PagedAttention funciona nos bastidores dos frameworks de disponibilização, substituindo as funções de atenção padrão por kernels CUDA otimizados. Abaixo é apresentado um exemplo conceptual que demonstra como se poderia definir a atenção padrão em PyTorch, que sistemas como o vLLM intercetam e otimizam automaticamente utilizando paginação durante a implementação do modelo.
import torch
import torch.nn.functional as F
# Simulated Key, Query, and Value tensors for a standard attention block
batch_size, num_heads, sequence_length, head_dim = 1, 8, 1024, 64
query = torch.randn(batch_size, num_heads, sequence_length, head_dim)
key = torch.randn(batch_size, num_heads, sequence_length, head_dim)
value = torch.randn(batch_size, num_heads, sequence_length, head_dim)
# Standard attention computation (often replaced by PagedAttention kernels in production LLM servers)
attention_output = F.scaled_dot_product_attention(query, key, value)
print(f"Computed attention shape: {attention_output.shape}")Ao tirar partido de estratégias avançadas de alocação de memória, a indústria de IA continua a expandir os limites do que é possível, garantindo que os enormes modelos fundamentais podem ser dimensionados e acedidos de forma eficiente em todo o mundo.









