Настройка сервера для использование локальных моделей
На отдельном сервере должна быть установлена видеокарта от Nvidia.
Требование к серверу: SSD-диск объёмом не менее 1 ТБ.
Настройка Docker для работы с GPU
Пример настроек актуален для Ubuntu 22.04 и видеокарты NVIDIA® Ampere® A100
Более подробная информация находится в этой статье:
Resource constraints
Установите драйвера Nvidia:
Official NVIDIA Drivers
sudo apt update && \ sudo apt install -y nvidia-driver-580Перезапустите систему:
sudo rebootУстановите Nvidia Toolkit:
Installing the NVIDIA Container Toolkit — 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 export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1 sudo apt-get install -y \ nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}Настройте Docker:
sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart dockerНастройте Docker Swarm:
Получите список всех GPU:
nvidia-smi -a | grep "GPU UUID"Измените файл Docker-демона
/etc/docker/daemon.json.Добавить в поле
node-generic-resourcesвсе GPU. Из UUID возьмите только первую часть символов.Убедитесь, что выставлен правильный
runtimeпо умолчанию:nvidia.Пример для четырех видеокарт:
{ "runtimes": { "nvidia": { "args": [], "path": "nvidia-container-runtime" } }, "default-runtime": "nvidia", "node-generic-resources": [ "gpu=GPU-ac3e4e21", "gpu=GPU-964267e3", "gpu=GPU-683f34a8", "gpu=GPU-9cbe00be" ] }
Включите использование GPU в Swarm, убрав символ комментария со следующей строки в файле
/etc/nvidia-container-runtime/config.toml:swarm-resource = "DOCKER_RESOURCE_GPU"Перезагрузите сервис Docker:
sudo systemctl restart docker
Добавление ноды в Docker Swarm
На сервере с настроенной платформой выполните следующую команду:
docker swarm join-token workerОтобразится строка вида
docker swarm join --token SWMTKN-1-xxxxВыполните эту команду на сервере с GPU.
Установите правильные метки на ноде с GPU:
На сервере с платформой выполните следующую команду:
docker inspect -f "{{.ID}} {{.Status.Addr}} {{.Spec.Labels}}" $(docker node ls -q)Подставьте идентификатор нужной worker-ноды с GPU в эту команду:
docker node update --label-add ai-v3=true <worker_node_id> docker node update --label-add monitoring-v3=true <worker_node_id>Проверьте, что метки проставились:
docker inspect -f "{{.ID}} {{.Status.Addr}} {{.Spec.Labels}}" $(docker node ls -q)Загрузите на сервер с GPU образ менеджера vLLM, образы необходимых моделей и мониторинга. Ниже перечислен список образов. Образы моделей можно взять на портале дистрибутивов.
# Образ для запуска моделей (менеджер vLLM) cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/ai/vllm-openai:v0.11.0 # Образы моделей cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/ai/model:visiologygpt-pro-v1 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/ai/model:visiologygpt-max-v1 # Образы для мониторинга cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/promtail:3.5.1 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/node-exporter:v1.9.1 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/cadvisor:v0.52.1
Нужна дополнительная помощь?