Этот гайд поможет развернуть современную языковую модель (LLM) для инференса в облаке с использованием vLLM — высокопроизводительного сервера для инференса языковых моделей. Мы будем использовать готовый образ с CUDA, NVIDIA Container Toolkit и Docker, чтобы минимизировать время настройки.
Для старта выберите следующий образ: https://immers.cloud/image/view/?id=24611
Он содержит все необходимое для запуска LLM через vLLM:
Подберите GPU в зависимости от требований вашей модели — ориентируйтесь на объем видеопамяти (VRAM) и поддержку форматов вроде FP8 или INT4. Эти данные обычно указаны в документации к модели или в каталоге моделей платформы.
Остальные параметры виртуальной машины (CPU, RAM, тип диска) настройте в соответствии с рекомендациями на скриншоте ниже.

После создания виртуальной машины и подключения к ней по SSH перед запуском контейнера обязательно задайте необходимые переменные среды с помощью команды export. Это нужно для последующей команды запуска vLLM в докер-контейнере.
HF_TOKEN — требуется для некоторых моделей например для gemma-3;MODEL_HF_PATH — например google/gemma-3-4b-it;GPU_AMOUNT — количество GPU для реализации параллелизма.Эти переменные обеспечивают доступ к весам модели на Huggingface и ее инференс на GPU с заданным количеством видеокарт.

Команда для запуска:
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:

Проверим работающий контейнер:
sudo docker ps -a

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

Выведем список доступных моделей, там должна быть модель, которую мы запустили:
curl http://127.0.0.1:8000/v1/models

Видим в списке модель - google/gemma-3-4b-it ее контекст – 131 072 и другие параметры.
ВАЖНО! Если мы хотим обратиться к виртуальной машине (модели) с устройства ВНЕ локальной сети, то необходимо использовать адрес виртуальной машины в публичной сети как показано ниже: В списке виртуальных машин видим сетевой адрес:

В данном случае адрес виртуальной машины - 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}'

Модель отвечает «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}'
При таком подходе доступ к модели будут иметь доступ только те лица, у которых есть этот ключ, храните его в секрете!