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


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 запускает записные книжки, создает задания и выполняет другие задачи в промежуточных и рабочих областях.

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

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

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

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

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

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

На схеме показан процесс, реализованный по умолчанию MLOps Stack. В рабочей области разработки специалисты по обработке и анализу данных выполняют итерацию кода машинного обучения и запросов на вытягивание файлов (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
Оркестратор Задания Databricks
CI/CD GitHub Actions, Azure DevOps
Мониторинг производительности данных и моделей Мониторинг Lakehouse

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

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