Поделиться через


MlOps Stacks: процесс разработки модели в виде кода

В этой статье описывается, как MLOps Stacks позволяет реализовать процесс разработки и развертывания в виде кода в управляемом источником репозитории. В нем также описываются преимущества разработки моделей на платформе Databricks Data Intelligence, единой платформой, которая объединяет каждый шаг процесса разработки и развертывания модели.

Что такое стеки MLOps?

При использовании MLOps Stacks весь процесс разработки модели реализуется, сохраняется и отслеживается как код в управляемом источником репозитории. Автоматизация процесса таким образом упрощает более повторяющиеся, предсказуемые и систематические развертывания и позволяет интегрироваться с процессом CI/CD. Представление процесса разработки модели в виде кода позволяет развертывать код вместо развертывания модели. Развертывание кода автоматизирует возможность сборки модели, что упрощает переобучение модели при необходимости.

При создании проекта с помощью MLOps Stacks вы определяете компоненты процесса разработки и развертывания машинного обучения, такие как записные книжки для разработки компонентов, обучения, тестирования и развертывания, конвейеров для обучения и тестирования, рабочих областей для каждого этапа и рабочих процессов CI/CD с помощью GitHub Actions или Azure DevOps для автоматического тестирования и развертывания кода.

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

Как работает MLOps Stacks?

Интерфейс командной строки Databricks используется для создания стека MLOps. Пошаговые инструкции см. в статье Databricks Asset Bundles for MLOps Stacks.

При создании проекта MLOps Stacks программное обеспечение проводит вас через процесс ввода сведений о конфигурации, а затем создает новый каталог, содержащий файлы, составляющие ваш проект. Этот каталог или стек реализует рабочий процесс MLOps, рекомендуемый Databricks. Компоненты, показанные на схеме, создаются для вас, и для добавления пользовательского кода вам потребуется только изменить файлы.

Схема компонентов MLOps Stacks

На схеме:

  • Ответ. Инженер по обработке и анализу данных или машинного обучения инициализирует проект с помощью databricks bundle init mlops-stacks. При инициализации проекта можно настроить компоненты кода машинного обучения (обычно используемые специалистами по обработке и анализу данных), компоненты CI/CD (обычно используемые инженерами машинного обучения) или оба.
  • B: инженеры машинного обучения настроили секреты служебного принципала в Databricks для CI/CD.
  • C. Специалисты по обработке и анализу данных разрабатывают модели в Databricks или локальной системе.
  • D: Аналитики данных создают pull-запросы для обновления кода машинного обучения.
  • E: Агент CI/CD запускает записные книжки, создает задания и выполняет другие задачи в тестовой и производственной средах.

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

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

Как показано на схеме, стек MLOps по умолчанию включает следующие три компонента:

  • Код машинного обучения. MlOps Stacks создает набор шаблонов для проекта машинного обучения, включая записные книжки для обучения, пакетного вывода и т. д. Стандартный шаблон позволяет специалистам по обработке и анализу данных быстро приступить к тестированию, унифицировать структуру проекта между командами и применить модульный код.
  • Ресурсы машинного обучения в виде кода. MLOps Stacks определяет ресурсы, такие как рабочие области и пайплайны для таких задач, как обучение и пакетное прогнозирование. Ресурсы определяются в пакетах ресурсов Databricks для упрощения тестирования, оптимизации и управления версиями для среды машинного обучения. Например, можно попробовать более крупный тип экземпляра для автоматического переобучения модели, а изменение автоматически отслеживается для последующей ссылки.
  • CI/CD. Вы можете использовать GitHub Actions или Azure DevOps для тестирования и развертывания кода машинного обучения и ресурсов, гарантируя, что все производственные изменения осуществляются автоматизировано и развертывается только протестированный код в прод.

Поток проекта MLOps

Проект MLOps Stacks по умолчанию включает конвейер машинного обучения с рабочими процессами CI/CD для тестирования и развертывания автоматизированных заданий обучения модели и пакетных заданий вывода данных в рабочих областях разработки, этапа подготовки и производственных областях Databricks. MlOps Stacks настраивается, поэтому можно изменить структуру проекта в соответствии с процессами вашей организации.

На схеме показан процесс, реализованный по умолчанию MLOps Stack. В рабочей области разработки специалисты по обработке и анализу данных повторно прорабатывают код машинного обучения и подают pull-реквесты (PR). PR активируют модульные тесты и тесты интеграции в изолированной промежуточной рабочей области Databricks. При слиянии PR с основной ветвью задания обучения моделей и пакетного вывода, которые выполняются в промежуточном режиме, немедленно обновляются для выполнения последнего кода. После слияния PR в основную ветвь вы можете создать новую ветвь выпуска в запланированном порядке и развернуть изменения кода на продуктивной среде.

Общая схема потока mlops

Структура проекта MLOps Stacks

В стеке MLOps используются пакеты активов Databricks — коллекция исходных файлов, которые служат полным определением проекта. Эти исходные файлы содержат сведения о том, как они должны быть протестированы и развернуты. Сбор файлов в виде пакета упрощает совместное изменение версий и использование рекомендаций по проектированию программного обеспечения, таких как управление версиями, проверка кода, тестирование и CI/CD.

На схеме показаны файлы, созданные для стека MLOps по умолчанию. Дополнительные сведения о файлах, включенных в стек, см. в документации по репозиторию GitHub или наборам ресурсов Databricks для MLOps Stacks.

Структура каталогов MLops Stacks

Компоненты MLOps Stacks

"стек" относится к набору инструментов, используемых в процессе разработки. По умолчанию MLOps Stack использует унифицированную платформу Databricks и использует следующие средства:

Компонент Инструмент в Databricks
Код разработки модели машинного обучения Databricks записные книжки, MLflow
Разработка функций и управление ими Проектирование компонентов
Репозиторий моделей машинного обучения Модели в каталоге Unity
Обслуживание модели машинного обучения Мозаичное развертывание модели ИИ
Инфраструктура как код Пакеты активов Databricks
Оркестратор Задания Lakeflow
CI/CD GitHub Actions, Azure DevOps
Мониторинг производительности данных и моделей Мониторинг Lakehouse

Следующие шаги

Чтобы начать, см. Наборы ресурсов Databricks для MLOps Stacks или на GitHub в репозитории Databricks MLOps Stacks.