Files
llm/docs/runbooks/first-vllm-inference.md

2.0 KiB

First vLLM Inference

Цель: поднять первый OpenAI-compatible inference API на docker-gpu.cin.su.

Основной runbook запуска: docs/runbooks/deploy-vllm.md. Preflight GPU-хоста: docs/runbooks/gpu-host-preflight.md.

Files

  • core/deploy/docker-gpu/vllm/compose.yaml
  • core/deploy/docker-gpu/vllm/.env.example
  • registry/model-cards/qwen3-4b-instruct-2507.yaml

Prepare

На GPU-хосте:

docker --context default version

С локальной машины, если настроен Docker context:

docker --host ssh://test@docker-gpu.cin.su info

Configure

Скопировать .env.example в .env на стороне deployment-каталога и указать:

  • VLLM_MODEL_ID
  • VLLM_SERVED_MODEL_NAME
  • HOST_MODELS_DIR
  • HOST_HF_CACHE_DIR
  • HF_TOKEN, только если нужен доступ к закрытой модели

Не коммитить .env.

Run

docker compose --env-file .env -f core/deploy/docker-gpu/vllm/compose.yaml up -d

Check

curl http://docker-gpu.cin.su:8000/v1/models

Пример запроса:

curl http://docker-gpu.cin.su:8000/v1/chat/completions `
  -H "Content-Type: application/json" `
  -d '{"model":"qwen3-4b-instruct","messages":[{"role":"user","content":"Привет. Ответь коротко."}]}'

Или smoke-скриптом из корня проекта:

python scripts/smoke_chat.py --base-url http://docker-gpu.cin.su:8000 --model qwen3-4b-instruct

Notes

  • Сначала используем одну текстовую модель.
  • Первая модель: Qwen/Qwen3-4B-Instruct-2507.
  • Первый запуск ограничен VLLM_MAX_MODEL_LEN=32768, чтобы снизить риск OOM.
  • Для 1С позже подключим RAG и LoRA/adapters отдельно.
  • Большие модели и cache лежат вне git.