Для чистого Markdown-содержимого этой страницы добавьте
.mdк этому URL. Полный индекс документации см. в https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая API reference и примеры SDK, см. в https://docs.nvidia.com/dynamo/llms-full.txt.
Reference Guide
Обзор
SGLang backend в Dynamo использует модульную архитектуру, в которой main.py перенаправляет выполнение в специализированные модули инициализации в зависимости от типа worker. У каждого типа worker есть свой модуль инициализации, обработчик запросов, health check и логика регистрации.
Dynamo SGLang использует нативный parser аргументов SGLang -- все аргументы engine SGLang (например, --model-path, --tp, --trust-remote-code) передаются напрямую. Dynamo добавляет собственные аргументы для выбора режима worker, управления tokenizer и настройки disaggregation.
Типы worker
| Тип worker | Описание |
|---|---|
| Decode (по умолчанию) | Обычный LLM inference (aggregated или disaggregated decode) |
| Prefill | Фаза disaggregated prefill (--disaggregation-mode prefill) |
| Embedding | Модели текстовых embedding (--embedding-worker) |
| Multimodal Encode | Для frontend: vision encoding и генерация embeddings (--multimodal-encode-worker) |
| Multimodal Worker | LLM inference с multimodal-данными (--multimodal-worker) |
| Multimodal Prefill | Фаза prefill для multimodal disaggregation (--multimodal-worker --disaggregation-mode prefill) |
| Image Diffusion | Генерация изображений через DiffGenerator (--image-diffusion-worker) |
| Video Generation | Text/image-to-video через DiffGenerator (--video-generation-worker) |
| LLM Diffusion | Diffusion language models, например LLaDA (--dllm-algorithm <algo>) |
Справочник аргументов
Аргументы Dynamo
Эти аргументы Dynamo добавляет поверх нативных аргументов SGLang.
| Аргумент | Env Var | По умолчанию | Описание |
|---|---|---|---|
--endpoint | DYN_ENDPOINT | Auto-generated | Endpoint Dynamo в формате dyn://namespace.component.endpoint |
--use-sglang-tokenizer | DYN_SGL_USE_TOKENIZER | false | [Deprecated] Вместо этого используйте --dyn-chat-processor sglang на frontend. См. SGLang Chat Processor. |
--dyn-tool-call-parser | DYN_TOOL_CALL_PARSER | None | Parser tool call (переопределяет --tool-call-parser SGLang) |
--dyn-reasoning-parser | DYN_REASONING_PARSER | None | Parser reasoning для chain-of-thought моделей |
--custom-jinja-template | DYN_CUSTOM_JINJA_TEMPLATE | None | Пользовательский путь к chat template (несовместим с --use-sglang-tokenizer) |
--embedding-worker | DYN_SGL_EMBEDDING_WORKER | false | Запуск в режиме embedding worker (также задает SGLang --is-embedding) |
--multimodal-encode-worker | DYN_SGL_MULTIMODAL_ENCODE_WORKER | false | Запуск в режиме multimodal encode worker (для frontend) |
--multimodal-worker | DYN_SGL_MULTIMODAL_WORKER | false | Запуск в режиме multimodal LLM worker |
--image-diffusion-worker | DYN_SGL_IMAGE_DIFFUSION_WORKER | false | Запуск в режиме image diffusion worker |
--video-generation-worker | DYN_SGL_VIDEO_GENERATION_WORKER | false | Запуск в режиме video generation worker |
--disagg-config | DYN_SGL_DISAGG_CONFIG | None | Путь к YAML-файлу конфигурации disaggregation |
--disagg-config-key | DYN_SGL_DISAGG_CONFIG_KEY | None | Ключ для выбора секции в disaggregation config (например, prefill, decode) |
--disagg-config и --disagg-config-key нужно задавать вместе. Выбранная секция записывается во временный YAML-файл и передается флагу SGLang --config.
Текущие поддерживаемые имена parser для обоих флагов описаны в Tool Call Parsing (Dynamo) и Reasoning Parsing (Dynamo).
Поведение tokenizer
По умолчанию Dynamo выполняет tokenization и detokenization через свой frontend на Rust, передавая input_ids в SGLang. Это делает доступными все frontend endpoints (v1/chat/completions, v1/completions, v1/embeddings).
Для нативного preprocessing SGLang (tool calling, reasoning parsing, chat templates) используйте --dyn-chat-processor sglang на frontend. См. SGLang Chat Processor для архитектуры и использования.
--use-sglang-tokenizer устарел. Вместо него используйте --dyn-chat-processor sglang на frontend: он обеспечивает тот же SGLang-native processing с поддержкой KV router и endpoint completions.
Отмена запросов
Когда клиент отключается, Dynamo автоматически отменяет выполняющийся запрос на всех worker, освобождая вычислительные ресурсы. Фоновый cancellation monitor обнаруживает отключение и прерывает запрос SGLang.
| Mode | Prefill | Decode |
|---|---|---|
| Aggregated | ✅ | ✅ |
| Disaggregated | ⚠️ | ✅ |
Подробнее об архитектуре отмены см. в Request Cancellation.
Graceful Shutdown
Worker SGLang используют механизм graceful shutdown Dynamo. Когда поступает SIGTERM или SIGINT:
- Discovery unregister: worker удаляется из service discovery, чтобы на него больше не маршрутизировались новые запросы
- Grace period: выполняющимся запросам разрешается завершиться
- Deferred handlers: внутренние signal handlers SGLang (перехваченные при запуске через monkey-patching
loop.add_signal_handler) вызываются после graceful period
Это гарантирует отсутствие потерянных запросов во время rolling updates или scale-down events.
Подробнее см. Graceful Shutdown.
Health Checks
У каждого типа worker есть специализированный payload health check, который валидирует весь inference pipeline:
| Тип worker | Стратегия Health Check |
|---|---|
| Decode / Aggregated | Короткий generation request (max_new_tokens=1) |
| Prefill | Обернутая request structure для prefill |
| Image Diffusion | Минимальный request на генерацию изображения |
| Video Generation | Минимальный request на генерацию видео |
| Embedding | Стандартный embedding request |
Health checks регистрируются в runtime Dynamo и вызываются frontend или Kubernetes liveness probes. См. Health Checks для более широкой архитектуры health check.
Метрики и KV Events
Метрики Prometheus
Включите метрики с помощью --enable-metrics на worker. Установите DYN_SYSTEM_PORT, чтобы открыть endpoint /metrics:
DYN_SYSTEM_PORT=8081 python -m dynamo.sglang --model-path Qwen/Qwen3-0.6B --enable-metrics
С одного и того же endpoint отдаются и метрики engine SGLang (sglang:* prefix), и метрики runtime Dynamo (dynamo_* prefix).
Подробности о метриках см. в SGLang Observability. Для настройки визуализации см. Prometheus + Grafana.
KV Events
Если задан --kv-events-config, worker публикуют KV cache events (создание/удаление block) для KV-aware router. Events публикуются через ZMQ из scheduler SGLang и передаются через event plane Dynamo.
Для режима DP attention (--enable-dp-attention) publisher обрабатывает несколько DP ranks на узел, и у каждого есть свой KV event stream.
Маршруты engine
Worker SGLang экспонируют operational endpoints через system server Dynamo:
| Route | Описание |
|---|---|
/engine/start_profile | Запустить профилирование PyTorch |
/engine/stop_profile | Остановить профилирование и сохранить traces |
/engine/release_memory_occupation | Освободить GPU memory для обслуживания |
/engine/resume_memory_occupation | Возобновить использование GPU memory после освобождения |
/engine/update_weights_from_distributor | Обновить веса модели из distributor |
/engine/update_weights_from_disk | Обновить веса модели с disk |
/engine/update_weight_version | Обновить metadata версии weights |
См. также
- Examples: Все шаблоны развертывания
- Disaggregation: P/D architecture и KV transfer
- Diffusion: LLM, image и video diffusion models
- Configuration and Tuning: Конфигурация KV-aware routing