Sobre el proyecto
Dynamo es una capa de orquestación de código abierto que se sitúa sobre los motores de inferencia en lugar de reemplazarlos. Coordina SGLang, TensorRT-LLM y vLLM en un sistema de inferencia de múltiples nodos para cargas de trabajo de LLM, razonamiento, multimodal y generación de video. El proyecto está construido con Rust para el rendimiento y Python para la extensibilidad, y está licenciado bajo Apache 2.0.
Capacidades principales descritas en el README:
- Prefill/decode desagregados: separa el prefill y el decode en grupos de GPU escalables de forma independiente para que cada fase pueda ejecutarse en hardware adecuado a su carga de trabajo.
- Enrutamiento consciente de KV: enruta solicitudes según la carga del trabajador y la superposición de la caché KV para reducir el cómputo de prefill redundante.
- Administrador de bloques KV (KVBM): descarga la caché KV entre GPU, CPU, SSD y almacenamiento remoto para extender la longitud efectiva del contexto.
- ModelExpress: transmite pesos de modelos de GPU a GPU mediante NIXL/NVLink para acelerar los arranques en frío de nuevas réplicas.
- Planificador: un autoescalador impulsado por SLA que perfila cargas de trabajo y ajusta el tamaño de los grupos.
- Grove: un operador de Kubernetes para programación de grupos consciente de topología, incluida la colocación NVL72 entre racks, hosts y nodos NUMA.
- AISimulate: predice el comportamiento de servicio y busca configuraciones de implementación sin levantar un clúster de GPU.
- Tolerancia a fallos: comprobaciones de salud canary más migración de solicitudes en vuelo para que las fallas de trabajadores no necesariamente eliminen solicitudes de usuarios.
Las adiciones destacadas de la versión 1.0 incluyen implementación de configuración cero mediante DGDR (especificar modelo, hardware y SLA en un YAML), características de inferencia agéntica como sugerencias por solicitud para prioridad, longitud de salida esperada y prefill especulativo, metadatos de sesión e integraciones con LangChain y NeMo Agent Toolkit. También se enumeran encode/prefill/decode multimodal con caché de incrustaciones, soporte nativo de FastVideo y SGLang Diffusion para generación de video, un plugin de Kubernetes Inference Gateway y descarga de KV de nivel de almacenamiento con soporte de S3/Azure blob.
Opciones de implementación: contenedores NGC precompilados para tiempos de ejecución vLLM, SGLang y TensorRT-LLM; instalación PyPI mediante uv con extras de backend; e implementación en Kubernetes a través de Dynamo Platform, incluido un manifiesto DynamoGraphDeploymentRequest que toma modelo, backend y objetivos SLA. Existen recetas precompiladas para modelos como Qwen3-32B-FP8, DeepSeek-R1 y Kimi-K3, con guías de nube para AWS EKS, Google GKE, Azure AKS y Amazon ECS. La compilación desde el código fuente usa Rust, maturin y uv, con un devcontainer disponible.
Se documentan dos topologías de enrutamiento de solicitudes: enrutamiento de frontend nativo de Dynamo (cliente a Frontend a Router a trabajadores) y enrutamiento de API Gateway con la Extensión de Inferencia de Kubernetes Gateway API, donde una puerta de enlace llama al Plugin Selector de Endpoint de Dynamo antes de reenviar a un sidecar de frontend de trabajador. Ambas exponen una API compatible con OpenAI.
El descubrimiento de servicios usa TCP para comunicación entre componentes; en Kubernetes, CRDs y EndpointSlices manejan el descubrimiento, y etcd o NATS son opcionales para la mayoría de implementaciones. El frontend expone una especificación OpenAPI 3, y se proporciona orientación de evaluación comparativa mediante AIPerf. El README también enumera canales comunitarios que incluyen Slack, horarios de oficina, reuniones comunitarias semanales y propuestas de diseño rastreadas como problemas de GitHub.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.