Об этом проекте

Dynamo — это открытый слой оркестрации, который располагается над движками инференса, а не заменяет их. Он координирует SGLang, TensorRT-LLM и vLLM в многоузловую систему инференса для рабочих нагрузок LLM, reasoning, мультимодальных и видеогенерации. Проект построен на Rust для производительности и Python для расширяемости и распространяется под лицензией Apache 2.0. Основные возможности, описанные в README: - Разделённые prefill/decode: разделяет prefill и decode на независимо масштабируемые пулы GPU, чтобы каждая фаза могла работать на оборудовании, подходящем для её нагрузки. - KV-осведомлённая маршрутизация: маршрутизирует запросы на основе загрузки воркеров и пересечения KV-кэша, чтобы сократить избыточные вычисления prefill. - KV Block Manager (KVBM): выгружает KV-кэш на GPU, CPU, SSD и удалённое хранилище, чтобы увеличить эффективную длину контекста. - ModelExpress: потоковая передача весов модели GPU-to-GPU через NIXL/NVLink для ускорения холодных стартов новых реплик. - Planner: автомасштабировщик на основе SLA, который профилирует рабочие нагрузки и подбирает правильный размер пулов. - Grove: оператор Kubernetes для топологически осведомлённого gang-планирования, включая размещение NVL72 по стойкам, хостам и узлам NUMA. - AISimulate: прогнозирует поведение обслуживания и ищет конфигурации развёртывания офлайн без поднятия кластера GPU. - Отказоустойчивость: канареечные проверки работоспособности плюс миграция запросов в процессе выполнения, чтобы сбои воркеров не обязательно приводили к потере пользовательских запросов. Среди нововведений версии 1.0 выделяются развёртывание без конфигурации через DGDR (указание модели, оборудования и SLA в одном YAML), возможности агентного инференса, такие как подсказки для каждого запроса о приоритете, ожидаемой длине вывода и спекулятивном prefill, метаданные сессии, а также интеграции с LangChain и NeMo Agent Toolkit. Также перечислены мультимодальные encode/prefill/decode с кэшем эмбеддингов, нативная поддержка FastVideo и SGLang Diffusion для видеогенерации, плагин Kubernetes Inference Gateway и выгрузка KV на уровне хранилища с поддержкой S3/Azure blob. Варианты развёртывания: готовые контейнеры NGC для сред выполнения vLLM, SGLang и TensorRT-LLM; установка через PyPI с помощью uv с дополнительными бэкендами; и развёртывание в Kubernetes через Dynamo Platform, включая манифест DynamoGraphDeploymentRequest, который принимает модель, бэкенд и целевые показатели SLA. Существуют готовые рецепты для таких моделей, как Qwen3-32B-FP8, DeepSeek-R1 и Kimi-K3, с облачными руководствами для AWS EKS, Google GKE, Azure AKS и Amazon ECS. Сборка из исходного кода использует Rust, maturin и uv, доступен devcontainer. Документированы две топологии маршрутизации запросов: нативная маршрутизация фронтенда Dynamo (клиент → Frontend → Router → воркеры) и маршрутизация Gateway API с Kubernetes Gateway API Inference Extension, где шлюз вызывает Dynamo Endpoint Picker Plugin перед перенаправлением на фронтенд-сайдкар воркера. Обе предоставляют API, совместимый с OpenAI. Обнаружение сервисов использует TCP для взаимодействия между компонентами; в Kubernetes обнаружение обеспечивают CRD и EndpointSlices, а etcd или NATS опциональны для большинства развёртываний. Фронтенд предоставляет спецификацию OpenAPI 3, а рекомендации по бенчмаркингу даны через AIPerf. В README также перечислены каналы сообщества, включая Slack, часы консультаций, еженедельные встречи сообщества и проектные предложения, отслеживаемые как issues на GitHub.