Чтобы получить чистое Markdown-содержимое этой страницы, добавьте .md к этому URL. Полный индекс документации см. на https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая справочник API и примеры SDK, см. на https://docs.nvidia.com/dynamo/llms-full.txt.
Примеры
Примеры vLLM
Инструкции по быстрому старту см. в README vLLM. В этом документе приведены все шаблоны развертывания для запуска vLLM с Dynamo, включая агрегированные, дезагрегированные, KV-маршрутизируемые конфигурации и конфигурации с экспертным параллелизмом.
Содержание
- Настройка инфраструктуры
- Обслуживание LLM
- Расширенные примеры
- Развертывание в Kubernetes
- Устранение неполадок
Настройка инфраструктуры
Для локальной разработки или разработки на bare-metal запустите etcd и, при необходимости, NATS с помощью Docker Compose:
docker compose -f dev/docker-compose.yml up -d
- etcd необязателен, но используется как локальный backend обнаружения по умолчанию. Также доступно обнаружение на основе файлов (параметры
--discovery-backendсм. вpython -m dynamo.vllm --help). - NATS нужен только при использовании событий KV-маршрутизации на базе NATS. События на базе ZMQ и маршрутизация на основе предсказаний не требуют NATS.
- В Kubernetes ни один из них не требуется при использовании оператора Dynamo.
Каждый скрипт запуска запускает frontend и worker(ы) в одном терминале. Для лучшей видимости логов можно запускать каждую команду отдельно в разных терминалах. Для AI-агентов, работающих с Dynamo, можно запустить скрипт запуска в фоновом режиме и использовать команды curl для проверки развертывания.
Обслуживание LLM
Агрегированное обслуживание
Самый простой шаблон развертывания: один worker выполняет и prefill, и decode. Требуется 1 GPU.
Запуск на устройствах CUDA:
cd $DYNAMO_HOME/examples/backends/vllm
bash launch/agg.sh
Запуск на XPU:
cd $DYNAMO_HOME/examples/backends/vllm
bash launch/xpu/agg_xpu.sh
Агрегированное обслуживание с KV-маршрутизацией
Два worker за KV-aware router, который максимизирует повторное использование кеша. Требуется 2 GPU.
Запуск на устройствах CUDA:
cd $DYNAMO_HOME/examples/backends/vllm
bash launch/agg_router.sh
Запуск на XPU:
cd $DYNAMO_HOME/examples/backends/vllm
bash launch/xpu/agg_router_xpu.sh
Это запускает frontend в режиме KV-маршрутизации с двумя worker, которые публикуют KV-события через ZMQ.
Дезагрегированное обслуживание
Разделяет prefill и decode на независимые worker, соединенные через NIXL для передачи KV-кеша. Требуется 2 GPU.
cd $DYNAMO_HOME/examples/backends/vllm
bash launch/disagg.sh
Дезагрегированное обслуживание с KV-маршрутизацией
Масштабируется до 2 prefill-worker и 2 decode-worker с KV-aware routing в обоих пулах. Требуется 4 GPU.
cd $DYNAMO_HOME/examples/backends/vllm
bash launch/disagg_router.sh
Frontend работает в режиме KV-маршрутизации и автоматически обнаруживает prefill-worker, чтобы активировать внутренний prefill router.
Параллелизм данных / экспертный параллелизм
Запускает 4 data-parallel worker с экспертным параллелизмом за KV-aware router. Использует модель Mixture-of-Experts (Qwen/Qwen3-30B-A3B). Требуется 4 GPU.
cd $DYNAMO_HOME/examples/backends/vllm
bash launch/dep.sh
Запустите дезагрегированный пример и попробуйте добавить еще один prefill-worker после запуска конфигурации. Система автоматически обнаружит и задействует новый worker.
Расширенные примеры
Спекулятивное декодирование
Запустите Meta-Llama-3.1-8B-Instruct с Eagle3 в качестве черновой модели для ускорения инференса при сохранении точности.
Руководство: Быстрый старт по спекулятивному декодированию
См. также: Обзор функции спекулятивного декодирования для документации, общей для разных backend.
Мультимодальность
Обслуживайте мультимодальные модели с помощью интеграции vLLM-Omni.
Руководство: vLLM-Omni
Несколько узлов
Разверните vLLM на нескольких узлах, используя распределенные возможности Dynamo. Для multi-node развертываний требуется сетевое соединение между узлами и правила firewall, разрешающие обмен данными NATS/ETCD.
Запустите NATS/ETCD на head node, чтобы все worker nodes могли к ним обращаться:
# On head node
docker compose -f dev/docker-compose.yml up -d
# Set on ALL nodes
export HEAD_NODE_IP="<your-head-node-ip>"
export NATS_SERVER="nats://${HEAD_NODE_IP}:4222"
export ETCD_ENDPOINTS="${HEAD_NODE_IP}:2379"
Для multi-node tensor/pipeline parallelism (когда TP x PP превышает число GPU на одном узле) см. launch/multi_node_tp.sh. Подробнее о распределенном выполнении см. в документации vLLM по multiprocessing.
DeepSeek-R1
Dynamo поддерживает DeepSeek R1 с data parallel attention и широким экспертным параллелизмом. Каждый DP attention rank представляет собой отдельный компонент Dynamo, который отправляет собственные KV-события и метрики.
Запуск на 2 узлах (16 GPU, dp=16):
# Node 0
cd $DYNAMO_HOME/examples/backends/vllm
./launch/dsr1_dep.sh --num-nodes 2 --node-rank 0 --gpus-per-node 8 --master-addr <node-0-addr>
# Node 1
./launch/dsr1_dep.sh --num-nodes 2 --node-rank 1 --gpus-per-node 8 --master-addr <node-0-addr>
Настраиваемые параметры см. в launch/dsr1_dep.sh.
Развертывание в Kubernetes
Полные инструкции по развертыванию в Kubernetes, конфигурации и сведения по устранению неполадок см. в руководстве по развертыванию vLLM в Kubernetes.
Общую документацию Dynamo по K8s см. также в руководстве по развертыванию в Kubernetes.
Устранение неполадок
Workers не запускаются из-за ошибок NIXL
Убедитесь, что NIXL установлен и side-channel ports не конфликтуют. Каждому worker в конфигурации с несколькими worker нужен уникальный VLLM_NIXL_SIDE_CHANNEL_PORT.
KV Router маршрутизирует некорректно
При использовании KV-aware routing убедитесь, что PYTHONHASHSEED=0 задан для всех процессов vLLM. Подробнее см. в разделе Согласованность хеширования.
GPU OOM при запуске
Если после предыдущего запуска остались осиротевшие GPU-процессы, следующий запуск может завершиться OOM. Проверьте наличие zombie processes:
nvidia-smi # look for lingering python processes
kill -9 <PID>
См. также
- README vLLM: быстрый старт и обзор возможностей
- Справочное руководство: конфигурация, аргументы и эксплуатационные сведения
- Наблюдаемость: метрики и мониторинг
- Бенчмаркинг: инструменты бенчмаркинга производительности
- Настройка производительности дезагрегированного режима: руководство по настройке P/D