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 для production стека
# 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 дешевле из-за простоя оборудования.







