Saiba como o PagedAttention otimiza a gestão da memória dos LLM e a eficiência do cache KV. Explore o seu impacto no rendimento e compare-o com o desempenho Ultralytics .
O PagedAttention é um algoritmo de gestão de memória altamente eficiente, concebido para otimizar a velocidade de inferência e o rendimento 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 ao cache chave-valor (frequentemente referido como cache KV) durante a geração de texto. Ao dividir os blocos de memória contínuos necessários para o cache em «páginas» menores e não contíguas, o PagedAttention elimina eficazmente a fragmentação de memória interna e externa. Isto permite que os servidores de IA processem em lote um número significativamente maior de pedidos simultaneamente, maximizando GPU .
Embora ambas as técnicas otimizem o desempenho das redes neurais, elas visam diferentes pontos de estrangulamento. O Flash Attention é uma otimização ao nível da computação que acelera o próprio mecanismo de atenção ao minimizar leituras e gravações lentas de memória em toda GPU . Em contrapartida, o PagedAttention é uma estratégia de alocação de memória. Centra-se exclusivamente na forma como a memória para a janela de contexto é estruturada e armazenada, permitindo um dimensionamento dinâmico sem a pré-alocação de blocos de memória grandes e ineficientes.
A eficiência de memória proporcionada pelo PagedAttention transformou a forma como os modelos generativos de grande escala são implementados em produção.
Embora o PagedAttention seja utilizado principalmente no processamento de linguagem natural, o princípio subjacente da otimização rigorosa da memória é igualmente crucial na visão computacional (CV). Ao implementar modelos em dispositivos periféricos com recursos de hardware limitados, é essencial evitar o excesso de memória. Ultralytics alcança eficiência de inferência em tempo real de forma nativa, contornando a necessidade de uma gestão pesada da cache através da utilização de uma arquitetura de ponta a ponta, NMS.
Para os programadores que pretendem gerir de forma integrada os requisitos de memória e exportação dos fluxos de trabalho de deteção de objetos, a Ultralytics oferece ferramentas de implementação automatizadas que empacotam modelos para uma execução ideal em hardware.
O PagedAttention opera em segundo plano nas estruturas de serviço, substituindo as funções de atenção padrão por Cuda otimizados. Segue-se um exemplo conceptual que demonstra como se pode definir a atenção padrão no PyTorch, que sistemas como o vLLM interceptam automaticamente e otimizam 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, o setor da IA continua a expandir os limites do que é possível, garantindo que os modelos fundamentais de grande escala possam ser dimensionados e acedidos de forma eficiente em todo o mundo.
Comece sua jornada com o futuro do aprendizado de máquina