On-premise деплой LLM
On-premise деплой LLM – розгортання на власному устаткуванні в ЦОД компанії. Забезпечує повний контроль даних, передбачувану вартість за високого навантаження, відповідність вимогам регуляторів (152-ФЗ, банківські вимоги, медичні дані).
Вибір обладнання
Сервери початкового рівня (7–13B моделі):
- Dell PowerEdge R750xa з NVIDIA A30 24GB × 4
- HPE ProLiant DL380 Gen10 Plus з A10 24GB × 4
- Вартість: $20,000-40,000
Сервери середнього рівня (70B BF16 або 13B × кілька):
- Supermicro SYS-421GE-TNRT з A100 80GB × 4
- NVIDIA DGX A100 (8×A100 80GB, NVLink)
- Вартість: $100,000-400,000
DGX H100 (флагман):
- 8× H100 80GB SXM5, NVLink4
- До 1TB VRAM сумарно
- Вартість: $400,000+
Економічний варіант (тестування, малі навантаження):
- Робоча станція з RTX 4090 24GB × 2-4
- 7B моделі у BF16, 70B у 4-bit
- Вартість: $15,000-30,000
Мережева інфраструктура
InfiniBand є обов'язковим для multi-GPU серверів з tensor parallelism: 400 Gb/s HDR InfiniBand vs 100 Gb/s Ethernet — критична різниця при NCCL all-reduce.
NVLink для inter-GPU всередині сервера: NVLink4 - 900 GB/s bidirectional bandwidth. Обов'язковий для DGX H100.
Базова конфігурація on-premise LLM-кластера
# Проверка и настройка NVIDIA окружения
nvidia-smi topo -m # topology GPU ↔ CPU ↔ NIC
nvidia-smi nvlink --status # статус NVLink
# Настройка NCCL для InfiniBand
export NCCL_IB_DISABLE=0
export NCCL_IB_GID_INDEX=3
export NCCL_DEBUG=INFO
# Проверка P2P доступа между GPU
python3 -c "
import torch
for i in range(torch.cuda.device_count()):
for j in range(torch.cuda.device_count()):
if i != j:
print(f'GPU{i}→GPU{j}: P2P={torch.cuda.can_device_access_peer(i, j)}')
"
Docker Compose для стека
# docker-compose.yml
version: '3.8'
services:
vllm:
image: vllm/vllm-openai:v0.5.0
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=0,1,2,3
- CUDA_VISIBLE_DEVICES=0,1,2,3
command: >
python -m vllm.entrypoints.openai.api_server
--model /models/llama-3-70b-instruct
--tensor-parallel-size 4
--max-model-len 16384
--max-num-seqs 128
--gpu-memory-utilization 0.92
--host 0.0.0.0
--port 8000
volumes:
- /data/models:/models:ro
- /dev/shm:/dev/shm
shm_size: 32gb
restart: unless-stopped
ports:
- "127.0.0.1:8000:8000"
nginx:
image: nginx:alpine
ports: ["443:443", "80:80"]
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl:/etc/nginx/ssl:ro
depends_on: [vllm]
restart: unless-stopped
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
ports: ["9090:9090"]
grafana:
image: grafana/grafana:latest
ports: ["3000:3000"]
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/dashboards:/etc/grafana/provisioning/dashboards
dcgm-exporter:
image: nvcr.io/nvidia/k8s/dcgm-exporter:3.3.5-3.4.0-ubuntu22.04
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
ports: ["9400:9400"]
cap_add: [SYS_ADMIN]
volumes:
prometheus_data:
grafana_data:
Безпека on-premise деплоя
Мережева ізоляція: LLM-сервер в окремому VLAN, доступний лише через API Gateway. Зовнішній інтернет-доступ лише для оновлень через proxy.
Шифрування: TLS 1.3 для всіх API-дзвінків. Шифрування диска із моделями (LUKS). Шифрування трафіку між серверами GPU при multi-node.
Аутентифікація: API-ключі або OAuth через корпоративний IdP (LDAP, AD). Audit log всіх запитів.
Фізична безпека: BIOS-пароль, відключення USB, моніторинг фізичного доступу до стійки.
Backup та DR
# Backup конфигурации (не модели — слишком большие)
rsync -av /etc/docker/ backup-server:/backups/docker-configs/
rsync -av /opt/llm-stack/ backup-server:/backups/llm-stack/
# Модели хранятся на NAS с RAID
# Проверка целостности модели
sha256sum /data/models/llama-3-70b/*.safetensors > model_checksums.txt
TCO аналіз vs cloud
При навантаженні > 1M токенів/день on-premise окупається за 12-18 місяців порівняно з cloud GPU. При навантаженні < 100K токенів/день cloud дешевше через простою обладнання.







