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

Для чистого 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 WorkerLLM inference с multimodal-данными (--multimodal-worker)
Multimodal PrefillФаза prefill для multimodal disaggregation (--multimodal-worker --disaggregation-mode prefill)
Image DiffusionГенерация изображений через DiffGenerator (--image-diffusion-worker)
Video GenerationText/image-to-video через DiffGenerator (--video-generation-worker)
LLM DiffusionDiffusion language models, например LLaDA (--dllm-algorithm <algo>)

Справочник аргументов

Аргументы Dynamo

Эти аргументы Dynamo добавляет поверх нативных аргументов SGLang.

АргументEnv VarПо умолчаниюОписание
--endpointDYN_ENDPOINTAuto-generatedEndpoint Dynamo в формате dyn://namespace.component.endpoint
--use-sglang-tokenizerDYN_SGL_USE_TOKENIZERfalse[Deprecated] Вместо этого используйте --dyn-chat-processor sglang на frontend. См. SGLang Chat Processor.
--dyn-tool-call-parserDYN_TOOL_CALL_PARSERNoneParser tool call (переопределяет --tool-call-parser SGLang)
--dyn-reasoning-parserDYN_REASONING_PARSERNoneParser reasoning для chain-of-thought моделей
--custom-jinja-templateDYN_CUSTOM_JINJA_TEMPLATENoneПользовательский путь к chat template (несовместим с --use-sglang-tokenizer)
--embedding-workerDYN_SGL_EMBEDDING_WORKERfalseЗапуск в режиме embedding worker (также задает SGLang --is-embedding)
--multimodal-encode-workerDYN_SGL_MULTIMODAL_ENCODE_WORKERfalseЗапуск в режиме multimodal encode worker (для frontend)
--multimodal-workerDYN_SGL_MULTIMODAL_WORKERfalseЗапуск в режиме multimodal LLM worker
--image-diffusion-workerDYN_SGL_IMAGE_DIFFUSION_WORKERfalseЗапуск в режиме image diffusion worker
--video-generation-workerDYN_SGL_VIDEO_GENERATION_WORKERfalseЗапуск в режиме video generation worker
--disagg-configDYN_SGL_DISAGG_CONFIGNoneПуть к YAML-файлу конфигурации disaggregation
--disagg-config-keyDYN_SGL_DISAGG_CONFIG_KEYNoneКлюч для выбора секции в 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.

ModePrefillDecode
Aggregated
Disaggregated⚠️
Отмена во время remote prefill в disaggregated mode сейчас не поддерживается.

Подробнее об архитектуре отмены см. в Request Cancellation.

Graceful Shutdown

Worker SGLang используют механизм graceful shutdown Dynamo. Когда поступает SIGTERM или SIGINT:

  1. Discovery unregister: worker удаляется из service discovery, чтобы на него больше не маршрутизировались новые запросы
  2. Grace period: выполняющимся запросам разрешается завершиться
  3. 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

См. также