73 lines
2.0 KiB
Markdown
73 lines
2.0 KiB
Markdown
# 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-хосте:
|
|
|
|
```powershell
|
|
docker --context default version
|
|
```
|
|
|
|
С локальной машины, если настроен Docker context:
|
|
|
|
```powershell
|
|
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
|
|
|
|
```powershell
|
|
docker compose --env-file .env -f core/deploy/docker-gpu/vllm/compose.yaml up -d
|
|
```
|
|
|
|
## Check
|
|
|
|
```powershell
|
|
curl http://docker-gpu.cin.su:8000/v1/models
|
|
```
|
|
|
|
Пример запроса:
|
|
|
|
```powershell
|
|
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-скриптом из корня проекта:
|
|
|
|
```powershell
|
|
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.
|