Mooncake es un sistema de capa de servicio diseñado para optimizar la ejecución de modelos de lenguaje grande separando la fase PREFILL responsable de construir el contexto inicial de la fase DECODE encargada de generar tokens. El objetivo principal es reducir la carga sobre GPU y acelerar la inferencia al reutilizar el KVCache generado durante el prefill en lugar de recalcularlo en cada petición.

Concepto clave: cuando un modelo procesa un prompt genera un KVCache que almacena los estados de atención internos necesarios para producir tokens siguientes. Ese KVCache es voluminoso y costoso de recomputar. Mooncake ofrece un almacén distribuido de memoria que permite guardar, replicar y transferir esos bloques de KVCache entre servidores con alta eficiencia, aprovechando DRAM y SSD para reducir uso de GPU y mejorar rendimiento.

Núcleo de la propuesta de valor

Separación Prefill y Decode Mooncake divide el flujo en dos fases. En Prefill el motor LLM procesa el prompt y genera KVCache. En Decode otro proceso utiliza ese KVCache ya calculado para generar tokens sin volver a realizar el trabajo previo. Esto disminuye significativamente la demanda de GPU durante la generación.

Almacén de memoria distribuido Un clúster de trabajadores ofrece una piscina compartida de DRAM y SSD donde se almacenan los objetos KVCache. Esto permite que múltiples servidores lean y reutilicen contexto precomputado.

Motor de transferencia de alta velocidad Mooncake utiliza transporte eficiente que puede apoyarse en RDMA, NVMe over Fabrics o TCP optimizado para acercar el acceso a cero copias o copias casi nulas y así conseguir gran throughput y baja latencia.

Replicación y resiliencia Los objetos KVCache se replican automáticamente entre trabajadores para evitar hotspots y garantizar disponibilidad ante fallos de nodos. Con un master activo y clientes alcanzables el sistema sigue operativo.

Gestión inteligente de memoria Mooncake incorpora políticas LRU, pinning suave para evitar la expulsión de objetos críticos y persistencia opcional en SSD para mantener previsibilidad en el uso de recursos.

APIs sencillas Se ofrecen clientes en C++ y Python que pueden integrarse como librería embebida en un servicio de inferencia o ejecutarse como proceso independiente.

Arquitectura simplificada: clúster de inferencia que ejecuta motores LLM como vLLM, motor de transferencia para mover KVCache, clúster de almacenamiento Mooncake que aloja la memoria distribuida y servidor de metadatos que registra la localización y réplicas de cada objeto.

Flujo de trabajo paso a paso

1 Prefill Un servidor LLM procesa el prompt, genera el KVCache y lo almacena en Mooncake.

2 Compartir Otro servidor consulta a Mooncake y recupera el KVCache ya disponible.

3 Decode El segundo servidor genera tokens usando el KVCache recuperado sin recomputar estados.

4 Evicción y persistencia Mooncake limpia objetos antiguos o los persiste a SSD según las políticas definidas.

Beneficios principales: mayor throughput en inferencia LLM, reducción de memoria GPU al mover KVCache a DRAM o SSD, escalado sencillo añadiendo workers, tolerancia a fallos por replicación y optimización para contextos largos y cargas multi servidor.

Guía resumida de instalación y puesta en marcha

Preparación del entorno: crear entorno virtual Python 3.10 y activar el entorno, instalar dependencias Python y paquetes CUDA compatibles con la versión de CUDA del servidor. Compilar e instalar vLLM en la versión requerida y añadir variables de entorno para LD_LIBRARY_PATH y CUDA_HOME según la instalación local. Instalar el componente de transferencia de Mooncake y configurar el archivo de configuración JSON indicando host local, servidor de metadatos, tamaño global de segmento, directorio raíz para almacenamiento y protocolo de transporte. Iniciar etcd o el servicio de metadatos elegido, arrancar el proceso master de Mooncake y ejecutar procesos PREFILL y DECODE en nodos separados o en GPUs distintas según disponibilidad. Por conveniencia se puede usar un proxy que dirija prefill y decode hacia los puertos correspondientes.

Consejos operativos y errores frecuentes

Sin memoria disponible para bloques de cache Ajustar el parámetro de gpu memory utilization a un valor mayor para reservar espacio para KVCache. Verificar antes que la GPU esté libre.

AssertionError con MooncakeStoreConnector Asegurar que las variables de entorno que controlan multiprocesamiento y compatibilidad de versiones de vLLM estén configuradas correctamente antes de arrancar Prefill.

Error de lzma en import de torchvision Ocurre cuando la versión base de Python en el servidor no dispone de la librería lzma compilada. La solución práctica es usar una versión de Python coherente con la base del sistema, por ejemplo generar el entorno virtual con Python 3.10 en lugar de 3.12 si el sistema no incluye soporte lzma para 3.12.

Problemas al importar paquetes Verificar instalación correcta de CUDA y coincidir versiones de paquetes binarios con la versión de CUDA instalada.

Ejecutar PREFILL y DECODE en la misma GPU Si solo hay una GPU no es viable ejecutar ambos procesos simultáneamente. Ejecutar solo PREFILL o disponer de otra máquina con GPU adicional para Decode y Proxy.

Ejemplo de uso: enviar una petición al servidor Prefill mediante curl o desde un script para generar el KVCache y luego invocar Decode desde otro proceso que reutilice el contexto guardado. Este patrón permite reducir tiempo por petición y mejorar escabilidad cuando se atienden muchas solicitudes similares.

Acerca de Q2BSTUDIO

En Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida para empresas que buscan soluciones personalizadas. Ofrecemos servicios en inteligencia artificial, incluyendo ia para empresas, agentes IA y soluciones de modelo a medida, junto con ciberseguridad y pentesting para proteger infraestructuras. También proporcionamos servicios cloud aws y azure y proyectos de servicios inteligencia de negocio y power bi para transformar datos en decisiones efectivas. Si su objetivo es desarrollar una plataforma o integrar capacidades LLM en producción podemos ayudarle desde el análisis hasta la entrega. Conozca nuestras soluciones de inteligencia artificial visitando servicios de inteligencia artificial y para proyectos de desarrollo consulte nuestras propuestas de software a medida y aplicaciones a medida.

Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Si desea asistencia para desplegar Mooncake en su entorno o integrar la gestión de KVCache con su stack de inferencia, el equipo de Q2BSTUDIO puede asesorarle en arquitectura, seguridad y optimización para producción.