Развертывание существующих заданий конвейера в пакетных конечных точках
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
Конечные точки пакетной службы позволяют развертывать компоненты конвейера, предоставляя удобный способ эксплуатации конвейеров в Машинное обучение Azure. Конечные точки пакетной службы принимают компоненты конвейера для развертывания. Однако если у вас уже есть задание конвейера, которое выполняется успешно, Машинное обучение Azure может принять это задание в качестве входных данных в конечную точку пакетной службы и автоматически создать компонент конвейера. В этой статье вы узнаете, как использовать существующее задание конвейера в качестве входных данных для пакетного развертывания.
Содержание:
- Выполнение и создание задания конвейера, которое требуется развернуть
- Создание пакетного развертывания из существующего задания
- Тестирование развертывания
Сведения об этом примере
В этом примере мы будем развертывать конвейер, состоящий из простого задания команды, которое печатает "hello world!". Вместо регистрации компонента конвейера перед развертыванием мы указываем существующее задание конвейера, используемое для развертывания. Машинное обучение Azure затем создаст компонент конвейера автоматически и развернет его в качестве развертывания компонента конвейера пакетной конечной точки.
Пример в этой статье основан на примерах кода, содержащихся в репозитории azureml-examples . Чтобы выполнять команды локально, не копируя и вставляя YAML и другие файлы, используйте следующие команды, чтобы клонировать репозиторий и перейти в папку для языка программирования:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Файлы для этого примера находятся в следующих файлах:
cd endpoints/batch/deploy-pipelines/hello-batch
Необходимые компоненты
Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
Рабочая область Машинного обучения Azure. Сведения о создании рабочей области см. в разделе "Управление Машинное обучение Azure рабочих областей".
Следующие разрешения в рабочей области Машинное обучение Azure:
- Для создания конечных точек и развертываний пакетной службы или управления ими используйте роль владельца, участника или настраиваемую роль, назначаемую
Microsoft.MachineLearningServices/workspaces/batchEndpoints/*
разрешениями. - Для создания развертываний Azure Resource Manager в группе ресурсов рабочей области: используйте владельца, участника или настраиваемую роль,
Microsoft.Resources/deployments/write
назначаемую разрешением в группе ресурсов, в которой развернута рабочая область.
- Для создания конечных точек и развертываний пакетной службы или управления ими используйте роль владельца, участника или настраиваемую роль, назначаемую
Интерфейс командной строки Машинное обучение Azure или пакет SDK Машинное обучение Azure для Python:
Выполните следующую команду, чтобы установить Azure CLI и
ml
расширение для Машинное обучение Azure:az extension add -n ml
Развертывания компонентов конвейера для конечных точек пакетной службы представлены в версии 2.7
ml
расширения для Azure CLI.az extension update --name ml
Используйте команду, чтобы получить последнюю версию.
Подключение к рабочей области
Рабочая область — это ресурс верхнего уровня для Машинного обучения Azure. Он предоставляет централизованное место для работы со всеми артефактами, создаваемыми при использовании Машинное обучение Azure. В этом разделе описано, как подключиться к рабочей области, в которой выполняются задачи развертывания.
В следующей команде введите идентификатор подписки, имя рабочей области, имя группы ресурсов и расположение:
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Запуск задания конвейера, которое требуется развернуть
В этом разделе мы начнем с выполнения задания конвейера:
pipeline-job.yml
Следующий файл содержит конфигурацию для задания конвейера:
pipeline-job.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
experiment_name: hello-pipeline-batch
display_name: hello-pipeline-batch-job
description: This job demonstrates how to run the a pipeline component in a pipeline job. You can use this example to test a component in an standalone job before deploying it in an endpoint.
compute: batch-cluster
component: hello-component/hello.yml
Создайте задание конвейера:
Создание пакетной конечной точки
Перед развертыванием задания конвейера необходимо развернуть пакетную конечную точку для размещения развертывания.
Укажите имя конечной точки. Имя пакетной конечной точки должно быть уникальным в каждом регионе, так как имя используется для создания URI вызова. Чтобы обеспечить уникальность, добавьте все конечные символы в имя, указанное в следующем коде.
Настройка конечной точки:
Создание конечной точки:
Запросите универсальный код ресурса (URI) конечной точки:
Развертывание задания конвейера
Чтобы развернуть компонент конвейера, необходимо создать пакетное развертывание из существующего задания.
Нам нужно указать Машинное обучение Azure имя задания, которое мы хотим развернуть. В нашем случае это задание указывается в следующей переменной:
Настройте развертывание.
Файл
deployment-from-job.yml
содержит конфигурацию развертывания. Обратите внимание, что ключjob_definition
используется вместоcomponent
того, чтобы указать, что это развертывание создается из задания конвейера:deployment-from-job.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json name: hello-batch-from-job endpoint_name: hello-pipeline-batch type: pipeline job_definition: azureml:job_name_placeholder settings: continue_on_step_failure: false default_compute: batch-cluster
Совет
В этой конфигурации предполагается, что у вас есть вычислительный кластер с именем
batch-cluster
. Это значение можно заменить именем кластера.Создание развертывания:
Выполните следующий код, чтобы создать пакетное развертывание в конечной точке пакетной службы и задать его как развертывание по умолчанию.
az ml batch-deployment create --endpoint $ENDPOINT_NAME --set job_definition=azureml:$JOB_NAME -f deployment-from-job.yml
Совет
Обратите внимание на использование
--set job_definition=azureml:$JOB_NAME
. Так как имена заданий уникальны, команда--set
используется здесь, чтобы изменить имя задания при его запуске в рабочей области.Развертывание готово для использования.
Тестирование развертывания
После создания развертывания он готов к получению заданий. Вы можете вызвать развертывание по умолчанию следующим образом:
Вы можете отслеживать ход выполнения отображения и потоковой передачи журналов с помощью:
Очистка ресурсов
После завершения удалите связанные ресурсы из рабочей области:
Выполните следующий код, чтобы удалить конечную точку пакетной службы и его базовое развертывание.
--yes
используется для подтверждения удаления.
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes