Как лучше хранить веса модели: в Docker образе или загружать отдельно
Что проверяют
Понимаете ли вы, как размер артефакта влияет на деплой, масштабирование и воспроизводимость. Ответа «всегда так» нет, ждут критериев выбора. Следом спрашивают, как вы гарантируете, что код и веса одной версии окажутся в одном контейнере.
Как отвечать
Отталкивайтесь от размера весов и частоты обновления.
- в образе: подходит небольшим моделям. Плюс в атомарности: тег образа однозначно задаёт код, зависимости и модель, откат это смена тега. Кладите веса отдельным слоем до копирования кода, тогда правка кода не перезаливает гигабайты;
- отдельно: веса лежат в S3-совместимом хранилище или реестре моделей вроде MLflow, образ содержит только сервинг. Версия модели приходит из конфига, веса скачиваются при старте, в Kubernetes часто init-контейнером в общий том. Так устроен storage initializer в KServe;
- большие модели: LLM на десятки гигабайт в образ класть непрактично. Холодный старт упирается в скачивание, а при автоскейлинге десять подов тянут одно и то же. Помогают PVC с заранее загруженными весами, кеш на ноде, а в свежих версиях Kubernetes тома из OCI-образа, когда модель лежит в реестре отдельным артефактом.
При отдельной загрузке обязательны три вещи: версия прибита явно, а не latest; контрольная сумма проверяется после скачивания; readiness probe не пускает трафик, пока веса не в памяти. Формат лучше safetensors: загрузка pickle-чекпойнта может выполнить произвольный код.
Итог: маленькая модель, редкие обновления и строгая воспроизводимость ведут к образу. Большие веса, частые переобучения и A/B между версиями ведут к внешнему хранилищу с реестром.
Где спотыкаются
Думают только об удобстве сборки и забывают про время подъёма пода. Образ на 15 ГБ на новой ноде стартует минутами, и автоскейлинг под пиком не успевает.
Выносят веса наружу без привязки версии. Код ждёт новый формат выхода, под скачал старую модель, и воспроизвести ответ уже нельзя.
Считают, что Docker версионирует модель. Он версионирует образ, а связь «эта модель обучена на этих данных с такими метриками» даёт реестр моделей.