Запуск в контейнере: когда Docker окупается на локальных весах

При локальном запуске модели на собственном железе контейнер кажется излишеством: зачем Docker, если сервис работает на моей машине? Смысл появляется, когда нужно гарантировать, что модель работает одинаково на рабочей станции разработчика, на CI-стенде и на сервере в датацентре.

Типовая подвоха: система зависит от версии CUDA, от CUDNN, от конкретного Python и пакетов. На разных машинах собираются по-разному, даже если установлены одинаковые версии. Контейнер заморозит весь стек и гарантирует порядок.

Вес образа и время загрузки

Минус очевиден: образ Docker с моделью 7B параметров и всеми зависимостями весит 20–30 Гб. Это неудобно для локальной работы, но приемлемо, если образ лежит на корпоративном регистри и разработчики тянут его один раз.

Фокус в разделении слоёв: основу с CUDA и Python пересобирать редко, модельные веса можно маунтить из отдельного volume или скачивать при запуске. Это снижает размер образа и ускоряет его обновление.

Для open-source проектов контейнеризация создаёт порог входа: пользователь должен установить Docker и притерпеться к консоли. Для корпоративного применения это плата за надёжность, и она оправдана.