Развёртывание ИИ-моделей на GPU-сервере: Руководство по NVIDIA CUDA
Установка драйверов NVIDIA, CUDA toolkit, nvidia-container-toolkit, обслуживание моделей с vLLM, мониторинг GPU и развёртывание ИИ-моделей с Docker.
Содержание
Развёртывание ИИ-моделей на GPU-сервере: Руководство по NVIDIA CUDA
GPU-серверы необходимы для запуска ИИ-моделей в производственной среде. Это руководство охватывает всё: от установки драйверов NVIDIA до настройки CUDA, интеграции Docker с GPU и высокопроизводительного обслуживания моделей с помощью vLLM.
Требования к GPU-серверу
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| GPU | NVIDIA T4 (16 ГБ) | NVIDIA A100 (40/80 ГБ) |
| RAM | 32 ГБ | 64 ГБ+ |
| Диск | 100 ГБ SSD | 500 ГБ NVMe |
| ОС | Ubuntu 22.04 LTS | Ubuntu 22.04/24.04 LTS |
| CUDA | 12.0+ | 12.4+ |
Установка драйверов NVIDIA
Сначала удалите существующие драйверы и установите новые:
# Удаление существующих драйверов NVIDIA
sudo apt-get purge nvidia-* -y
sudo apt-get autoremove -y
# Обновление системы
sudo apt-get update && sudo apt-get upgrade -y
# Добавление репозитория драйверов NVIDIA
sudo apt-get install -y linux-headers-$(uname -r)
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt-get update
# Проверка рекомендуемого драйвера
ubuntu-drivers devices
# Установка драйвера NVIDIA
sudo apt-get install -y nvidia-driver-550
sudo reboot
Проверка после установки:
nvidia-smi
Установка CUDA Toolkit
# Добавление ключа CUDA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
# Установка CUDA Toolkit
sudo apt-get install -y cuda-toolkit-12-4
# Настройка PATH
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
# Проверка
nvcc --version
NVIDIA Container Toolkit
nvidia-container-toolkit необходим для использования GPU в Docker-контейнерах:
# Репозиторий NVIDIA Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Настройка Docker runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# Тест
sudo docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
Обслуживание моделей с vLLM
vLLM — это высокопроизводительный движок инференса LLM. Он оптимизирует использование памяти с помощью технологии PagedAttention.
vLLM с Docker
docker run -d \
--name vllm \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env HUGGING_FACE_HUB_TOKEN=$HF_TOKEN \
vllm/vllm-openai:latest \
--model meta-llama/Meta-Llama-3.1-8B-Instruct \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
Docker Compose с vLLM
version: '3.8'
services:
vllm:
image: vllm/vllm-openai:latest
container_name: vllm-server
ports:
- "8000:8000"
volumes:
- huggingface_cache:/root/.cache/huggingface
environment:
- HUGGING_FACE_HUB_TOKEN=${HF_TOKEN}
command: >
--model meta-llama/Meta-Llama-3.1-8B-Instruct
--max-model-len 4096
--gpu-memory-utilization 0.9
--tensor-parallel-size 1
--dtype auto
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
volumes:
huggingface_cache:
Использование API vLLM
vLLM предоставляет OpenAI-совместимый API:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-8B-Instruct",
"messages": [
{"role": "system", "content": "Ты полезный ассистент."},
{"role": "user", "content": "Что такое Docker?"}
],
"max_tokens": 512,
"temperature": 0.7
}'
Python с vLLM
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="meta-llama/Meta-Llama-3.1-8B-Instruct",
messages=[
{"role": "system", "content": "Ты эксперт по Linux."},
{"role": "user", "content": "Как настроить RAID?"}
],
max_tokens=1024,
temperature=0.7
)
print(response.choices[0].message.content)
Конфигурация Multi-GPU
docker run -d \
--name vllm-multi \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:latest \
--model meta-llama/Meta-Llama-3.1-70B-Instruct \
--tensor-parallel-size 4 \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
Мониторинг GPU
# Текущий статус
nvidia-smi
# Непрерывный мониторинг
watch -n 1 nvidia-smi
# Только использование GPU и память
nvidia-smi --query-gpu=index,name,utilization.gpu,memory.used,memory.total,temperature.gpu --format=csv -l 1
Мониторинг с Prometheus + Grafana
version: '3.8'
services:
dcgm-exporter:
image: nvcr.io/nvidia/k8s/dcgm-exporter:3.3.5-3.4.0-ubuntu22.04
container_name: dcgm-exporter
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
ports:
- "9400:9400"
restart: unless-stopped
Безопасность и оптимизация
# Включение режима постоянства (низкая задержка)
sudo nvidia-smi -pm 1
# Фиксация тактовой частоты GPU
sudo nvidia-smi -lgc 1410,1410
# Установка лимита мощности
sudo nvidia-smi -pl 300
Запускайте свои ИИ-модели с высокой производительностью на GPU-серверах REXE с NVIDIA A100/H100. Свяжитесь с нами для профессиональных GPU-серверных решений.
Связанные статьи
Установка Ollama: Руководство по локальному запуску LLM
Установка Ollama, запуск локальных LLM моделей (Llama 3, Mistral, Gemma), использование API, управление моделями, GPU-ускорение и развертывание через Docker.
Установка Open WebUI: Локальный ИИ с интерфейсом как у ChatGPT
Установка Open WebUI через Docker, интеграция с Ollama, управление пользователями, RAG (запросы к документам), управление моделями и поддержка нескольких пользователей.
Установка Stable Diffusion: Self-Hosted генерация изображений
Установка Stable Diffusion, интерфейсы AUTOMATIC1111 и ComfyUI, загрузка моделей, обучение LoRA, использование ControlNet и Docker self-hosted генерация изображений.