Компания Docker выпустила новую интересную функцию в бета-версии, которая должна заинтересовать всех, кто работает с генеративным ИИ. Docker Model Runner позволяет загружать, запускать и управлять ИИ-моделями прямо на вашем локальном компьютере без необходимости настройки сложной инфраструктуры.
Что такое Docker Model Runner и зачем он нужен?
Docker Model Runner — это плагин для Docker Desktop, который существенно упрощает работу с ИИ-моделями.
Функция находится на стадии бета-тестирования, доступна в Docker Desktop версии 4.40 и выше, и пока поддерживается только на Mac с процессорами Apple Silicon.
Плагин позволяет:
-
Загружать модели из Docker Hub (из пространства имён ai)
-
Запускать ИИ-модели напрямую из командной строки
-
Управлять локальными моделями (добавлять, просматривать, удалять)
-
Взаимодействовать с моделями через заданные промпты или в режиме чата
Одно из ключевых преимуществ Docker Model Runner — оптимизация использования ресурсов. Модели загружаются из Docker Hub только при первом использовании и хранятся локально. При этом они загружаются в память только во время выполнения запроса и выгружаются, когда не используются. Поскольку современные ИИ-модели могут быть довольно объёмными, первоначальная загрузка может занять некоторое время, но затем они кешируются локально для быстрого доступа.
Ещё одним важным преимуществом является поддержка OpenAI-совместимых API, что значительно упрощает интеграцию с существующими приложениями.
Основные команды Docker Model Runner
Проверка статуса
$ docker model status Docker Model Runner is running
Просмотр доступных команд
$ docker model help Usage: docker model COMMAND Docker Model Runner Commands: inspect Display detailed information on one model list List the available models that can be run with the Docker Model Runner pull Download a model rm Remove a model downloaded from Docker Hub run Run a model with the Docker Model Runner status Check if the Docker Model Runner is running version Show the Docker Model Runner version Run 'docker model COMMAND --help' for more information on a command.
Загрузка модели
$ docker model pull ai/smollm2 Downloaded: 0.00 MB Model ai/smollm2 pulled successfully
Во время загрузки показывает правильный размер, но после загрузки 0.00 MB, но как я и писал выше, данная фича еще на бета тестировании
Просмотр локальных моделей
Пример вывода:
$ docker model list MODEL PARAMETERS QUANTIZATION ARCHITECTURE MODEL ID CREATED SIZE ai/smollm2 361.82 M IQ2_XXS/Q4_K_M llama 354bf30d0aa3 2 weeks ago 256.35 MiB
Запуск модели
С однократным промптом
$ docker model run ai/smollm2 "Привет" Откривайте ввысокое, что наше входные данные.
В режиме диалога
$ docker model run ai/smollm2 Interactive chat mode started. Type '/bye' to exit. > Привет Привет, my friend! > /bye Chat session ended.
Удаление модели
$ docker model rm ai/smollm2 Model ai/smollm2 removed successfully
Интеграция Docker Model Runner в ваши приложения
Docker Model Runner предоставляет OpenAI-совместимые API-эндпоинты, что позволяет легко интегрировать его с существующими приложениями. Вот пример вызова эндпоинта chat/completions из контейнера:
#!/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": "You are a helpful assistant." }, { "role": "user", "content": "Напиши 500 слов о падении Рима." } ] }'
Вы также можете использовать Docker Model Runner из хоста через сокет 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": "You are a helpful assistant." }, { "role": "user", "content": "Напиши 500 слов о падении Рима." } ] }'
Быстрое начало работы с примером GenAI-приложения
Если вы хотите быстро попробовать Docker Model Runner с готовым приложением генеративного ИИ, выполните следующие шаги:
-
Клонируйте репозиторий с примером:
$ git clone https://github.com/docker/hello-genai.git -
В терминале перейдите в директорию hello-genai.
-
Запустите run.sh для загрузки выбранной модели и запуска приложения.
-
Откройте приложение в браузере по адресу, указанному в README репозитория.

Доступные API-эндпоинты
После включения Docker Model Runner доступны следующие API:
#### Внутри контейнеров #### http://model-runner.docker.internal/ # Управление моделями POST /models/create GET /models GET /models/{namespace}/{name} DELETE /models/{namespace}/{name} # OpenAI-совместимые эндпоинты GET /engines/llama.cpp/v1/models GET /engines/llama.cpp/v1/models/{namespace}/{name} POST /engines/llama.cpp/v1/chat/completions POST /engines/llama.cpp/v1/completions POST /engines/llama.cpp/v1/embeddings Примечание: Можно также опустить llama.cpp. Например, POST /engines/v1/chat/completions. #### Внутри или вне контейнеров (на хосте) #### Те же эндпоинты на /var/run/docker.sock # Пока функция в бета-версии С префиксом /exp/vDD4.40
Известные проблемы
Команда docker model не распознается
Если вы получаете ошибку:
docker: 'model' is not a docker command
Это означает, что Docker не может найти плагин. Решение:
$ ln -s /Applications/Docker.app/Contents/Resources/cli-plugins/docker-model ~/.docker/cli-plugins/docker-model
Нет защиты от запуска чрезмерно больших моделей
В настоящее время Docker Model Runner не включает защиту от запуска моделей, превышающих доступные ресурсы системы. Попытка запустить слишком большую модель может привести к серьезным замедлениям или временной неработоспособности системы.
Ошибки при неудачных загрузках
Если загрузка модели не удалась, команда docker model run все равно может запустить интерфейс чата, хотя модель фактически недоступна. В этом случае рекомендуется вручную повторить команду docker model pull.
Как включить или отключить функцию
Docker Model Runner включен по умолчанию в Docker Desktop. Если вы хотите отключить эту функцию:
-
Откройте настройки Docker Desktop
-
Перейдите на вкладку Beta в разделе Features in development
-
Снимите флажок Enable Docker Model Runner
-
Нажмите Apply & restart
Если не видно флажка Enable Docker Model Runner, то включите экспериментальные фичи

Заключение
Docker Model Runner предоставляет удобный способ работы с ИИ-моделями локально, что особенно полезно для разработчиков, которые хотят экспериментировать с генеративным ИИ без необходимости подключения к облачным API или настройки сложной инфраструктуры.
Функция находится в бета-версии, поэтому могут возникать некоторые проблемы, но Docker активно работает над их устранением и принимает обратную связь через ссылку Give feedback рядом с настройкой Enable Docker Model Runner.
Если вы работаете с генеративным ИИ или просто хотите попробовать локальные модели без лишних сложностей, Docker Model Runner — отличный инструмент, который стоит добавить в свой арсенал.
ссылка на оригинал статьи https://habr.com/ru/articles/898778/

Добавить комментарий