Como implantar pipelines com pontos de extremidade em lote
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Você pode implantar componentes de pipeline em um ponto de extremidade em lote, fornecendo uma maneira conveniente de operacionalizá-los no Aprendizado de Máquina do Azure. Neste artigo, você aprenderá como criar uma implantação em lote que contém um pipeline simples. Ficará a saber como:
- Criar e registrar um componente de pipeline
- Criar um ponto de extremidade em lote e implantar um componente de pipeline
- Testar a implementação
Sobre este exemplo
Neste exemplo, vamos implantar um componente de pipeline que consiste em um trabalho de comando simples que imprime "hello world!". Esse componente não requer entradas ou saídas e é o cenário de implantação de pipeline mais simples.
O exemplo neste artigo é baseado em exemplos de código contidos no repositório azureml-examples . Para executar os comandos localmente sem ter que copiar/colar YAML e outros arquivos, primeiro clone o repositório e, em seguida, altere os diretórios para a pasta:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Os arquivos para este exemplo estão em:
cd endpoints/batch/deploy-pipelines/hello-batch
Acompanhe nos cadernos Jupyter
Você pode acompanhar a versão do SDK do Python deste exemplo abrindo o bloco de anotações sdk-deploy-and-test.ipynb no repositório clonado.
Pré-requisitos
Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar. Experimente a versão gratuita ou paga do Azure Machine Learning.
Uma área de trabalho do Azure Machine Learning. Para criar um espaço de trabalho, consulte Gerenciar espaços de trabalho do Azure Machine Learning.
Verifique se você tem as seguintes permissões no espaço de trabalho Aprendizado de Máquina:
- Criar ou gerenciar pontos de extremidade em lote e implantações: use uma função Proprietário, Colaborador ou Personalizada que permita
Microsoft.MachineLearningServices/workspaces/batchEndpoints/*
o . - Criar implantações do Azure Resource Manager no grupo de recursos do espaço de trabalho: use uma função Proprietário, Colaborador ou Personalizada que permita
Microsoft.Resources/deployments/write
a entrada no grupo de recursos onde o espaço de trabalho está implantado.
- Criar ou gerenciar pontos de extremidade em lote e implantações: use uma função Proprietário, Colaborador ou Personalizada que permita
Instale o seguinte software para trabalhar com Machine Learning:
Execute o seguinte comando para instalar a CLI do Azure e a extensão para o
ml
Azure Machine Learning:az extension add -n ml
As implantações de componentes de pipeline para pontos de extremidade em lote são introduzidas na versão 2.7 da
ml
extensão para a CLI do Azure. Use oaz extension update --name ml
comando para obter a versão mais recente.
Ligar à sua área de trabalho
O espaço de trabalho é o recurso de nível superior para Machine Learning. Ele fornece um local centralizado para trabalhar com todos os artefatos que você cria quando usa o Machine Learning. Nesta seção, você se conecta ao espaço de trabalho onde executa suas tarefas de implantação.
No comando a seguir, insira os valores para sua ID de assinatura, espaço de trabalho, local e grupo de recursos:
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Criar o componente de pipeline
Os pontos de extremidade em lote podem implantar modelos ou componentes de pipeline. Os componentes de pipeline são reutilizáveis e você pode simplificar sua prática de MLOps usando registros compartilhados para mover esses componentes de um espaço de trabalho para outro.
O componente pipeline neste exemplo contém uma única etapa que apenas imprime uma mensagem "hello world" nos logs. Não requer entradas ou saídas.
O hello-component/hello.yml
arquivo contém a configuração para o componente de pipeline:
Olá-componente/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
Registre o componente:
az ml component create -f hello-component/hello.yml
Criar um ponto de extremidade em lote
Forneça um nome para o ponto de extremidade. O nome de um ponto de extremidade em lote precisa ser exclusivo em cada região, pois o nome é usado para construir o URI de invocação. Para garantir a exclusividade, acrescente quaisquer caracteres à direita ao nome especificado no código a seguir.
ENDPOINT_NAME="hello-batch"
Configure o ponto de extremidade:
O
endpoint.yml
arquivo contém a configuração do ponto de extremidade.endpoint.yml
$schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json name: hello-batch description: A hello world endpoint for component deployments. auth_mode: aad_token
Crie o ponto de extremidade:
az ml batch-endpoint create --name $ENDPOINT_NAME -f endpoint.yml
Consulte o URI do ponto de extremidade:
az ml batch-endpoint show --name $ENDPOINT_NAME
Implantar o componente de pipeline
Para implantar o componente de pipeline, temos que criar uma implantação em lote. Uma implantação é um conjunto de recursos necessários para hospedar o ativo que faz o trabalho real.
Crie um cluster de computação. Pontos de extremidade em lote e implantações são executados em clusters de computação. Eles podem ser executados em qualquer cluster de computação do Azure Machine Learning que já exista no espaço de trabalho. Portanto, várias implantações em lote podem compartilhar a mesma infraestrutura de computação. Neste exemplo, trabalharemos em um cluster de computação do Azure Machine Learning chamado
batch-cluster
. Vamos verificar se a computação existe no espaço de trabalho ou criá-la de outra forma.az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
Configure a implantação:
O
deployment.yml
arquivo contém a configuração da implantação. Você pode verificar o esquema YAML do ponto de extremidade de lote completo para obter propriedades extras.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
Crie a implantação:
Execute o código a seguir para criar uma implantação em lote no ponto de extremidade em lote e defini-la como a implantação padrão.
az ml batch-deployment create --endpoint $ENDPOINT_NAME -f deployment.yml --set-default
Gorjeta
Observe o
--set-default
uso do sinalizador para indicar que essa nova implantação agora é o padrão.Sua implantação está pronta para uso.
Testar a implementação
Depois que a implantação é criada, ela está pronta para receber trabalhos. Você pode invocar a implantação padrão da seguinte maneira:
JOB_NAME=$(az ml batch-endpoint invoke -n $ENDPOINT_NAME --query name -o tsv)
Gorjeta
Neste exemplo, o pipeline não tem entradas ou saídas. No entanto, se o componente de pipeline exigir alguns, eles podem ser indicados no momento da invocação. Para saber mais sobre como indicar entradas e saídas, consulte Criar trabalhos e dados de entrada para pontos de extremidade em lote ou consulte o tutorial Como implantar um pipeline para executar pontuação em lote com pré-processamento (visualização).
Você pode monitorar o progresso do show e transmitir os logs usando:
az ml job stream -n $JOB_NAME
Clean up resources (Limpar recursos)
Quando terminar, exclua os recursos associados do espaço de trabalho:
Execute o código a seguir para excluir o ponto de extremidade em lote e sua implantação subjacente. --yes
é utilizado para confirmar a eliminação.
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes
(Opcional) Exclua a computação, a menos que planeje reutilizar seu cluster de computação com implantações posteriores.
az ml compute delete -n batch-cluster
Próximos passos
- Como implantar um pipeline de treinamento com pontos de extremidade em lote)
- Como implantar um pipeline para executar a pontuação em lote com pré-processamento
- Criar pontos de extremidade em lote a partir de trabalhos de pipeline
- Criar trabalhos e dados de entrada para pontos de extremidade em lote
- Resolver problemas com pontos finais em lote