Запуск ИИ модели на vLLM, Docker + NGC

Этот гайд поможет развернуть современную языковую модель (LLM) для инференса в облаке с использованием vLLM — высокопроизводительного сервера для инференса языковых моделей. Мы будем использовать готовый образ с CUDA, NVIDIA Container Toolkit и Docker, чтобы минимизировать время настройки.

Настройка виртуальной машины

Для старта выберите следующий образ: https://immers.cloud/image/view/?id=24611

Он содержит все необходимое для запуска LLM через vLLM:

  • Ubuntu 24.04;
  • Драйверы NVIDIA;
  • CUDA 13;
  • NVIDIA Container Toolkit и Docker.

Подберите GPU в зависимости от требований вашей модели — ориентируйтесь на объем видеопамяти (VRAM) и поддержку форматов вроде FP8 или INT4. Эти данные обычно указаны в документации к модели или в каталоге моделей платформы.

Остальные параметры виртуальной машины (CPU, RAM, тип диска) настройте в соответствии с рекомендациями на скриншоте ниже.

Скриншот 1

Запуск контейнера после подключения по SSH

После создания виртуальной машины и подключения к ней по SSH перед запуском контейнера обязательно задайте необходимые переменные среды с помощью команды export. Это нужно для последующей команды запуска vLLM в докер-контейнере.

  • HF_TOKEN — требуется для некоторых моделей например для gemma-3;
  • MODEL_HF_PATH — например google/gemma-3-4b-it;
  • GPU_AMOUNT — количество GPU для реализации параллелизма.

Эти переменные обеспечивают доступ к весам модели на Huggingface и ее инференс на GPU с заданным количеством видеокарт.

Скриншот 2

Команда для запуска:

sudo docker run --gpus "all" \

-v ~/.cache/huggingface:/root/.cache/huggingface \

--env "HF_TOKEN=$HF_TOKEN" \

-p 8000:8000 \

--ipc=host \

-d \

vllm/vllm-openai:v0.11.0 \ # при необходимости v0.11.0 замените на более новую модель

--model $HF_MODEL_PATH \

--trust-remote-code \

--tensor-parallel-size $GPU_AMOUNT

# или --pipeline-parallel-size $GPU_AMOUNT

Докер скачивает все необходимое и запускает инференс модели в vLLM:

Скриншот 3

Проверим работающий контейнер:

sudo docker ps -a

Скриншот 4

После скачивания Docker-образа и запуска контейнера убедимся, что vLLM сервер работает, командой (ID контейнера вы увидите в выводе команды docker ps -a):

sudo docker logs {ID контейнера}:

Скриншот 5

Проверка доступности эндпоинта и тестирование

Выведем список доступных моделей, там должна быть модель, которую мы запустили:

curl http://127.0.0.1:8000/v1/models

Скриншот 6

Видим в списке модель - google/gemma-3-4b-it ее контекст – 131 072 и другие параметры.

ВАЖНО! Если мы хотим обратиться к виртуальной машине (модели) с устройства ВНЕ локальной сети, то необходимо использовать адрес виртуальной машины в публичной сети как показано ниже: В списке виртуальных машин видим сетевой адрес:

Скриншот 7

В данном случае адрес виртуальной машины - 195.209.214.129. Для запросов сформируем URL вида http://{ip-адрес сервера}:8000/v1 # просто поменяйте локальный адрес на сетевой, для предыдущей команды это будет выглядеть вот так:

curl http://195.209.214.129:8000/v1/models

Протестируем инференс, зададим модели простой тестовый вопрос:

curl http://127.0.0.1:8000/v1/chat/completions \

-H "Content-Type: application/json" \

-d '{"model": "google/gemma-3-4b-it", "messages": [

{"role": "system", "content": "You are a helpful assistant."},

{"role": "user", "content": "Say this is a test"}

], "temperature": 0, "max_tokens": 150}'

Скриншот 8

Модель отвечает «This is test» и предлагает помощь в любых вопросах – значит все работает отлично!

Хорошие практики

Если виртуальная машина размещена в публичной сети, обязательно защитите эндпоинт vLLM с помощью ключа доступа. Это предотвратит несанкционированные запросы к вашей модели извне.

sudo docker run --gpus "all" \
 -v ~/.cache/huggingface:/root/.cache/huggingface \
 --env "HF_TOKEN=$HF_TOKEN" \
 -p 8000:8000 \
 --ipc=host \
 -d \
 vllm/vllm-openai:v0.11.0 \
 --model $HF_MODEL_PATH \
 --trust-remote-code \
 --tensor-parallel-size $GPU_AMOUNT
 --api-key ваш-секретный-ключ

Его необходимо будет передавать в Authorization заголовок при взаимодействии с моделью:

curl http://127.0.0.1:8000:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ваш-секретный-ключ" \
-d '{"model": "google/gemma-3-4b-it", "messages": [
 {"role": "system", "content": "You are a helpful assistant."},
 {"role": "user", "content": "Say this is a test"}
], "temperature": 0, "max_tokens": 150}'

При таком подходе доступ к модели будут иметь доступ только те лица, у которых есть этот ключ, храните его в секрете!

Дата обновления 09.02.2026