Работа с зарегистрированными моделями в Машинное обучение Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
В этой статье описано, как зарегистрировать и работать с моделями в Машинное обучение Azure с помощью:
- Пользовательский интерфейс Студия машинного обучения Azure.
- Интерфейс командной строки Машинное обучение Azure версии 2.
- Пакет SDK для Python Машинное обучение Azure версии 2.
Узнайте следующие темы:
- Создайте зарегистрированные модели в реестре моделей из локальных файлов, хранилищ данных или выходных данных задания.
- Работа с различными типами моделей, таких как custom, MLflow и Triton.
- Используйте модели в качестве входных или выходных данных в заданиях обучения.
- Управление жизненным циклом ресурсов модели.
регистрация модели;
Регистрация модели позволяет хранить и версии моделей в рабочей области в облаке Azure. Реестр моделей позволяет организовывать и отслеживать обученные модели. Модели можно зарегистрировать в качестве ресурсов в Машинное обучение Azure с помощью Azure CLI, пакета SDK для Python или пользовательского интерфейса студии Машинное обучение.
Поддерживаемые пути
Чтобы зарегистрировать модель, необходимо указать путь, указывающий на данные или расположение задания. В следующей таблице показаны различные расположения данных, которые поддерживаются Машинное обучение Azure, а также синтаксис параметраpath
:
Расположение | Синтаксис |
---|---|
Локальный компьютер | <model-folder>/<model-filename> |
хранилище данных Машинное обучение Azure | azureml://datastores/<datastore-name>/paths/<path_on_datastore> |
задание Машинное обучение Azure | azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> |
Задание MLflow | runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> |
Ресурс модели в рабочей области Машинное обучение | azureml:<model-name>:<version> |
Ресурс модели в реестре Машинное обучение | azureml://registries/<registry-name>/models/<model-name>/versions/<version> |
Поддерживаемые режимы
При использовании моделей для входных или выходных данных можно указать один из следующих режимов. Например, можно указать, должна ли модель быть подключена только для чтения или загружена в целевой объект вычислений.
ro_mount
: подключите данные к целевому объекту вычислений только для чтения.rw_mount
: чтение и запись подключения данных.download
: скачайте данные в целевой объект вычислений.upload
: отправка данных из целевого объекта вычислений.direct
: передайте универсальный код ресурса (URI) в виде строки.
В следующей таблице показаны доступные параметры режима для различных входных и выходных данных типа модели.
Тип | upload |
download |
ro_mount |
rw_mount |
direct |
---|---|---|---|---|---|
custom Входные данные файла |
|||||
custom Входные данные папки |
✓ | ✓ | ✓ | ||
mlflow ввод |
✓ | ✓ | |||
custom Выходные данные файла |
✓ | ✓ | ✓ | ||
custom Выходные данные папки |
✓ | ✓ | ✓ | ||
mlflow выпуск |
✓ | ✓ | ✓ |
Необходимые компоненты
- Подписка Azure с бесплатной или платной версией Машинное обучение Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Рабочая область Машинного обучения Azure.
Чтобы запустить примеры кода в этой статье и работать с пакетом SDK Машинное обучение Azure версии 2 или Python Машинное обучение Azure версии 2, вам также потребуется:
Azure CLI версии 2.38.0 или более поздней версии.
Версия 2 расширения, установленная с помощью следующей
ml
команды. Дополнительные сведения см. в разделе Установка, настройка и использование CLI (версия 2).az extension add -n ml
Примечание.
Версия 2 обеспечивает полную обратную совместимость. Вы по-прежнему можете использовать ресурсы модели из пакета SDK версии 1 или CLI. Все модели, зарегистрированные с помощью интерфейса командной строки версии 1 или пакета SDK, назначаются типу custom
.
Регистрация модели с помощью пользовательского интерфейса студии
Чтобы зарегистрировать модель с помощью пользовательского интерфейса Студия машинного обучения Azure:
В рабочей области в студии выберите "Модели " в области навигации слева.
На странице списка моделей выберите "Зарегистрировать" и выберите одно из следующих расположений в раскрывающемся списке:
- Из локальных файлов
- Из выходных данных задания
- Из хранилища данных
- Из локальных файлов (на основе платформы)
На первом экране регистрации модели :
- Перейдите к локальному файлу, хранилищу данных или выходным данным задания для модели.
- Выберите тип входной модели: MLflow, Triton или Неопределенный тип.
На экране параметров модели укажите имя и другие необязательные параметры для зарегистрированной модели и нажмите кнопку "Далее".
На экране "Рецензирование" просмотрите конфигурацию и выберите "Зарегистрировать".
Регистрация модели с помощью Azure CLI или пакета SDK для Python
В следующих фрагментах кода описано, как зарегистрировать модель в качестве ресурса в Машинное обучение Azure с помощью Azure CLI или пакета SDK для Python. Эти фрагменты используют custom
и mlflow
типы моделей.
custom
Тип относится к файлу модели или папке, обученному с пользовательским стандартом, который Машинное обучение Azure в настоящее время не поддерживается.mlflow
тип относится к модели, обученной с помощью MLflow. Обученные в MLflow модели размещаются в папке, содержащей файл MLmodel, файл модели, файл зависимостей conda и файл requirements.txt.
Совет
Вы можете следовать вместе с версиями Python следующих примеров, выполнив записную книжку model.ipynb в репозитории azureml-examples .
Подключение к рабочей области
Рабочая область — это ресурс верхнего уровня для Машинного обучения Azure, который обеспечивает централизованное расположение для работы со всеми артефактами, созданными в Машинном обучении Azure. В этом разделе описано, как подключиться к рабочей области Машинное обучение Azure для создания зарегистрированной модели.
Войдите в Azure, выполнив и выполнив
az login
запросы.В следующих командах замените
<subscription-id>
,<workspace-name>
<resource-group>
и<location>
заполнители значениями среды.az account set --subscription <subscription-id> az configure --defaults workspace=<workspace-name> group=<resource-group> location=<location>
Создание зарегистрированной модели
Вы можете создать зарегистрированную модель из модели, которая:
- Расположен на локальном компьютере.
- Находится в хранилище данных Машинное обучение Azure.
- Выходные данные задания Машинное обучение Azure.
Локальный файл или папка
Создайте имя> файла <YAML.yml. В файле укажите имя зарегистрированной модели, путь к локальному файлу модели и описание. Например:
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json name: local-file-example path: mlflow-model/model.pkl description: Model created from local file.
Выполните следующую команду, используя имя ФАЙЛА YAML:
az ml model create -f <file-name>.yml
Полный пример см. в YAML-файле модели.
Хранилище данных
Модель можно создать из облачного пути с помощью любого из поддерживаемых форматов URI.
В следующем примере используется сокращенная azureml
схема для указания пути к хранилищу данных с помощью синтаксиса azureml://datastores/<datastore-name>/paths/<path_on_datastore>
.
az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt
Полный пример см. в справочнике по CLI.
Выходные данные заданий
Если данные модели приходят из выходных данных задания, у вас есть два варианта указания пути модели. Вы можете использовать формат URI MLflow runs:
или azureml://jobs
формат URI.
Примечание.
Зарезервированное ключевое слово артефактов представляет выходные данные из расположения артефактов по умолчанию.
Запуски MLflow: формат URI
Этот параметр оптимизирован для пользователей MLflow, которые, вероятно, уже знакомы с форматом URI MLflow
runs:
. Этот параметр создает модель из артефактов в расположении артефактов по умолчанию, где находятся все модели, зарегистрированные в MLflow, и артефакты. Этот параметр также устанавливает происхождение между зарегистрированной моделью и запуском модели.Формат:
runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Пример:
az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
формат URI azureml://jobs
Параметр
azureml://jobs
URI ссылки позволяет зарегистрировать модель из артефактов в любом из выходных путей задания. Этот формат соответствует форматуazureml://datastores
URI ссылки, а также поддерживает ссылки на артефакты из именованных выходных данных, отличных от расположения артефактов по умолчанию.Если вы не зарегистрировали модель непосредственно в скрипте обучения с помощью MLflow, вы можете использовать этот параметр для установления происхождения между зарегистрированной моделью и заданием, из который он был обучен.
Формат:
azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>
- Расположение артефакта по умолчанию:
azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/
Это расположение эквивалентно MLflowruns:/<run-id>/<model>
. - Именованной выходной папке:
azureml://jobs/<run-id>/outputs/<named-output-folder>
- Определенный файл в именованной выходной папке:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
- Путь к определенной папке в именованной выходной папке:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>
Пример:
Сохраните модель из именованной выходной папки:
az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
Полный пример см. в справочнике по CLI.
- Расположение артефакта по умолчанию:
Использование моделей для обучения
Azure CLI версии 2 и пакет SDK для Python также позволяют использовать модели в качестве входных или выходных данных в заданиях обучения.
Использование модели в качестве входных данных в задании обучения
Создайте файл YAML спецификации задания, <имя> файла.yml.
inputs
В разделе задания укажите:- Модель
type
, которая может бытьmlflow_model
,custom_model
илиtriton_model
. - Расположение
path
модели, которое может быть любым из путей, перечисленных в комментарии следующего примера.
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json # Possible Paths for models: # AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore> # MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> # Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> # Model Asset: azureml:<my_model>:<version> command: | ls ${{inputs.my_model}} inputs: my_model: type: mlflow_model # List of all model types here: https://learn.microsoft.com/azure/machine-learning/reference-yaml-model#yaml-syntax path: ../../assets/model/mlflow-model environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
- Модель
Выполните следующую команду, подставив имя файла YAML.
az ml job create -f <file-name>.yml
Запись модели в качестве выходных данных для задания
Задание может записывать модель в облачное хранилище с помощью выходных данных.
Создайте спецификацию задания YAML <file-name>.yml.
outputs
Заполните раздел типом и путем выходной модели.$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json # Possible Paths for Model: # Local path: mlflow-model/model.pkl # AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore> # MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> # Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> # Model Asset: azureml:<my_model>:<version> code: src command: >- python hello-model-as-output.py --input_model ${{inputs.input_model}} --custom_model_output ${{outputs.output_folder}} inputs: input_model: type: mlflow_model # mlflow_model,custom_model, triton_model path: ../../assets/model/mlflow-model outputs: output_folder: type: custom_model # mlflow_model,custom_model, triton_model environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
Создайте задание с помощью интерфейса командной строки:
az ml job create --file <file-name>.yml
Manage models in the repository (Управление моделями в репозитории)
Пакет SDK Azure CLI и Python также позволяют управлять жизненным циклом ресурсов модели Машинное обучение Azure.
List
Список всех моделей в рабочей области:
az ml model list
Вывод списка всех версий модели под заданным именем:
az ml model list --name run-model-example
Показать
Получите сведения о конкретной модели:
az ml model show --name run-model-example --version 1
Обновить
Обновление изменяемых свойств конкретной модели:
Внимание
Только для моделей description
и tags
их можно обновить. Все остальные свойства неизменяемы, и если необходимо изменить их, необходимо создать новую версию модели.
az ml model update --name run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"
Архив
Архивация модели скрывает ее из запросов списка, как az ml model list
по умолчанию. Вы можете продолжать ссылаться и использовать архивную модель в рабочих процессах.
Вы можете архивировать все версии или только определенные версии модели. Если вы не указываете версию, архивируются все версии модели. Если вы создаете новую версию модели в контейнере архивной модели, новая версия также автоматически устанавливается в качестве архива.
Архивируйте все версии модели:
az ml model archive --name run-model-example
Архивируйте определенную версию модели:
az ml model archive --name run-model-example --version 1