Перейти к основному содержимому

Чтобы получить чистое Markdown-содержимое этой страницы, добавьте .md к этому URL. Полный индекс документации см. на https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая справочник API и примеры SDK, см. на https://docs.nvidia.com/dynamo/llms-full.txt.

Router

简体中文

KV Router в Dynamo интеллектуально маршрутизирует запросы, оценивая их вычислительную стоимость на разных воркерах. Он учитывает как стоимость декодирования (по активным блокам), так и стоимость prefill (по вновь вычисляемым блокам), используя пересечение KV cache, чтобы минимизировать повторные вычисления. Оптимизация KV Router критически важна для достижения максимальной пропускной способности и минимальной задержки в распределенных конфигурациях инференса.

Быстрый старт

Чтобы запустить frontend Dynamo с KV Router:

python -m dynamo.frontend --router-mode kv --http-port 8000

Для Kubernetes задайте DYN_ROUTER_MODE=kv в сервисе Frontend. Для событийного состояния KV настройте backend-воркеры так, чтобы они публиковали события KV cache с помощью backend-специфичных флагов, описанных в разделе операции Router. Используйте --no-router-kv-events только тогда, когда нужно приблизительное прогнозирование состояния cache.

АргументПо умолчаниюОписание
--router-mode kvround-robinВключить маршрутизацию с учетом KV cache
--load-awareотключеноИспользовать маршрутизацию по активной KV-нагрузке без сигналов повторного использования cache; подразумевает --router-mode kv на frontend
--router-kv-overlap-score-credit1.0Множитель кредита для локального на устройстве пересечения префиксов, от 0.0 до 1.0
--router-prefill-load-scale1.0Масштабировать скорректированную prefill-нагрузку со стороны prompt перед добавлением блоков decode
--router-kv-events / --no-router-kv-events--router-kv-eventsПотреблять KV-события воркеров или использовать приблизительную маршрутизацию без событий
--router-queue-threshold16.0Порог очереди для backpressure; включает приоритетное планирование через nvext.agent_hints.priority
--router-queue-policyfcfsПолитика планирования очереди: fcfs (tail TTFT), wspt (avg TTFT) или lcfs (обратный порядок только для сравнения)
--no-router-track-prefill-tokensотключеноИгнорировать prefill-токены со стороны prompt при учете нагрузки router; полезно для путей маршрутизации только с decode

Автономный Router

KV router также можно запускать как автономный сервис (без frontend Dynamo). Подробнее см. в компоненте Standalone Router.

Режимы развертывания и шаги быстрого старта см. в руководстве по Router. Аргументы CLI и рекомендации по настройке см. в разделе конфигурация и настройка. Для A/B-бенчмаркинга см. руководство по A/B-бенчмаркингу KV Router.

Предварительные требования и ограничения

Требования:

  • Только динамические endpoints: KV router требует register_model() с model_input=ModelInput.Tokens. Ваш backend-обработчик получает предварительно токенизированные запросы с token_ids вместо исходного текста.
  • Backend-воркеры должны вызывать register_model() с model_input=ModelInput.Tokens (см. руководство по backend)
  • Используйте динамическое обнаружение с KV routing, чтобы router мог отслеживать экземпляры воркеров и состояние KV cache

Поддержка multimodal:

  • Маршрутизация изображений через multimodal hashes: поддерживается в документированных путях TRT-LLM и vLLM router.
  • Другие сочетания backend или modalities: прежде чем полагаться на маршрутизацию по multimodal hash, проверьте multimodal-документацию для конкретного backend.

Ограничения:

  • Статические endpoints не поддерживаются с KV routing; используйте динамическое обнаружение, чтобы router мог отслеживать экземпляры воркеров и состояние KV cache

Для базовой регистрации модели без KV routing используйте --router-mode round-robin, --router-mode random, --router-mode least-loaded или --router-mode device-aware-weighted как со статическими, так и с динамическими endpoints.

Следующие шаги