Для чистой Markdown-версии этой страницы добавьте
.mdк этому URL. Полный индекс документации см. в https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая справочник API и примеры SDK, см. в https://docs.nvidia.com/dynamo/llms-full.txt.
SGLang
Используйте последний релиз
Мы рекомендуем использовать последний стабильный релиз Dynamo, чтобы избежать breaking changes.
Dynamo SGLang интегрирует движки SGLang в распределенную среду выполнения Dynamo, обеспечивая disaggregated serving, маршрутизацию с учетом KV и отмену запросов при полной совместимости с нативными аргументами движка SGLang. Он поддерживает inference для LLM, embedding-моделей, мультимодальных vision-моделей и генерацию на основе diffusion (LLM, image, video).
Предварительные требования
-
Заголовочные файлы CUDA toolkit для bare-metal сборок, например
nvcc,cuda_runtime.h. См. CUDA Requirements. Не требуются при запуске готового контейнераsglang-runtime. -
HF_TOKENдля gated-моделей. Экспортируйте его на каждом узле, который загружает веса модели, и примите лицензию модели на странице Hugging Face перед запуском:export HF_TOKEN=hf_...
Установка
Установите последний релиз
Мы рекомендуем устанавливать через uv:
uv venv --python 3.12 --seed
uv pip install --prerelease=allow "ai-dynamo[sglang]"
Это устанавливает последний стабильный релиз Dynamo с совместимой версией SGLang.
Установка для разработки
Development installation in a virtual environment (recommended)
Требует Rust и CUDA toolkit (nvcc).
# install dynamo
uv venv --python 3.12 --seed
uv pip install maturin nixl
cd $DYNAMO_HOME/lib/bindings/python
maturin develop --uv
cd $DYNAMO_HOME
uv pip install -e .
# install sglang
git clone https://github.com/sgl-project/sglang.git
# you can optionally checkout any sglang branch
cd sglang && uv pip install -e "python"
Это идеальный способ разработки для agents. Можно передать путь к обоим репозиториям и виртуальному окружению, и агент будет повторять эти команды по мере внесения изменений
Docker
Поддерживаются два пути. Выберите тот, который соответствует вашему способу разработки.
Готовый контейнер Dynamo SGLang (рекомендуется)
Скачайте и запустите опубликованный образ sglang-runtime из NGC. Текущий тег и варианты CUDA см. в артефактах релиза.
docker run --gpus all -it --rm \
--network host --shm-size=10G \
--ulimit memlock=-1 --ulimit stack=67108864 \
--ulimit nofile=65536:65536 \
--cap-add CAP_SYS_PTRACE --ipc host \
-v $HOME/.cache/huggingface:/home/dynamo/.cache/huggingface \
nvcr.io/nvidia/ai-dynamo/sglang-runtime:1.2.0
Подмонтируйте cache Hugging Face хоста (-v $HOME/.cache/huggingface:/home/dynamo/.cache/huggingface), чтобы при каждом перезапуске контейнера не скачивать веса модели заново. Контейнер работает от пользователя dynamo (UID 1000), поэтому путь внутри контейнера — /home/dynamo/.cache/huggingface.
Сборка из исходников внутри upstream-контейнера SGLang
Скачайте и запустите upstream-образ SGLang, а затем соберите Dynamo из исходников внутри него:
docker run --gpus all -it --rm \
--network host --shm-size=10G \
--ulimit memlock=-1 --ulimit stack=67108864 \
--ulimit nofile=65536:65536 \
--ipc host \
lmsysorg/sglang:v{sglang_version}
Установите зависимости для сборки и Rust внутри контейнера:
apt-get update -qq && apt-get install -y -qq \
build-essential libclang-dev curl git > /dev/null 2>&1
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
pip install maturin[patchelf]
Клонируйте и соберите Dynamo:
cd /sgl-workspace/
git clone https://github.com/ai-dynamo/dynamo.git
cd dynamo
cd lib/bindings/python/
maturin build -o /tmp
pip install /tmp/ai_dynamo_runtime*.whl
cd /sgl-workspace/dynamo/
pip install -e .
Матрица поддержки функций
| Функция | Статус | Примечания |
|---|---|---|
| Разделённое обслуживание | ✅ | Разделение prefill/decode с передачей KV через NIXL |
| KV-Aware Routing | ✅ | |
| SLA-Based Planner | ✅ | |
| Multimodal Support | ✅ | Изображение через шаблоны EPD, E/PD, E/P/D |
| Diffusion Models | ✅ | Генерация LLM, изображений и видео на основе diffusion |
| Request Cancellation | ✅ | Для aggregated — полная; для disaggregated — только decode |
| Graceful Shutdown | ✅ | Отмена регистрации в Discovery + grace period |
| Observability | ✅ | Метрики, трассировка и панели Grafana |
| KVBM | ❌ | Запланировано |
Быстрый старт
Развертывание через Python / CLI
Запустите инфраструктурные сервисы для локальной разработки:
docker compose -f dev/docker-compose.yml up -d
Запустите развертывание aggregated-serving:
cd $DYNAMO_HOME/examples/backends/sglang
./launch/agg.sh
Проверьте развертывание:
curl localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-0.6B",
"messages": [{"role": "user", "content": "Explain why Roger Federer is considered one of the greatest tennis players of all time"}],
"stream": true,
"max_tokens": 30
}'
Разделённое обслуживание
Запустите disaggregated-развертывание Qwen3-0.6B (самая маленькая модель, полезна для проверки plumbing):
cd $DYNAMO_HOME/examples/backends/sglang
./launch/disagg.sh
Ограничение по производительности: Qwen3-0.6B достаточно мала, поэтому в disaggregated-пути доминируют transport overhead, и он часто выглядит медленнее aggregated-режима. Используйте ее для проверки plumbing, а не для бенчмарков. Для реалистичных disagg-метрик переходите на Qwen3-32B-FP8 или более крупную модель.
Многоузловой TP
SGLang поддерживает multi-node tensor parallelism через нативные флаги --dist-init-addr, --nnodes и --node-rank. Каноническую справку см. в SGLang server arguments; те же флаги работают с python -m dynamo.sglang. Пример Kubernetes-развертывания см. в disagg-multinode.yaml.
Kubernetes-развертывание
Вы можете развернуть SGLang с Dynamo в Kubernetes с помощью DynamoGraphDeployment. Подробнее см. в SGLang Kubernetes Deployment Guide.
Следующие шаги
- Справочное руководство: Типы worker'ов, архитектура и конфигурация
- Примеры: Все шаблоны развертывания со launch-скриптами
- Disaggregation: Архитектура P/D и детали передачи KV
- Diffusion: Модели diffusion для LLM, изображений и видео
- Observability: Метрики, трассировка и панели Grafana
- Deploying SGLang with Dynamo on Kubernetes: Руководство по Kubernetes-развертыванию