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

Для чистой 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.

Следующие шаги