Compartilhar via


Implantar trabalhos de pipeline existentes em pontos de extremidade em lote

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Os pontos de extremidade em lote permitem implantar componentes de pipeline, fornecendo uma maneira conveniente de operacionalizar pipelines no Azure Machine Learning. Os pontos de extremidade do lote aceitam componentes de pipeline para implantação. No entanto, se você já tiver um trabalho de pipeline executado com êxito, o Azure Machine Learning poderá aceitar esse trabalho como entrada para o ponto de extremidade em lote e criar o componente de pipeline automaticamente para você. Neste artigo, você aprenderá a usar seu trabalho de pipeline existente como entrada para implantação em lote.

Você aprenderá a:

  • Executar e criar o trabalho de pipeline que você deseja implantar
  • Criar uma implantação em lote do trabalho existente
  • Teste a implantação

Sobre este exemplo

Nesse exemplo, vamos implantar um pipeline que consiste em um trabalho de comando simples que imprime "olá, mundo!". Em vez de registrar o componente de pipeline antes da implantação, indicamos um trabalho de pipeline existente a ser usado para implantação. O Azure Machine Learning criará o componente de pipeline automaticamente e o implantará como uma implantação de componente de pipeline de ponto de extremidade em lote.

O exemplo neste artigo é baseado em exemplos de códigos contidos no repositório azureml-examples . Para executar os comandos localmente sem precisar copiar ou colar YAML e outros arquivos, use os seguintes comandos para clonar o repositório e ir para a pasta do idioma de codificação:

git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli

Os arquivos para esse exemplo estão em:

cd endpoints/batch/deploy-pipelines/hello-batch

Pré-requisitos

  • Uma assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

  • Um workspace do Azure Machine Learning. Para criar um workspace, confira Gerenciar workspaces do Azure Machine Learning.

  • As seguintes permissões no workspace do Azure Machine Learning:

    • Para criar ou gerenciar pontos de extremidade e implantações em lotes: use um proprietário, colaborador ou função personalizada que recebeu as permissões Microsoft.MachineLearningServices/workspaces/batchEndpoints/*.
    • Para criar implantações do Azure Resource Manager no grupo de recursos do workspace: use um proprietário, colaborador ou função personalizada que recebeu a permissão Microsoft.Resources/deployments/write no grupo de recursos em que o workspace é implantado.
  • A CLI do Azure Machine Learning ou o SDK do Azure Machine Learning para Python:

    Execute o seguinte comando para instalar a CLI do Azure e a extensão do Azure Machine Learning ml:

    az extension add -n ml
    

    As implantações de componente de pipeline para pontos de extremidade em lote são introduzidas na versão 2.7 da extensão ml para a CLI do Azure. Use o comando az extension update --name ml para obter a versão mais recente.


Conectar-se ao workspace

O workspace é o recurso de nível superior do Azure Machine Learning. Ele fornece um local centralizado para trabalhar com todos os artefatos criados quando você usa o Azure Machine Learning. Nesta seção, você se conecta ao workspace em que executa as suas tarefas de implantação.

No comando a seguir, insira a ID da assinatura, o nome do workspace, o nome do grupo de recursos e o local:

az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

Executar o trabalho de pipeline que você deseja implantar

Nesta seção, começamos executando um trabalho de pipeline:

O arquivo pipeline-job.yml a seguir contém a configuração do trabalho de pipeline:

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

Como criar o trabalho pipeline:

JOB_NAME=$(az ml job create -f pipeline-job.yml --query name -o tsv)

Criar um ponto de extremidade em lote

Antes de implantarmos o trabalho de pipeline, precisamos implantar um ponto de extremidade em lote para hospedar a implantação.

  1. 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 todos os caracteres à direita ao nome especificado no código a seguir.

    ENDPOINT_NAME="hello-batch"
    
  2. Configurar o ponto de extremidade:

    O arquivo endpoint.yml 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
    
  3. Criar o ponto de extremidade:

    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. Consulte o URI do ponto de extremidade:

    az ml batch-endpoint show --name $ENDPOINT_NAME
    

Como implantar o trabalho de pipeline

Para implantar o componente de pipeline, precisamos criar uma implantação em lote.

  1. Precisamos informar ao Azure Machine Learning o nome do trabalho que queremos implantar. Em nosso caso, esse trabalho é indicado na seguinte variável:

    echo $JOB_NAME
    
  2. Configurar a implantação.

    O arquivo deployment-from-job.yml contém a configuração da implantação. Observe como usamos a chave job_definition em vez de component para indicar que essa implantação foi criada a partir de um trabalho de pipeline:

    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
    

    Dica

    Essa configuração pressupõe que você tenha um cluster de computação chamado batch-cluster. Você pode substituir esse valor pelo nome do cluster.

  3. Criar a implantação:

    Execute o código a seguir para criar uma implantação em lote sob o ponto de extremidade de lote e defina-la como a implantação padrão.

    az ml batch-deployment create --endpoint $ENDPOINT_NAME --set job_definition=azureml:$JOB_NAME -f deployment-from-job.yml
    

    Dica

    Observe o uso de --set job_definition=azureml:$JOB_NAME. Como os nomes de trabalho são exclusivos, o comando --set é usado aqui para alterar o nome do trabalho quando você o executa no espaço de trabalho.

  4. Sua implantação está pronta para uso.

Teste a implantação

Depois que a implantação for criada, ela estará 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)

Monitore o progresso da exibição e transmita os logs usando:

az ml job stream -n $JOB_NAME

Limpar os recursos

Quando concluir, exclua os recursos associados do espaço de trabalho:

Execute o código a seguir para excluir o ponto de extremidade em lote e todas as implantações subjacentes. --yes é usado para confirmar a exclusão.

az ml batch-endpoint delete -n $ENDPOINT_NAME --yes

Próximas etapas