Изучение архитектуры решения
Рассмотрим архитектуру, которую вы выбрали для рабочего процесса MLOps, чтобы понять, где и когда мы должны проверить код.
Примечание.
На схеме демонстрируется упрощенное представление архитектуры MLOps. Чтобы просмотреть архитектуру более подробно, изучите различные варианты использования в акселераторе решений MLOps (версии 2).
Основной целью архитектуры MLOps является создание надежного и воспроизводимого решения. Для достижения этой цели архитектура включает:
- Настройка: создание всех необходимых ресурсов Azure для решения.
- Разработка моделей (внутренний цикл): изучение и обработка данных для обучения и оценки модели.
- Непрерывная интеграция: упаковка модели и её регистрация.
- Развертывание модели (внешний цикл): развертывание модели.
- Непрерывное развертывание: тестирование модели и перенос в рабочую среду.
- Мониторинг: мониторинг производительности модели и конечной точки.
Чтобы переместить модель из разработки в развертывание, потребуется непрерывная интеграция. Во время непрерывной интеграции вы упакуете и зарегистрируете модель. Прежде чем упаковать модель, необходимо проверить код, используемый для обучения модели.
Вы договорились с командой по обработке и анализу данных, что будете использовать разработку на основе стволовой ветви. Ветви не только защищают рабочий код, но и позволяют автоматически проверять любые предлагаемые изменения, прежде чем объединять их с рабочим кодом.
Давайте рассмотрим рабочий процесс для специалиста по обработке и анализу данных:
- Рабочий код размещается в главной ветви.
- Специалист по обработке и анализу данных создает ветвь признаков для разработки моделей.
- Специалист по данным создает pull request, чтобы предложить внести изменения в главную ветвь.
- При создании запроса на вытягивание запускается рабочий процесс GitHub Actions для проверки кода.
- Когда код пройдет линтинг и модульное тестирование, ведущий дата-сайентист должен утвердить предложенные изменения.
- После того как ведущий специалист по данным одобрит изменения, пулл-реквест сливается, и основная ветвь обновляется соответственно.
Как инженер по машинному обучению вы должны создать рабочий процесс GitHub Actions, который проверяет код, запуская линтер и модульные тесты при создании pull-запроса.