PagedAttention
Descubre cómo PagedAttention optimiza la gestión de memoria de los LLM y la eficiencia de la caché KV. Explora su impacto en el rendimiento y compáralo con el rendimiento de Ultralytics YOLO26.
PagedAttention es un algoritmo de gestión de memoria altamente eficiente diseñado para optimizar la velocidad de inferencia y el rendimiento de los modelos de lenguaje de gran tamaño (LLMs). Inspirada en los conceptos de memoria virtual y paginación de los sistemas operativos tradicionales, esta técnica aborda el enorme consumo de memoria asociado a la caché de clave-valor (a menudo denominada caché KV) durante la generación de texto. Al dividir los bloques de memoria contiguos necesarios para la caché en «páginas» más pequeñas y no contiguas, PagedAttention elimina eficazmente tanto la fragmentación interna como la externa de la memoria. Esto permite a los servidores de IA procesar por lotes muchas más solicitudes simultáneamente, maximizando la utilización de la GPU.
PagedAttention frente a Flash Attention#
Aunque ambas técnicas optimizan el rendimiento de las redes neuronales, abordan cuellos de botella diferentes. Flash Attention es una optimización a nivel de cálculo que acelera el propio mecanismo de atención al minimizar las lecturas y escrituras lentas de memoria en toda la jerarquía de la GPU. En cambio, PagedAttention es una estrategia de asignación de memoria. Se centra exclusivamente en cómo se estructura y almacena la memoria de la ventana de contexto, lo que permite un escalado dinámico sin preasignar grandes bloques de memoria innecesarios.
Aplicaciones en el mundo real#
La eficiencia de memoria que proporciona PagedAttention ha transformado la forma de desplegar en producción los modelos generativos a gran escala.
-
Servicio de API de alto rendimiento: los sistemas de producción que sirven modelos similares a GPT-4 utilizan PagedAttention mediante frameworks como vLLM. Al compartir bloques de memoria entre distintas solicitudes de los usuarios, los proveedores pueden atender hasta a cuatro veces más usuarios con el mismo hardware, reduciendo drásticamente el coste de ejecutar servicios de IA basados en la nube.
-
Estrategias de decodificación complejas: cuando un modelo de IA genera varias respuestas potenciales a la vez (como en la búsqueda de haces o el muestreo paralelo), PagedAttention permite que estas secuencias paralelas compartan de forma segura las mismas páginas de memoria fundamentales. Esto evita que el sistema duplique memoria redundante y hace que las tareas de razonamiento complejas sean significativamente más rápidas.
Eficiencia de memoria en visión artificial#
Aunque PagedAttention se utiliza principalmente en el procesamiento del lenguaje natural, el principio subyacente de optimización estricta de la memoria es igual de importante en la visión artificial (CV). Al desplegar modelos en dispositivos periféricos con recursos de hardware limitados, es esencial evitar la sobrecarga de memoria. Ultralytics YOLO26 logra de forma nativa una eficiencia de inferencia en tiempo real, evitando la necesidad de una gestión de caché pesada mediante una arquitectura integral sin NMS.
Para los desarrolladores que buscan gestionar sin complicaciones los requisitos de memoria y exportación de las canalizaciones de detección de objetos, Ultralytics Platform ofrece herramientas de despliegue automatizado que empaquetan los modelos para una ejecución óptima en el hardware.
Ejemplo de código#
PagedAttention funciona entre bastidores en los frameworks de servicio, sustituyendo las funciones de atención estándar por kernels optimizados de CUDA. A continuación se muestra un ejemplo conceptual que demuestra cómo se podría definir la atención estándar en PyTorch, que sistemas como vLLM interceptan y optimizan automáticamente mediante paginación durante el despliegue del 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}")Al aprovechar estrategias avanzadas de asignación de memoria, la industria de la IA sigue ampliando los límites de lo posible, garantizando que los enormes modelos fundacionales puedan escalarse y utilizarse de forma eficiente en todo el mundo.









