Развертывание 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

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

Evolution