Изучение архитектуры решения

Завершено

Рассмотрим архитектуру, которую вы выбрали для рабочего процесса MLOps, чтобы понять, где и когда мы должны проверить код.

Схема архитектуры операций машинного обучения.

Примечание.

На схеме демонстрируется упрощенное представление архитектуры MLOps. Чтобы просмотреть архитектуру более подробно, изучите различные варианты использования в акселераторе решений MLOps (версии 2).

Основной целью архитектуры MLOps является создание надежного и воспроизводимого решения. Для достижения этой цели архитектура включает:

  1. Настройка: создание всех необходимых ресурсов Azure для решения.
  2. Разработка моделей (внутренний цикл): изучение и обработка данных для обучения и оценки модели.
  3. Непрерывная интеграция: упаковка модели и её регистрация.
  4. Развертывание модели (внешний цикл): развертывание модели.
  5. Непрерывное развертывание: тестирование модели и перенос в рабочую среду.
  6. Мониторинг: мониторинг производительности модели и конечной точки.

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

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

Давайте рассмотрим рабочий процесс для специалиста по обработке и анализу данных:

Схема разработки на основе общей ветки, включая пулл-реквест и автоматическую проверку кода.

  1. Рабочий код размещается в главной ветви.
  2. Специалист по обработке и анализу данных создает ветвь признаков для разработки моделей.
  3. Специалист по данным создает pull request, чтобы предложить внести изменения в главную ветвь.
  4. При создании запроса на вытягивание запускается рабочий процесс GitHub Actions для проверки кода.
  5. Когда код пройдет линтинг и модульное тестирование, ведущий дата-сайентист должен утвердить предложенные изменения.
  6. После того как ведущий специалист по данным одобрит изменения, пулл-реквест сливается, и основная ветвь обновляется соответственно.

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