Чтобы получить чистое Markdown-содержимое этой страницы, добавьте .md к этому URL. Полный индекс документации см. на https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая справочник API и примеры SDK, см. на https://docs.nvidia.com/dynamo/llms-full.txt.
Справочное руководство
Справочное руководство
Обзор
Бэкенд vLLM в Dynamo интегрирует движки vLLM в распределенную среду выполнения Dynamo, обеспечивая дезагрегированное обслуживание, маршрутизацию с учетом KV и отмену запросов. Dynamo использует нативные события KV-кеша vLLM, механизмы передачи на основе NIXL и отправку метрик.
Dynamo vLLM использует нативный парсер аргументов vLLM: все аргументы движка vLLM передаются напрямую. Dynamo добавляет собственные аргументы для режима дезагрегации, передачи KV и эмбеддингов промпта.
Справочник аргументов
Бэкенд vLLM принимает все аргументы движка из исходного проекта vLLM, а также аргументы, специфичные для Dynamo. Авторитетным источником всегда остается CLI:
python -m dynamo.vllm --help
Вывод --help организован в следующие группы:
- Dynamo Runtime Options — Namespace, бэкенд discovery, плоскость запросов/событий, типы endpoint, парсеры tool/reasoning и пользовательские шаблоны чата. Эти параметры общие для всех бэкендов Dynamo и используют переменные окружения
DYN_*. - Dynamo vLLM Options — режим дезагрегации, выбор токенизатора, sleep mode, мультимодальные флаги, конфигурация пайплайна vLLM-Omni, headless mode и ModelExpress. Эти параметры используют переменные окружения
DYN_VLLM_*. - vLLM Engine Options — все нативные аргументы vLLM (
--model,--tensor-parallel-size,--kv-transfer-config,--kv-events-config,--enable-prefix-cachingи т. д.). См. документацию по аргументам vLLM serve.
Парсеры Tool и Reasoning
Используйте --dyn-tool-call-parser и --dyn-reasoning-parser, чтобы сопоставить формат вывода модели, когда модель выдает вызовы tool и/или содержимое reasoning. Текущие поддерживаемые значения описаны в парсинге Tool Call (Dynamo) и парсинге Reasoning (Dynamo).
Эмбеддинги промпта
Dynamo поддерживает эмбеддинги промпта vLLM: предварительно вычисленные эмбеддинги обходят токенизацию в Rust-фронтенде и декодируются в тензоры в worker.
- Включаются с помощью
--enable-prompt-embeds(по умолчанию отключено) - Эмбеддинги отправляются как PyTorch-тензоры в кодировке base64 через поле
prompt_embedsв Completions API - Для больших эмбеддингов NATS должен быть настроен на максимальный payload 15MB (уже задано в развертываниях по умолчанию)
Согласованность хеширования для событий KV
При использовании маршрутизации с учетом KV обеспечьте детерминированное хеширование во всех процессах, чтобы избежать расхождений в radix tree. Выберите один из следующих вариантов:
- Задайте
PYTHONHASHSEED=0для всех процессов vLLM, если вы полагаетесь на встроенное хеширование Python для prefix caching. - Если ваша версия vLLM это поддерживает, настройте детерминированный алгоритм prefix caching:
vllm serve ... --enable-prefix-caching --prefix-caching-algo sha256
См. общие заметки о детерминированных идентификаторах событий в дизайне Router.
Корректное завершение работы
Воркеры vLLM используют механизм корректного завершения работы в Dynamo. При получении SIGTERM или SIGINT:
- Отмена регистрации в discovery: worker удаляется из service discovery, поэтому новые запросы больше не маршрутизируются к нему
- Льготный период: выполняющимся запросам разрешается завершиться (настраивается через
DYN_GRACEFUL_SHUTDOWN_GRACE_PERIOD_SECS, по умолчанию 5s) - Очистка ресурсов: освобождаются ресурсы движка и временные файлы (каталоги Prometheus, адаптеры LoRA)
Все конечные точки vLLM используют graceful_shutdown=True, то есть перед выходом они ждут завершения выполняющихся запросов. Внутренний VllmEngineMonitor также проверяет работоспособность движка каждые 2 секунды и инициирует завершение работы, если движок перестает отвечать.
Подробнее см. в разделе корректное завершение работы.
Проверки работоспособности
У каждого типа worker есть специализированная полезная нагрузка проверки работоспособности, которая проверяет полный пайплайн inference:
| Тип worker | Стратегия проверки работоспособности |
|---|---|
| Decode / Aggregated | Короткий запрос генерации (max_tokens=1) с использованием BOS-токена модели |
| Prefill | Та же структура полезной нагрузки, что и для decode, адаптированная под формат prefill-запроса |
| vLLM-Omni | Короткий запрос генерации через AsyncOmni с BOS-токеном модели |
Проверки работоспособности регистрируются в среде выполнения Dynamo и вызываются фронтендом или Kubernetes liveness probes. Полезную нагрузку можно переопределить через переменную окружения DYN_HEALTH_CHECK_PAYLOAD. Более широкая архитектура проверок работоспособности описана в разделе проверки работоспособности.
Отмена запросов
Когда пользователь отменяет запрос (например, отключаясь от фронтенда), запрос автоматически отменяется на всех workers, освобождая вычислительные ресурсы.
| Prefill | Decode | |
|---|---|---|
| Aggregated | ✅ | ✅ |
| Disaggregated | ✅ | ✅ |
Подробнее см. документацию по архитектуре отмены запросов.
Миграция запросов
Dynamo поддерживает миграцию запросов, чтобы корректно обрабатывать сбои workers. Когда эта функция включена, запросы могут автоматически переноситься на работоспособные workers, если worker дает сбой в середине генерации. Подробности настройки см. в документации по архитектуре миграции запросов.
См. также
- Примеры: все шаблоны развертывания со скриптами запуска
- vLLM README: быстрый старт и обзор возможностей
- Наблюдаемость: настройка метрик и мониторинга
- Конфигурация и настройка: настройка маршрутизации с учетом KV
- Fault Tolerance: миграция запросов, отмена и корректное завершение работы