Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта функция доступна в общедоступной предварительной версии.
Замечание
Задания развертывания не должны использоваться с клиентами или отслеживанием моделей MLflow 3 и могут быть включены в старых существующих моделях в каталоге Unity. Однако рекомендуется использовать MLflow 3.
В этой статье описывается использование заданий развертывания MLflow в рамках рабочего процесса машинного обучения для управления полным жизненным циклом моделей машинного обучения.
Что такое задания развертывания?
Задания развертывания позволяют автоматизировать такие задачи, как оценка, утверждение и развертывание при создании новой версии модели, интеграция с моделями каталога Unity и заданиями Lakeflow. Эти задания упрощают настройку конвейеров развертывания моделей, включают утверждения с участием человека и предоставляют управляемые рабочие процессы с четкой видимостью хода выполнения и исторического контекста для каждой версии модели.
При использовании заданий развертывания процесс полностью автоматизирован; они активируются автоматически в момент создания новой версии модели, отображая статус выполнения задания развертывания прямо на страницах модели и версии модели. Исторические сведения о каждом выполнении задания развертывания удобно отслеживаются в журнале действий, обеспечивая прозрачность и простоту управления.
Интеграция с системой отслеживания моделей MLflow 3
Databricks рекомендует использовать MLflow Tracking 3 для регистрации моделей и выполнения оценки в процессе развертывания. Новый клиент автоматически регистрирует метрики из ознакомительной части задания развертывания, которая будет отображаться в пользовательском интерфейсе версии модели каталога Unity. Это позволит пользователям использовать централизованные метрики, параметры и трассировки на странице версии модели, чтобы принять обоснованные решения о том, когда будет выполняться модель дальше в жизненном цикле задания развертывания.
Интеграция с каталогом Unity CREATE MODEL VERSION ACL
Задания развертывания естественным образом интегрируются с недавно выпущенной функцией Unity Catalog Create Model Version ACL, завершая историю MLOps. В частности, пользователю можно предоставить ACL для создания версии модели, чтобы зарегистрировать новые версии модели. После того как пользователь считает модель достаточно хорошей для рабочей среды, они зарегистрируют эту версию в каталоге моделей Unity, что запустит задание развертывания для автоматической оценки модели. На этом этапе утверждающий может вручную утвердить эту версию для развертывания или отклонить ее.
Это важно
Задание развертывания будет автоматически активироваться с помощью учетных данных владельца модели. Это означает, что предоставление пользователю разрешения на модель каталога Unity позволяет пользователю CREATE MODEL VERSION выполнять произвольный код в рамках задания. По этой причине Databricks рекомендует настроить задание развертывания с помощью сервисного аккаунта с минимальными разрешениями, чтобы предотвратить эскалацию привилегий.
Примеры заданий развертывания
Ниже приведены некоторые примеры заданий развертывания, которые отражают распространенные варианты использования. Обратите внимание, что это только примеры и их можно настроить по мере необходимости.
Простой пример задания развертывания состоит из 3 шагов: оценка, утверждение и развертывание. Вызов mlflow.evaluate выполняет создание метрик для проверки представленной версии модели. Утверждение позволяет привилегированным пользователям определить, являются ли эти метрики удовлетворительными и, если да, утвердить модель. Наконец, процесс развертывания передает версию модели на конечную точку сервиса модели в Databricks.
На рисунке ниже показаны задачи заданий Lakeflow, составляющие это простое задание развертывания, состоящее из задач оценки, утверждения и развертывания:
Вы также можете создать более сложное задание развертывания. Например, может потребоваться выполнить поэтапное развертывание с шагом сбора метрик в рамках рабочего процесса. Чтобы создать это задание развертывания, можно добавить дополнительные задачи после задачи утверждения для развертывания модели на 1%, развернуть модель на 10%, собрать и проверить метрики, решить, продолжать или откатить модель, а затем развернуть модель на 100% или откатить модель. На рисунке ниже показано, как выглядит это более сложное задание развертывания:
Создание задания развертывания
Задания развертывания позволяют управлять жизненным циклом версии модели. Для использования заданий развертывания сначала требуется версия модели, созданная в зарегистрированной модели. Ознакомьтесь с примерами записных книжек MLflow 3 для рекомендуемых подходов к обучению и регистрации моделей.
Databricks рекомендует задать поле Запуск от имени служебному принципалу с минимальными разрешениями. Кроме того, для задачи утверждения Databricks рекомендует отключить повторные попытки , так как задача, как ожидается, завершится сбоем. Это предотвращает более длительное ожидание и несколько журналов ошибок.
Задание развертывания должно иметь два параметра задания: model_name и model_version. Databricks также рекомендует установить максимальное количество одновременных запусков равно 1 (по умолчанию), чтобы предотвратить конкурентные условия при развертывании.
Существует два способа создания задания развертывания: программно с помощью записной книжки развертывания или использования пользовательского интерфейса. В обоих случаях необходимо предоставить каждую из задач задания в виде записной книжки.
Создание задания развертывания программным способом с помощью записной книжки (рекомендуется)
Использование блокнота для развертывания, чтобы программно создать задание на развертывание, рекомендуется, поскольку он использует набор SDK Databricks и таким образом все конфигурации легко настраиваются с основным источником информации в коде. Этот метод также позволяет легко развертывать несколько заданий и других ресурсов в нескольких рабочих областях.
В приведенных ниже инструкциях используется простой пример шаблона для настройки задания развертывания с основными задачами оценки, утверждения и развертывания.
- Создание и регистрация модели каталога Unity. Например, см. пример традиционного рабочего процесса машинного обучения MLflow 3 .
- Создайте записную книжку, которая определяет задачу оценки. Чтобы оценить модель, созданную на основе примера Традиционного Машинного Обучения, например, импортируйте записную книжку оценки для классического машинного обучения. Записная книжка оценки для ИИ предоставляет пример оценки внешней модели ИИ. При необходимости обновите необходимые элементы . Для других моделей используйте этот ноутбук в качестве шаблона и настройте его для оценки вашей модели для вашего уникального случая.
- Создайте блокнот, который определяет задачу утверждения. Например, импортируйте ноутбук для утверждения в вашу рабочую область. Дополнительные сведения о работе этой записной книжки см. в разделе "Утверждения ". Вы также можете использовать эту записную книжку в качестве шаблона и обновить ее в соответствии с вашими потребностями.
- Создайте записную книжку, определяющую задачу развертывания. Например, импортируйте приведенную ниже записную книжку развертывания в рабочую область. Вы также можете использовать эту записную книжку в качестве шаблона и обновить ее в соответствии с вашими потребностями.
- Создайте записную книжку, которая создает и координирует задание развертывания. Например, импортируйте записную книжку задания развертывания в рабочую область. Эта записная книжка создает задание Databricks, которое становится задачей развертывания. Обязательно обновите необходимые элементы в записной книжке, чтобы правильно определить задание, используя модель каталога Unity и соответствующие задачи. Вы также можете использовать эту записную книжку в качестве шаблона и обновить ее в соответствии с вашими потребностями. Например, может потребоваться включить дополнительные задачи, если у вас есть более сложный план развертывания.
- Запустите записную книжку задания развертывания, чтобы создать задание развертывания.
Создание задания развертывания с помощью пользовательского интерфейса заданий
Задания также можно создавать с помощью пользовательского интерфейса вместо использования пакета SDK в приведенном выше шаблоне. Однако для каждой задачи записной книжки записные книжки должны создаваться вручную и сохраняться где-то в рабочей области. Для модели инструкций предполагается простой рабочий процесс развертывания с задачами оценки, утверждения и развертывания. Настройте инструкции, добавив дополнительные задачи, если у вас есть более сложный рабочий процесс развертывания.
Создание и регистрация модели каталога Unity. Например, см. пример традиционного рабочего процесса машинного обучения MLflow 3 .
Создайте записную книжку, которая определяет задачу оценки. Чтобы оценить модель, созданную на основе примера Традиционного Машинного Обучения, например, импортируйте записную книжку оценки для классического машинного обучения. Записная книжка оценки для ИИ предоставляет пример оценки внешней модели ИИ. При необходимости обновите необходимые элементы . Для других моделей используйте этот ноутбук в качестве шаблона и настройте его для оценки вашей модели для вашего уникального случая.
Создайте блокнот, который определяет задачу утверждения. Например, импортируйте ноутбук для утверждения в вашу рабочую область. Дополнительные сведения о работе этой записной книжки см. в разделе "Утверждения ". Вы также можете использовать эту записную книжку в качестве шаблона и обновить ее в соответствии с вашими потребностями.
Создайте записную книжку, определяющую задачу развертывания. Например, импортируйте приведенную ниже записную книжку развертывания в рабочую область. Вы также можете использовать эту записную книжку в качестве шаблона и обновить ее в соответствии с вашими потребностями.
Создайте задание развертывания в пользовательском интерфейсе заданий Lakeflow:
В области навигации слева нажмите кнопку +Создать > задание , чтобы создать новое задание.
Настройте каждую задачу. Например, для задачи развертывания:
- Имя задачи: развертывание
- Тип: Записная книжка
- Источник: Рабочее пространство
- Путь:
/Workspace/Users/<user.name@email.com>/deployment. - Вычисления: бессерверные
Дополнительные сведения о конфигурации см. в разделе "Задачи записной книжки" для заданий.
После завершения создания каждой задачи добавьте параметры задания. На правой панели нажмите кнопку "Изменить параметры". Добавьте
model_nameиmodel_version.- Примечание. Распространенная ошибка заключается в добавлении этих параметров в качестве параметров уровня задач. Не забудьте добавить их в качестве параметров уровня заданияс помощью правой панели.
Ниже приведен пример создания приведенного выше задания шаблона с помощью пользовательского интерфейса:
Подключение задания развертывания к модели
После создания модели каталога Unity и задания развертывания необходимо подключить задание к модели в качестве задания развертывания. Вы можете использовать пользовательский интерфейс или сделать это программным способом в записной книжке развертывания.
После подключения задачи развертывания к модели оно отображается на странице модели.
Подключение задания развертывания к модели с помощью пользовательского интерфейса
На странице модели на вкладке "Обзор " в разделе "Задание развертывания" нажмите кнопку "Подключить задание развертывания".
Выберите задание развертывания из раскрывающегося списка. Вы также можете использовать строку поиска для поиска заданий по имени или идентификатору. Нажмите кнопку Сохранить изменения.
Подключение задания развертывания к модели с помощью клиента MLflow
Основной способ программного подключения задания развертывания — использование клиента MLflow. Это можно сделать при создании зарегистрированной модели путем вызова client.create_registered_model(model_name, deployment_job_id=<your-created-job-id>)или при обновлении зарегистрированной модели путем вызова client.update_registered_model(model_name, deployment_job_id=<your-created-job-id>).
Основной способ программного отключения задачи развертывания — это также использование клиента MLflow. Это можно сделать, указав пустую строку "" и вызвав обновление с ним (например, client.update_registered_model(model_name, deployment_job_id="")).
Используйте код, аналогичный следующему в ноутбуке развертывания:
import mlflow
from mlflow.tracking.client import MlflowClient
client = MlflowClient(registry_uri="databricks-uc")
# model_name specifies the location of a model in Unity Catalog
# model_name should be in the format <catalog>.<schema>.<model>
try:
if client.get_registered_model(model_name):
client.update_registered_model(model_name, deployment_job_id=created_job.job_id)
except mlflow.exceptions.RestException:
client.create_registered_model(model_name, deployment_job_id=created_job.job_id)
Необходимые разрешения
Для подключения и активации заданий развертывания требуются следующие разрешения:
- Менеджер или Владелец модели для связи с заданием развертывания
- Владельцу модели потребуется разрешение CAN MANAGE RUN или более поздней версии для задания развертывания, чтобы подключить его.
- ПРИМЕЧАНИЕ. Это поле задания развертывания также можно обновить в модели пользователем с разрешениями уровня "Управление" или более высокого. В этом случае и средству обновления, и владельцу модели потребуется разрешение уровня "CAN MANAGE RUN" или выше для подключения к заданию развертывания.
Запустить задание развертывания
Задание развертывания будет автоматически активировано на всех новых версиях модели, созданных, и его также можно вручную активировать как на существующей, так и ранее развернутой версии на странице версии модели, нажав кнопку "Пуск задания развертывания".
Задание также можно активировать непосредственно из пользовательского интерфейса заданий или API. Необходимо указать соответствующее имя и версию модели в параметрах задания.
Необходимые разрешения
Для активации заданий развертывания требуются следующие разрешения:
- Чтобы вручную активировать или восстановить задание развертывания с помощью пользовательского интерфейса версии модели, пользователь должен иметь списки управления запуском или более высокими списками ACL для задания развертывания (те же списки управления доступом, необходимые для запуска задания с помощью пользовательского интерфейса заданий).
- Поскольку задание автоматически запускается при создании новой версии и использует учетные данные владельца модели, владелец модели должен иметь уровень доступа "Управление выполнением" или более высокий ACL для задания по развертыванию.
Утвердите задание на развертывание (экспериментальное)
Databricks предоставляет экспериментальный механизм одобрения для заданий развертывания, что позволяет выполнять процесс с участием человека для конвейеров машинного обучения. После запуска задания на развертывание на странице версии модели появляются метрики, полученные в ходе оценки. После проверки этих метрик утверждающий может утвердить версию модели в пользовательском интерфейсе, нажав кнопку "Утвердить". Эта возможность использует теги Unity Catalog, чтобы определить, должна ли задача на утверждение пройти или провалиться. Задачи утверждения определяются именами задач заданий, начинающимися с «approval» (без учета регистра), и будут успешно выполнены при установленном значении тега Approved каталога Unity (путем нажатия кнопки утверждения в пользовательском интерфейсе или при ручной установке).
Вот как работает процесс утверждения:
- Начальное выполнение. Первый запуск задания развертывания всегда завершится ошибкой задачи утверждения, так как версия модели еще не утверждена и поэтому не имеет требуемого тега каталога Unity.
- Оценка утверждения: утверждающий проверяет версию модели и ее метрики оценки, которые отображаются на странице версии модели. Это позволяет лицу, утверждающему, оценить качество и готовность версии модели.
- Действие утверждения: если утверждающий считает версию модели удовлетворительной, он нажимает кнопку «Утвердить» в боковой панели задания развертывания на странице версии модели.
Это действие автоматически восстанавливает выполнение задания и добавляет тег каталога Unity в версию модели, где:
- Ключ тега соответствует имени задачи утверждения. Например, в примере записной книжки утверждения это.
Approval_Check - Значение тега установлено на
Approved.
- Продолжение задания: восстановленное задание развертывания автоматически возобновляется из задачи утверждения. На этот раз процесс проходит, потому что теперь присутствует требуемый тег каталога Unity. Затем он переходит к последующим задачам, таким как развертывание.
Необходимые разрешения
Для добавления тегов каталога Unity и активации заданий развертывания требуются следующие разрешения:
- ПРИМЕНЕНИЕ ТЕГа в модели каталога Unity.
- МОЖЕТ ЗАПУСКАТЬ задачу развертывания.
Управляемые теги для расширенного процесса согласования
Кроме того, можно указать, кто имеет разрешение на утверждение и применение тегов с помощью политики управляемых тегов для определенного имени тега. При использовании политики управляемых тегов и указания APPLY_TAG разрешений для пользователя или группы можно:
- Несколько независимых групп утверждения в задаче развертывания.
- Например, можно иметь два отдельных тега для раздельных групповых утверждений, таких как:
Approval_LegalиApproval_Security, где вы можете:- Создайте политику управляемого тега, чтобы только юридический отдел мог задавать
Approval_Legalтег. - Создайте дополнительную политику тегов, поэтому только команда безопасности может задать
Approval_Securityтег. - У вас есть две задачи на утверждение в задании развертывания, соответствующие юридическим и безопасностным утверждениям.
- Предоставьте обеим командам
APPLY_TAGдоступ к модели, чтобы они могли установить тег, но утверждать могут только свои собственные проверки.
- Создайте политику управляемого тега, чтобы только юридический отдел мог задавать
- Например, можно иметь два отдельных тега для раздельных групповых утверждений, таких как:
- Задайте политику тегов, чтобы запретить владельцу модели утвердить задание, чтобы убедиться, что имеется утверждение второго лица.
- Стандартизация проверок утверждения в хранилище метаданных, каталоге и схеме с политиками тегов и согласованными именами тегов.
Просмотр состояния задания развертывания и журнала действий
После активации заданий развертывания в версиях модели текущее состояние этих развертываний можно просмотреть на странице модели на вкладке "Обзор ". Под состоянием можно увидеть исторические действия в журнале действий. Журнал действий также отображается на странице версии модели.
Необходимые разрешения
Для просмотра заданий развертывания и журнала действий (аналогично просмотру модели) требуются следующие разрешения:
- Выполнить в модели каталога Unity.
Примеры шаблонов для задач развертывания в записных книжках
Следующие примеры ноутбуков можно использовать как шаблон для создания простого задания на развертывание, включающего задачи оценки, утверждения и развертывания. Обязательно укажите значения REQUIRED в блокнотах, чтобы настроить задание развертывания для вашей модели.
Блокнот для оценки ИИ
Пример ознакомительной записной книжки для GenAI
Записная книжка для классического машинного обучения
Пример ознакомительной записной книжки для классического машинного обучения
Журнал согласований
Пример записной книжки утверждения
Блокнот развертывания
Пример записной книжки развертывания
Создание записной книжки для задания на развертывание
Пример записной книжки для создания задания развертывания
Дальнейшие шаги
Дополнительные сведения о новых возможностях MLflow 3 и начале работы см. в следующей статье: