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

Чтобы получить чистое Markdown-содержимое этой страницы, добавьте .md к этому URL. Полный индекс документации см. на https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая справочник API и примеры SDK, см. на https://docs.nvidia.com/dynamo/llms-full.txt.

Примеры

Инструкции по быстрому старту см. в README TensorRT-LLM. В этом документе приведены все шаблоны развертывания для запуска TensorRT-LLM с Dynamo, включая развертывания на одном узле, на нескольких узлах и в Kubernetes.

Содержание

Настройка инфраструктуры

Для локальной разработки или разработки на bare-metal запустите etcd и, при необходимости, NATS с помощью Docker Compose:

docker compose -f dev/docker-compose.yml up -d
  • etcd необязателен, но используется как локальный backend обнаружения по умолчанию. Также можно использовать --discovery-backend file, чтобы задействовать обнаружение на основе файловой системы.
  • NATS необязателен: он нужен только при использовании событий KV-маршрутизации на базе NATS. Рабочие процессы нужно явно настроить на публикацию событий. Для маршрутизации без NATS используйте события на базе ZMQ или --no-router-kv-events на frontend.
  • В Kubernetes при использовании оператора Dynamo ни etcd, ни NATS не требуются: оператор явно задает DYN_DISCOVERY_BACKEND=kubernetes, чтобы включить нативное обнаружение сервисов K8s (DynamoWorkerMetadata CRD).

Каждый launch-скрипт запускает frontend и worker(s) в одном терминале. Для тестирования можно запускать каждую команду отдельно в разных терминалах. Каждый shell-скрипт просто выполняет python3 -m dynamo.frontend <args> для запуска ingress и python3 -m dynamo.trtllm <args> для запуска рабочих процессов.

Подробные сведения о поведении маршрутизации с учетом KV см. в разделе Концепции маршрутизации. О режимах развертывания см. в руководстве по Router.

Примеры для одного узла

Агрегированный режим

cd $DYNAMO_HOME/examples/backends/trtllm
./launch/agg.sh

Агрегированный режим с KV Routing

cd $DYNAMO_HOME/examples/backends/trtllm
./launch/agg_router.sh

Дезагрегированный режим

cd $DYNAMO_HOME/examples/backends/trtllm
./launch/disagg.sh

Дезагрегированный режим с KV Routing

В дезагрегированном workflow запросы направляются на prefill worker, чтобы максимально переиспользовать KV cache.

cd $DYNAMO_HOME/examples/backends/trtllm
./launch/disagg_router.sh

Агрегированный режим с Multi-Token Prediction (MTP) и DeepSeek R1

cd $DYNAMO_HOME/examples/backends/trtllm

export AGG_ENGINE_ARGS=./engine_configs/deepseek-r1/agg/mtp/mtp_agg.yaml
export SERVED_MODEL_NAME="nvidia/DeepSeek-R1-FP4"
# nvidia/DeepSeek-R1-FP4 is a large model
export MODEL_PATH="nvidia/DeepSeek-R1-FP4"
./launch/agg.sh
  • Для первых двух inference-запросов наблюдается заметная задержка. Перед запуском бенчмарка отправьте прогревочные запросы.
  • Производительность MTP может различаться в зависимости от acceptance rate предсказанных токенов, который зависит от набора данных или запросов, используемых во время бенчмаркинга. Кроме того, при использовании MTP параметр ignore_eos обычно следует опускать или задавать равным false, чтобы избежать спекуляции мусорными выводами и получения нереалистичных acceptance rate.

Расширенные примеры

Развертывание на нескольких узлах

Полные инструкции по обслуживанию на нескольких узлах см. в руководстве Примеры multinode. В нем приведены пошаговые примеры развертывания и рекомендации по конфигурации для запуска Dynamo с TensorRT-LLM на нескольких узлах. Хотя в пошаговом описании в качестве модели используется DeepSeek-R1, этот процесс легко адаптировать для любой поддерживаемой модели, обновив соответствующие конфигурационные файлы. Чтобы узнать, как использовать эти скрипты, когда один worker помещается на один узел, см. руководство Llama4 + Eagle.

Спекулятивное декодирование

Руководства для отдельных моделей

Развертывание в Kubernetes

Полные инструкции по развертыванию в Kubernetes, конфигурации и рекомендации по устранению неполадок см. в руководстве по развертыванию TensorRT-LLM в Kubernetes.

Клиент

См. раздел клиент, чтобы узнать, как отправлять запросы в развертывание.

Чтобы отправить запрос в развертывание на нескольких узлах, обращайтесь к узлу, на котором запущен python3 -m dynamo.frontend <args>.