Развертывание существующих заданий конвейера в пакетных конечных точках
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения 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 CLI и
ml
расширение для Машинное обучение Azure:az extension add -n ml
Развертывания компонентов конвейера для конечных точек пакетной службы представлены в версии 2.7
ml
расширения для Azure CLI.az extension update --name ml
Используйте команду, чтобы получить последнюю версию.
Подключение к рабочей области
Рабочая область — это ресурс верхнего уровня для Машинное обучение. Он предоставляет централизованное место для работы со всеми артефактами, создаваемыми при использовании Машинное обучение. В этом разделе описано, как подключиться к рабочей области, в которой выполняются задачи развертывания.
В следующей команде введите значения для идентификатора подписки, рабочей области, расположения и группы ресурсов:
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