NVIDIA lanza Dynamo v0.9.0: una revisión masiva de la infraestructura que incluye FlashIndexer, soporte multimodal y NATS y ETCD eliminados

NVIDIA acaba de lanzar Dynamo v0.9.0. Esta es la actualización de infraestructura más importante para el marco de inferencia distribuida hasta la fecha. Esta actualización simplifica la forma en que se implementan y administran los modelos a gran escala. El lanzamiento se centra en eliminar grandes dependencias y mejorar la forma en que las GPU manejan datos multimodales.

La gran simplificación: eliminar NATS y etcd

El mayor cambio en la versión 0.9.0 es la eliminación de NATS y ETCD. En versiones anteriores, estas herramientas manejaban el descubrimiento de servicios y la mensajería. Sin embargo, agregaron un “impuesto operativo” al exigir a los desarrolladores que administren clústeres adicionales.

NVIDIA los reemplazó con un nuevo Event Plane y un Discovery Plane. El sistema ahora utiliza ZMQ (ZeroMQ) para el transporte de alto rendimiento y MessagePack para la serialización de datos. Para los equipos que utilizan Kubernetes, Dynamo ahora admite el descubrimiento de servicios nativos de Kubernetes. Este cambio hace que la infraestructura sea más ágil y fácil de mantener en entornos de producción.

Soporte multimodal y división E/P/D

Dynamo v0.9.0 amplía el soporte multimodal en 3 backends principales: vLLM, SGLang y TensorRT-LLM. Esto permite que los modelos procesen texto, imágenes y videos de manera más eficiente.

Una característica clave de esta actualización es la división E/P/D (Codificación/Prellenado/Decodificación). En configuraciones estándar, una sola GPU suele encargarse de las 3 etapas. Esto puede provocar cuellos de botella durante el procesamiento intenso de vídeos o imágenes. v0.9.0 presenta la desagregación de codificadores. Ahora puede ejecutar el codificador en un conjunto separado de GPU de los trabajadores de precarga y decodificación. Esto le permite escalar su hardware según las necesidades específicas de su modelo.

Vista previa: FlashIndexer

Esta versión incluye una vista previa de FlashIndexer. Este componente está diseñado para resolver problemas de latencia en la gestión de caché KV distribuida.

Cuando se trabaja con ventanas de contexto grandes, mover datos de valor clave (KV) entre GPU es un proceso lento. FlashIndexer mejora la forma en que el sistema indexa y recupera estos tokens almacenados en caché. Esto da como resultado un tiempo hasta el primer token (TTFT) más bajo. Si bien sigue siendo una vista previa, representa un paso importante para hacer que la inferencia distribuida se sienta tan rápida como la inferencia local.

Enrutamiento inteligente y estimación de carga

Administrar el tráfico en cientos de GPU es difícil. Dynamo v0.9.0 presenta un planificador más inteligente que utiliza una estimación de carga predictiva.

El sistema utiliza un filtro de Kalman para predecir la carga futura de una solicitud en función del rendimiento pasado. También admite sugerencias de enrutamiento de Kubernetes Gateway API Inference Extension (GAIE). Esto permite que la capa de red se comunique directamente con el motor de inferencia. Si un grupo de GPU específico está sobrecargado, el sistema puede enrutar nuevas solicitudes a trabajadores inactivos con mayor precisión.

La pila técnica de un vistazo

La versión v0.9.0 actualiza varios componentes principales a sus últimas versiones estables. Aquí está el desglose de los backends y bibliotecas compatibles:

ComponentVersionvLLMv0.14.1SGLangv0.5.8TensorRT-LLMv1.3.0rc1NIXLv0.9.0Caja de tokens Rust Coredynamo

La inclusión de la caja de tokens dinamo, escrita en Rust, garantiza que el manejo de tokens siga siendo de alta velocidad. Para la transferencia de datos entre GPU, Dynamo continúa aprovechando NIXL (NVIDIA Inference Transfer Library) para la comunicación basada en RDMA.

Conclusiones clave

Desacoplamiento de infraestructura (Adiós NATS y ETCD): el lanzamiento completa la modernización de la arquitectura de comunicaciones. Al reemplazar NATS y ETCD con un nuevo plano de eventos (que utiliza ZMQ y MessagePack) y el descubrimiento de servicios nativo de Kubernetes, el sistema elimina el “impuesto operativo” de administrar clústeres externos. Desagregación multimodal completa (división E/P/D): Dynamo ahora admite una división completa de codificación/prellenado/decodificación (E/P/D) en los 3 backends (vLLM, SGLang y TRT-LLM). Esto le permite ejecutar codificadores de visión o video en GPU separadas, evitando que las tareas de codificación con gran cantidad de computación obstaculicen el proceso de generación de texto. Vista previa de FlashIndexer para reducir la latencia: la ‘vista previa’ de FlashIndexer presenta un componente especializado para optimizar la gestión de caché KV distribuida. Está diseñado para hacer que la indexación y recuperación de la “memoria” de la conversación sea significativamente más rápida, con el objetivo de reducir aún más el tiempo hasta el primer token (TTFT). Programación más inteligente con filtros Kalman: el sistema ahora utiliza una estimación de carga predictiva impulsada por filtros Kalman. Esto permite al Planificador pronosticar la carga de GPU con mayor precisión y manejar los picos de tráfico de manera proactiva, con el respaldo de sugerencias de enrutamiento de Kubernetes Gateway API Inference Extension (GAIE).

Consulte la versión de GitHub aquí. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.