Шаблоны развертывания моделей

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

Модели создаются в коде, но итоговые артефакты модели и код для их создания могут работать асинхронно. То есть новые версии модели и изменения в коде могут быть разнесены во времени. Например, рассмотрим следующие сценарии:

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

шаблоны развертывания

Шаблоны различаются тем, переводится ли в рабочую среду артефакт модели или создающий его обучающий код.

В большинстве случаев в Databricks рекомендуется подход на основе развертывания кода. Этот подход включен в рекомендуемый рабочий процесс MLOps.

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

Преимущества.

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

Недостатки.

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

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

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

Развертывание моделей

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

Рассмотрите этот вариант, если применяется один или несколько из следующих вариантов:

  • Обучение модели является очень затратным или трудно воспроизвести.
  • Вся работа выполняется в одной рабочей области Azure Databricks.
  • Вы не работаете с внешними репозиториями или процессом CI/CD.

Преимущества.

  • Упрощение передачи работы для специалистов по обработке и анализу данных
  • В случае затратного обучения модели требуется только однократное ее обучение.

Недостатки.

  • Если рабочие данные недоступны в среде разработки (по соображениям безопасности), эта архитектура может оказаться невозможной.
  • Автоматическое переобучение моделей в рамках этого шаблона представляет сложность. Вы можете автоматизировать переобучение в среде разработки, но команда, отвечающая за развертывание модели в рабочей среде, может не принять итоговую модель как готовую.
  • Вспомогательный код, например конвейеры, используемые для проектирования признаков, вывода и мониторинга, необходимо развернуть в рабочей среде отдельно.

Обычно среда (разработка, промежуточная или рабочая среда) соответствует каталогу в каталоге Unity. Дополнительные сведения о реализации этого шаблона см . в руководстве по обновлению.

На приведенной ниже схеме показан жизненный цикл кода для описанных выше шаблонов развертывания в разных средах выполнения.

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

жизненный цикл шаблонов развертывания