Развертывание конвейеров с помощью конечных точек пакетной службы
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
Компоненты конвейера можно развертывать в конечной точке пакетной службы, предоставляя удобный способ их эксплуатации в Машинное обучение Azure. В этой статье вы узнаете, как создать пакетное развертывание, содержащее простой конвейер. Содержание:
- Создание и регистрация компонента конвейера
- Создание пакетной конечной точки и развертывание компонента конвейера
- Тестирование развертывания
Сведения об этом примере
В этом примере мы развернем компонент конвейера, состоящий из простого задания команды, которое печатает "hello world!". Этот компонент не требует входных или выходных данных и является самым простым сценарием развертывания конвейера.
Пример в этой статье основан на примерах кода, содержащихся в репозитории azureml-examples . Чтобы выполнить команды локально без необходимости копирования и вставки YAML и других файлов, сначала клонируйте репозиторий, а затем измените каталоги в папку:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Файлы для этого примера находятся в следующих файлах:
cd endpoints/batch/deploy-pipelines/hello-batch
Следуйте инструкциям в записных книжках Jupyter
Вы можете следовать версии пакета SDK для Python этого примера, открыв записную книжку sdk-deploy-and-test.ipynb в клонируемом репозитории.
Необходимые компоненты
Подписка 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>
Создание компонента конвейера
Конечные точки пакетной службы могут развертывать модели или компоненты конвейера. Компоненты конвейера можно использовать повторно, и вы можете оптимизировать практику MLOps с помощью общих реестров для перемещения этих компонентов из одной рабочей области в другую.
Компонент конвейера в этом примере содержит один шаг, который печатает только сообщение hello world в журналах. Для этого не требуются входные или выходные данные.
Файл hello-component/hello.yml
содержит конфигурацию компонента конвейера:
hello-component/hello.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponent.schema.json
name: hello_batch
display_name: Hello Batch component
version: 1
type: pipeline
jobs:
main_job:
type: command
component:
code: src
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
command: >-
python hello.py
Зарегистрируйте компонент:
Создание пакетной конечной точки
Укажите имя конечной точки. Имя пакетной конечной точки должно быть уникальным в каждом регионе, так как имя используется для создания URI вызова. Чтобы обеспечить уникальность, добавьте все конечные символы в имя, указанное в следующем коде.
Настройка конечной точки:
Создание конечной точки:
Запросите универсальный код ресурса (URI) конечной точки:
Развертывание компонента конвейера
Чтобы развернуть компонент конвейера, необходимо создать пакетное развертывание. Развертывание — это набор ресурсов, необходимых для размещения ресурса, который выполняет фактическую работу.
Создайте вычислительный кластер. Конечные точки и развертывания пакетной службы выполняются в вычислительных кластерах. Они могут работать в любом Машинное обучение Azure вычислительном кластере, который уже существует в рабочей области. Таким образом, несколько пакетных развертываний могут совместно использовать одну и ту же инфраструктуру вычислений. В этом примере мы будем работать над Машинное обучение Azure вычислительным кластером
batch-cluster
. Давайте убедимся, что вычислительные ресурсы существуют в рабочей области или создаются в противном случае.Настройка развертывания:
Файл
deployment.yml
содержит конфигурацию развертывания. Вы можете проверить схему YAML полной пакетной конечной точки для получения дополнительных свойств.deployment.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json name: hello-batch-dpl endpoint_name: hello-pipeline-batch type: pipeline component: azureml:hello_batch@latest settings: default_compute: batch-cluster
Создание развертывания:
Выполните следующий код, чтобы создать пакетное развертывание в конечной точке пакетной службы и задать его как развертывание по умолчанию.
az ml batch-deployment create --endpoint $ENDPOINT_NAME -f deployment.yml --set-default
Совет
Обратите внимание на использование флага
--set-default
, чтобы указать, что это новое развертывание теперь используется по умолчанию.Развертывание готово для использования.
Тестирование развертывания
После создания развертывания он готов к получению заданий. Вы можете вызвать развертывание по умолчанию следующим образом:
Совет
В этом примере конвейер не имеет входных или выходных данных. Однако если компонент конвейера требует некоторых элементов, их можно указать во время вызова. Сведения о том, как указывать входные и выходные данные, см. в статье "Создание заданий и входных данных для конечных точек пакетной службы" или руководство по развертыванию конвейера для выполнения пакетной оценки с предварительной обработкой (предварительная версия).
Вы можете отслеживать ход выполнения отображения и потоковой передачи журналов с помощью:
Очистка ресурсов
После завершения удалите связанные ресурсы из рабочей области:
Выполните следующий код, чтобы удалить конечную точку пакетной службы и его базовое развертывание. --yes
используется для подтверждения удаления.
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes
(Необязательно) Удалите вычислительные ресурсы, если вы не планируете повторно использовать вычислительный кластер с последующими развертываниями.
Следующие шаги
- Развертывание конвейера обучения с помощью конечных точек пакетной службы)
- Развертывание конвейера для выполнения пакетной оценки с предварительной обработкой
- Создание конечных точек пакетной службы из заданий конвейера
- Создание заданий и входных данных для пакетных конечных точек
- Устранение неполадок с пакетными конечными точками