Чтобы получить чистое 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 kv | round-robin | Включить маршрутизацию с учетом KV cache |
--load-aware | отключено | Использовать маршрутизацию по активной KV-нагрузке без сигналов повторного использования cache; подразумевает --router-mode kv на frontend |
--router-kv-overlap-score-credit | 1.0 | Множитель кредита для локального на устройстве пересечения префиксов, от 0.0 до 1.0 |
--router-prefill-load-scale | 1.0 | Масштабировать скорректированную prefill-нагрузку со стороны prompt перед добавлением блоков decode |
--router-kv-events / --no-router-kv-events | --router-kv-events | Потреблять KV-события воркеров или использовать приблизительную маршрутизацию без событий |
--router-queue-threshold | 16.0 | Порог очереди для backpressure; включает приоритетное планирование через nvext.agent_hints.priority |
--router-queue-policy | fcfs | Политика планирования очереди: 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.
Следующие шаги
- Руководство по Router: режимы развертывания, быстрый старт и карта страниц
- Концепции маршрутизации: модель стоимости и поведение выбора воркера
- Фильтрация Router: пригодность кандидатов, фильтрация DP-rank и обработка перегрузки по порогу занятости
- Конфигурация и настройка: флаги router, режимы транспорта и метрики
- Disaggregated Serving: конфигурации маршрутизации prefill и decode
- Операции Router: реплики, постоянное хранение и восстановление
- Примеры Router: использование Python API, примеры K8s и пользовательские шаблоны маршрутизации
- Тестирование Router: уровни тестирования от модульных тестов Rust до replay на фикстурах и полного process E2E
- Автономный Indexer: запуск KV indexer как отдельного сервиса для независимого масштабирования
- Дизайн Router: детали архитектуры, алгоритмы и режимы транспорта событий