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. Компоненты, показанные на схеме, создаются для вас, и для добавления пользовательского кода вам потребуется только изменить файлы.
На схеме:
-
Ответ. Инженер по обработке и анализу данных или машинного обучения инициализирует проект с помощью
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 Stacks
В стеке MLOps используются пакеты ресурсов Databricks — коллекция исходных файлов, которые служат комплексным определением проекта. Эти исходные файлы содержат сведения о том, как они должны быть протестированы и развернуты. Сбор файлов в виде пакета упрощает совместное изменение версий и использование рекомендаций по проектированию программного обеспечения, таких как управление версиями, проверка кода, тестирование и CI/CD.
На схеме показаны файлы, созданные для стека MLOps по умолчанию. Дополнительные сведения о файлах, включенных в стек, см. в документации по репозиторию GitHub или наборам ресурсов Databricks для 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.