Организация монорепозитория для машинного обучения с помощью Pants

Monorepo organization for Machine Learning with Pants

MLOps

Оптимизация рабочих процессов МО

Когда-либо ли вы копировали и вставляли фрагменты вспомогательного кода между проектами, что привело к наличию нескольких версий одного и того же кода в разных репозиториях? Или, может быть, вам пришлось делать запросы на объединение в десятках проектов после обновления имени бакета GCP, в котором вы храните свои данные?

Такие ситуации возникают слишком часто в командах машинного обучения, и их последствия могут варьироваться от простого раздражения разработчика до невозможности команды выполнять свой код по требованию. К счастью, есть способ их решения.

Давайте погрузимся в мир монорепозиториев, архитектуры, широко применяемой в крупных технологических компаниях, таких как Google, и узнаем, как они могут улучшить ваш рабочий процесс в области машинного обучения. Монорепозиторий предлагает множество преимуществ, которые, несмотря на некоторые недостатки, делают его привлекательным выбором для управления сложными экосистемами машинного обучения.

Мы кратко обсудим достоинства и недостатки монорепозиториев, рассмотрим, почему они являются отличным выбором для команд машинного обучения, и взглянем на то, как их используют крупные технологические компании. Наконец, мы рассмотрим, как использовать систему сборки Pants для организации вашего монорепозитория машинного обучения в надежную систему сборки CI/CD.

Пристегните ремни, мы отправляемся в этот путь к оптимизации управления вашим проектом МО.

Эта статья была впервые опубликована на блоге neptune.ai.

Что такое монорепозиторий?

Монорепозиторий машинного обучения. Изображение от автора, через neptune.ai.

Монорепозиторий (сокращенно от монолитного репозитория) – это стратегия разработки программного обеспечения, при которой код для множества проектов хранится в одном репозитории. Идея может быть настолько широкой, как все коды компании, написанные на разных языках программирования, хранящиеся вместе (кто-то упомянул Google?), или настолько узкой, как несколько проектов на Python, разрабатываемых небольшой командой, объединенных в одном репозитории.

В этом блоге мы сосредоточимся на репозиториях, хранящих код машинного обучения.

Монорепозитории против полирепозиториев