Docker Model Runner: простий спосіб запускати AI-моделі локально

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

Компанія Docker випустила нову функцію у бета-версії під назвою Docker Model Runner. Вона дозволяє завантажувати, запускати й керувати AI-моделями безпосередньо на вашому локальному комп’ютері без необхідності налаштовувати складну інфраструктуру. Але поки що ця функція доступна лише у Docker Desktop для Mac на Apple Silicon

Що воно таке і навіщо воно треба

Docker Model Runner — це плагін для Docker Desktop, який значно спрощує роботу з AI-моделями.

Він дозволяє:

  • Завантажувати моделі з Docker Hub
  • Запускати AI-моделі безпосередньо з командного рядка
  • Керувати локальними моделями (додавати, переглядати, видаляти)
  • Взаємодіяти з моделями через запити або у режимі чату

Як це працює

Моделі завантажуються лише один раз і зберігаються локально. Під час кожного запиту модель завантажується в пам’ять, а після завершення — вивантажується.

Ви можете працювати як з одноразовими запитами, так і в інтерактивному чат-режимі.

Одноразовий запит

docker model run ai/smollm2 "Hi"
Hello! How can I assist you today?

Інтерактивний чат

docker model run ai/smollm2
Interactive chat mode started. Type '/bye' to exit.
> Hi
Hi there! It`s SmolLM, AI assistant. How can I help you today?
> /bye
Chat session ended.

Видалення моделі

Щоб видалити завантажену модель з системи:

docker model rm <model>
Model <model> removed successfully

API-інтеграція

Із середини контейнера

Приклади виклику OpenAI-сумісного ендпоінту (chat/completions) з іншого контейнера за допомогою curl:

#!/bin/sh
curl http://model-runner.docker.internal/engines/llama.cpp/v1/chat/completions \

    -H "Content-Type: application/json" \
    -d '{
        "model": "ai/smollm2",
        "messages": [
            {
                "role": "system",
                "content": "Ви — корисний асистент."
            },
            {
                "role": "user",
                "content": "Напишіть, будь ласка, 500 слів про падіння Риму."
            }
        ]
    }

Із хосту через Unix-сокет

Приклади виклику ендпоінту через Docker-сокет із хост-системи:

#!/bin/sh
curl --unix-socket $HOME/.docker/run/docker.sock \
    localhost/exp/vDD4.40/engines/llama.cpp/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "ai/smollm2",
        "messages": [
            {
                "role": "system",
                "content": "Ви — корисний асистент."
            },
            {
                "role": "user",
                "content": "Напишіть, будь ласка, 500 слів про падіння Риму."
            }
        ]
    }

Із хосту через TCP

Якщо ви хочете взаємодіяти з API з хосту, але замість Docker-сокета використати TCP, можна увімкнути підтримку TCP через графічний інтерфейс Docker Desktop або через CLI:

docker desktop enable model-runner —tcp <порт>

Після цього звертайтесь до API через localhost і вибраний порт:

#!/bin/sh
curl http://localhost:12434/engines/llama.cpp/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "ai/smollm2",
        "messages": [
            {
                "role": "system",
                "content": "Ви — корисний асистент."
            },
            {
                "role": "user",
                "content": "Напишіть, будь ласка, 500 слів про падіння Риму."
            }
        ]
    }

Приклад

Для ознайомлення з можливостями Docker Model Runner можна скористатися готовим репозиторієм:​

git clone https://github.com/docker/hello-genai.git
cd hello-genai
./run.sh

Після виконання цих команд відкрийте застосунок у браузері для взаємодії з моделлю.

Які обмеження та баги

  • Якщо команда docker model не працює — потрібно створити символьне посилання вручну.
    ln -s /Applications/Docker.app/Contents/Resources/cli-plugins/docker-model ~/.docker/cli-plugins/docker-model
  • Немає захисту від надто великих моделей — це може уповільнити або «покласти» систему.
  • Якщо модель не завантажилася, інтерфейс чату все одно може запуститись, але працювати не буде.

Щоб увімкнути чи вимкнути цю функцію, перейдіть у Settings в розділ Features in development та активуйте або деактивуйте Enable Docker Model Runner і натисніть Apply & Restart.

Детальніше про нововведення можете глянути в офіційній документації.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
на вашому локальному комп’ютері

Непогано було б вказати, що це тільки про мак... Чи інше то вже не комп’ютери?🤡

відредагували, дякую за уточнення

Підписатись на коментарі