Развертывание LLM на сервере Bare Metal

Серверы Bare Metal подходят для локального развертывания больших языковых моделей (LLM).

В сценарии развернем модель deepseek-r1:32b. Для этого используем:

  • Ollama — для запуска модели.

  • Open WebUI — для доступа к модели снаружи сервера.

Также настроим общение с моделью напрямую из терминала сервера.

Перед началом работы

  1. Арендуйте сервер Bare Metal с публичным IP-адресом. Для корректной работы модели выбирайте конфигурации с:

    • объемом оперативной памяти не менее 32 ГБ;

    • наличием SSD накопителей;

    • (опционально) поддержкой GPU.

  2. Подключитесь к серверу по SSH.

  3. Установите Docker.

  4. Установите Docker Compose.

Настройте и запустите контейнеры

  1. Создайте каталог для проекта и перейдите в него:

    mkdir llm-deploy-test
    cd llm-deploy-test
    
  2. Создайте файл «compose.yaml» и поместите в него код:

    services:
    ollama:
       image: ollama/ollama
       container_name: ollama
       volumes:
       - ollama_data:/root/.ollama
      # If you use GPUs, uncomment code below by deleting "#" only
      # deploy:
      #   resources:
      #     reservations:
      #       devices:
      #         - driver: nvidia
      #           count: all
      #           capabilities: [gpu]
    
    open-webui:
       # For CPU‑only usage (using the "main" tag):
       image: ghcr.io/open-webui/open-webui:main
       container_name: open-webui
       volumes:
       - openwebui_data:/app/backend/data
       ports:
       - "3000:8080"
       extra_hosts:
       - "host.docker.internal:host-gateway"
       environment:
       # If Ollama is running locally, you can set the base URL as follows:
       - OLLAMA_BASE_URL=http://ollama:11434
       depends_on:
       - ollama
      # If you use GPUs, uncomment code below by deleting "#" only
      # deploy:
      #   resources:
      #     reservations:
      #       devices:
      #         - driver: nvidia
      #           count: all
      #           capabilities: [gpu]
    
    volumes:
    ollama_data:
    openwebui_data:
    
  3. Запустите контейнеры:

    sudo docker compose up -d
    

    Флаг «-d» используется для запуска контейнеров в фоновом режиме. В этом случае в терминале не отобразятся логи.

    Если вам необходимо посмотреть логи, выполните команду:

    docker compose logs -f
    

Настройте Open WebUI и выберите модель

  1. В браузере перейдите на страницу «http://<IP-адрес_сервера>:3000».

  2. Нажмите Get started.

  3. В открывшемся окне настройте аккаунт администратора:

    1. В поле Имя укажите введите имя.

    2. В поле Электронная почта введите ваш e-mail.

    3. В поле Пароль введите пароль.

    4. Нажмите Создать аккаунт администратора.

  4. Справа выберите Настройки → Модели.

  5. Нажмите Manage models и в открывшемся окне:

    1. В поле Загрузить модель с Ollama.com введите «deepseek-r1:32b».

    2. Нажмите Показать.

Откроется окно для общения с моделью.

Настройте работу с моделью из терминала

Вы также можете использовать модель напрямую из терминала. Это позволит ускорить работу, а также получить доступ к некоторым дополнительным инструментам, например LangChain. В рамках сценария используется решение aider.

  1. Справа выберите Настройки → Аккаунт.

  2. В поле Ключи API нажмите Сгенерировать и скопируйте ключ. Он понадобится в дальнейшем.

  3. В терминале выполните запрос для проверки работы API:

    curl -X POST http://<IP-адрес_сервера>:3000/api/chat/completions
    -H "Authorization: Bearer <API-ключ>"
    -H "Content-Type: application/json"
    -d '{
       "model": "deepseek-r1:32b",
       "messages": [
          {
          "role": "user",
          "content": "Why is the sky blue?"
          }
       ]
    }'
    

    В ответ должно отобразиться:

    {"id":"deepseek-r1:7b-d91cdf31-d05d-4185-a512-960753e21239"...
    
  4. Установите aider для работы с моделью в терминале:

    python -m pip install aider-install
    aider-install
    
  5. Настройте подключение aider к Open WebUI:

    export OPENAI_API_BASE=http://<IP-адрес_сервера>:3000/api
    export OPENAI_API_KEY=<API-ключ>
    
  6. Откройте окно для общения с моделью:

    aider --model openai/deepseek-r1:32b
    

Теперь вы можете задавать модели вопросы и получать ответы напрямую в терминале.

Дарим 20 000 бонусов на тест
для юрлиц и ИП
Подробнее