83 lines
2.5 KiB
Markdown
83 lines
2.5 KiB
Markdown
# Deploy vLLM
|
||
|
||
Цель: поднять первый OpenAI-compatible inference API на `docker-gpu.cin.su`.
|
||
|
||
## 1. Check GPU Host
|
||
|
||
```powershell
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/check_gpu_host.ps1
|
||
```
|
||
|
||
Если SSH ругается на host key, см. `docs/runbooks/gpu-host-preflight.md`.
|
||
|
||
## 2. Prepare Env
|
||
|
||
Для реального запуска лучше создать локальный `.env` рядом с compose-файлом:
|
||
|
||
```powershell
|
||
Copy-Item core/deploy/docker-gpu/vllm/.env.example core/deploy/docker-gpu/vllm/.env
|
||
```
|
||
|
||
Отредактировать:
|
||
|
||
- `VLLM_MODEL_ID`
|
||
- `VLLM_SERVED_MODEL_NAME`
|
||
- `HOST_MODELS_DIR`
|
||
- `HOST_HF_CACHE_DIR`
|
||
- `HF_TOKEN`, если модель закрытая
|
||
|
||
На Windows GPU-хосте используйте проверенный образ
|
||
`VLLM_IMAGE=vllm/vllm-openai:v0.10.2`. С драйвером CUDA 12.8 новые образы могут
|
||
не стартовать из-за требования CUDA 13. После обновления драйвера до CUDA 13.x
|
||
образ `latest` проходит CUDA-проверку, но vLLM 0.23.0 на Docker Desktop/WSL
|
||
падает при старте движка с `UVA is not available`.
|
||
|
||
Файл `.env` не коммитится.
|
||
|
||
## 3. Validate Compose
|
||
|
||
Без запуска:
|
||
|
||
```powershell
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_vllm.ps1 -ConfigOnly
|
||
```
|
||
|
||
## 4. Deploy
|
||
|
||
С `.env.example`:
|
||
|
||
```powershell
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_vllm.ps1 -Pull
|
||
```
|
||
|
||
С реальным `.env`:
|
||
|
||
```powershell
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_vllm.ps1 -EnvFile core/deploy/docker-gpu/vllm/.env -Pull
|
||
```
|
||
|
||
## 5. Check Endpoint
|
||
|
||
```powershell
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/check_vllm_endpoint.ps1
|
||
```
|
||
|
||
Или напрямую:
|
||
|
||
```powershell
|
||
python scripts/check_inference_endpoint.py --base-url http://docker-gpu.cin.su:8000 --expected-model qwen3-4b-instruct --print
|
||
python scripts/smoke_chat.py --base-url http://docker-gpu.cin.su:8000 --model qwen3-4b-instruct
|
||
```
|
||
|
||
## 6. Stop
|
||
|
||
```powershell
|
||
docker --host ssh://test@docker-gpu.cin.su compose --env-file core/deploy/docker-gpu/vllm/.env -f core/deploy/docker-gpu/vllm/compose.yaml down
|
||
```
|
||
|
||
Если для GPU-хоста нужен явный пользователь, передайте его в параметре:
|
||
|
||
```powershell
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_vllm.ps1 -DockerHost ssh://USER@docker-gpu.cin.su -ConfigOnly
|
||
```
|