Я обожаю контейнеры. Они радикально упрощают настройку энвайромента как для обучения (нужная версия куды, питона и всех остальных либ), так и пайплайна в целом (взаимодействие между моделями, сбор метрик и т.п.)
У нас после внедрения сборки и запуска средствами docker и docker-compose, благодаря которым их мог сделать каждый, разработка в команде ускорялась в разы - каждый человек становился гораздо более автономным.
Исчезал огромный оверхед на коммуникацию и косяки, связанные с человеческим фактором. Не нужно было ждать пока кто-то обновит твою модель, или бояться что пока ты считашь со своей моделью сквозные метрики по пайплайну кто-то заменит другую его часть.
Ну и конечно унификация кодовой базы с тем что в проде сильно упрощалась поддержку этого монстра.
Нужно было лишь потратить время на написание скриптов-надстроек и помощь коллегам на начальных этапах, что быстро окупалось.
При этом конкретно к докеру у меня неоднозначное отношение. Во-первых, проект не очень быстро развивается в последнее время. Во-вторых, для работы в интерактивном режиме докер не подходит вообще.
Если вам приходилось что-то обучать в нем, вы наверняка чувствовали боль, когда каждый раз прописывали команды запуска контейнера, чтобы примонтировать все нужные вольюмы, дать доступ к гпу, прописать правильного юзера, etc.
Отдельная проблема это root-права, которые включены по дефолту. Особенно когда речь идет об общем кластере, что в глубоком обучении довольно распространено, каждому под стол тачку с 4мя картами не поставишь.
Кто-то обязательно пожалуется, что не может удалить файлы, созданные в контейнере, находясь снаружи него, и что ему нужно sudo. А получив его, обязательно сделает 'rm -rf /' или 'сhmod 777 -R /'
Второе веселее - эта команда не спросит, уверен ли ты, а система работать практически перестанет. Попробуйте на досуге в виртуалке. Не на реальной тачке!
И сделать это может как джун, вчера впервые в жизни открывший консоль, так и матерый разраб, который просто поставил пробел не в том месте и не заметил. Знакомые рассказывали, что кто-то подобным образом сломал ось на DGX.
Не говоря уже о проблемах с безопасностью в случае когда кто-то специально захочет что-то сломать.
Существует отличная альтернатива докеру под названием singularity. sylabs.io,: работает только под вашим юзером, монтирует текущую рабочую директорию по умолчанию, из коробки умеет работать с гпу, полностью поддерживает образы от докера.
Я когда-то делал доклад про нее youtube.com/watch?v=z0tP4w… (c середины). Он немного устарел, часть проблем которые я там обозначил уже исправлены, но общий расклад не поменялся. По крайне туманным для меня причинам, к сожалению, она почти никем не используется.