Implantar e pontuar um modelo de aprendizado de máquina usando um ponto de extremidade online

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

Neste artigo, você aprenderá a implantar seu modelo em um ponto de extremidade online para uso em inferências em tempo real. Comece implantando um modelo em seu computador local para depurar qualquer erro. Em seguida, implante e teste o modelo no Azure, exiba os logs de implantação e monitore o SLA (contrato de nível de serviço). Ao final deste artigo, você terá um ponto de extremidade HTTPS/REST escalonável que poderá ser usado para inferência em tempo real.

Os pontos de extremidade online são pontos de extremidade usados para inferência em tempo real. Há dois tipos de pontos de extremidade online: pontos de extremidade online gerenciados e pontos de extremidade online do Kubernetes. Para obter mais informações sobre os pontos de extremidade e as diferenças entre os pontos de extremidade online gerenciados e os pontos de extremidade online do Kubernetes, confira O que são os pontos de extremidade do Azure Machine Learning?

Os pontos de extremidade online gerenciados ajudam a implantar seus modelo de machine learning de maneira pronta para uso. Os pontos de extremidade online gerenciados funcionam com computadores com CPU e GPU poderosas no Azure, de maneira escalonável e totalmente gerenciada. Os pontos de extremidade online gerenciados cuidam do serviço, do da colocação em escala, da segurança e do monitoramento de seus modelos, liberando você da sobrecarga de configurar e gerenciar a infraestrutura subjacente.

O exemplo principal neste documento usa pontos de extremidade online gerenciados para implantação. Para usar o Kubernetes, confira as observações neste documento que estão alinhadas à discussão sobre os pontos de extremidade online gerenciados.

Pré-requisitos

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)

Antes de seguir as etapas neste artigo, verifique se você tem os seguintes pré-requisitos:

  • O RBAC do Azure (controle de acesso baseado em função) do Azure é usado para permitir acesso a operações no Azure Machine Learning. Para executar as etapas neste artigo, sua conta de usuário deve receber a função de proprietário ou colaborador para o espaço de trabalho do Azure Machine Learning ou uma função personalizada que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Se você usar o estúdio para criar/gerenciar pontos de extremidade/implantações online, precisará de uma permissão extra "Microsoft.Resources/deployments/write" do proprietário do grupo de recursos. Para obter mais informações, consulte Gerenciar acesso a um workspace do Azure Machine Learning.

  • (Opcional) Para implantar localmente, você deve instalar o Mecanismo do Docker em seu computador local. Recomendamos enfaticamente esta opção, pois assim é mais fácil depurar problemas.

  • Verifique se você tem cota de VM (máquina virtual) suficiente alocada para implantação. O Azure Machine Learning reserva 20% de seus recursos de computação para executar atualizações em alguns SKUs de VM. Por exemplo, se você solicitar 10 instâncias em uma implantação, deverá ter uma cota de 12 para cada número de núcleos da SKU de VM. A falha ao considerar os recursos computacionais adicionais resulta em um erro. Alguns SKUs de VM são isentos da reserva de cota adicional. Para obter mais informações sobre a alocação de cota, confira Alocação de cota de máquina virtual para implantação.

  • Como alternativa, você pode usar a cota do pool de cotas compartilhado do Azure Machine Learning por um tempo limitado. Os usuários podem acessar a cota desse pool para executar testes por um tempo limitado. Ao usar o estúdio para implantar os modelos Llama-2, Phi, Nemotron, Mistral, Dolly e Deci-DeciLM do catálogo de modelos em um ponto de extremidade online gerenciado, o Azure Machine Learning permite que você acesse seu pool de cotas compartilhadas por um curto período de tempo para que possa executar testes. Para obter mais informações sobre o pool de cotas compartilhado, confira Cota compartilhada do Azure Machine Learning.

Preparar seu sistema

Definir variáveis de ambiente

Se você ainda não definiu os padrões da CLI do Azure, salve as configurações padrão. Para evitar passar os valores para sua assinatura, espaço de trabalho e grupo de recursos várias vezes, execute este código:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

Clone o repositório de exemplos

Para acompanhar este artigo, primeiro clone o repositório de exemplos (azureml-examples). Em seguida, execute o seguinte código para ir para o diretório cli/ do repositório:

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

Dica

Use o --depth 1 para clonar apenas a confirmação mais recente para o repositório, o que reduz o tempo para concluir a operação.

Os comandos neste tutorial estão nos arquivos deploy-local-endpoint.sh e deploy-managed-online-endpoint.sh no diretório endpoints/online/managed/sample/, e os arquivos de configuração YAML estão no subdiretório cli.

Observação

Os arquivos de configuração YAML para pontos de extremidade online do Kubernetes estão no subdiretório endpoints/online/kubernetes/.

Definir o ponto de extremidade

Para definir um ponto de extremidade online, especifique o nome do ponto de extremidade e o modo de autenticação. Para obter mais informações sobre os pontos de extremidade online gerenciados, confira Pontos de extremidade online.

Definir um nome de ponto de extremidade

Para definir o nome do ponto de extremidade, execute o seguinte comando. Substitua YOUR_ENDPOINT_NAME por um nome exclusivo na região do Azure. Para obter mais informações sobre as regras de nomenclatura, confira limites de pontos de extremidade.

Para o Linux, execute este comando:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Configurar o ponto de extremidade

O snippet a seguir mostra o arquivo endpoints/online/managed/sample/endpoint.yml:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key

A referência para o formato de ponto de extremidade YAML é descrita na tabela a seguir. Para saber como especificar esses atributos, consulte areferência do YAML para ponto de extremidade online . Para obter informações sobre os limites relacionados aos pontos de extremidade gerenciados, confira Limites de pontos de extremidade online.

Key Descrição
$schema (Opcional) O esquema YAML. Para ver todas as opções disponíveis no arquivo YAML, você pode visualizar o esquema no exemplo anterior em um navegador.
name O nome do ponto de extremidade.
auth_mode Use key para autenticação baseada em chave.
Use aml_token para autenticação baseada em chave do Azure Machine Learning.
Use aad_token para autenticação baseada em token do Microsoft Entra (versão prévia).
Para obter mais informações sobre autenticação, consulte Autenticar clientes para pontos de extremidade online.

Definir a implantação

Uma implantação é um conjunto de recursos necessários para hospedar o modelo que executa a inferência real. Para esse exemplo, implante um modelo scikit-learn que faz regressão e usa um script de pontuação score.py para executar o modelo em uma determinada solicitação de entrada.

Para saber mais sobre os principais atributos de uma implantação, confira Implantações online.

Configurar uma implantação

Sua configuração de implantação usa o local do modelo que você deseja implantar.

O snippet a seguir mostra o arquivo endpoints/online/managed/sample/blue-deployment.yml, com todas as entradas necessárias para configurar uma implantação:

blue-deployment.yml

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

O arquivo blue-deployment.yml especifica os seguintes atributos de implantação:

  • model – especifica as propriedades do modelo embutidas, usando o path (de onde carregar arquivos). A CLI carrega automaticamente os arquivos de modelo e registra o modelo com um nome gerado automaticamente.
  • environment – usando definições embutidas que incluem de onde carregar arquivos, a CLI carrega automaticamente o arquivo conda.yaml e registra o ambiente. Posteriormente, para criar o ambiente, a implantação usa o image (nesse exemplo, é mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest) para a imagem de base, e as dependências conda_file são instaladas sobre a imagem de base.
  • code_configuration – durante a implantação, os arquivos locais, como a origem do Python para o modelo de pontuação, são carregados do ambiente de desenvolvimento.

Para saber mais sobre o esquema YAML, confira a referência YAML do ponto de extremidade online.

Observação

Para usar pontos de extremidade do Kubernetes em vez de pontos de extremidade online gerenciados como um destino de computação:

  1. Crie o cluster do Kubernetes e anexe-o como um destino de computação ao espaço de trabalho do Azure Machine Learning usando o Estúdio do Azure Machine Learning.
  2. Use o YAML do ponto de extremidade para direcionar o Kubernetes, em vez do YAML do ponto de extremidade gerenciado. É necessário editar o YAML para alterar o valor de compute para o nome do destino de computação registrado. Você pode usar esse deployment.yaml que tem propriedades adicionais aplicáveis à implantação do Kubernetes.

Todos os comandos usados neste artigo para pontos de extremidade online gerenciados também se aplicam aos pontos de extremidade do Kubernetes, exceto pelos seguintes recursos que não se aplicam aos pontos de extremidade do Kubernetes:

Como funciona o script de pontuação

Dica

O formato do script de pontuação para pontos de extremidade online é o mesmo formato usado na versão anterior da CLI e no SDK do Python.

O script de pontuação especificado em code_configuration.scoring_script deve ter uma função init() e uma função run().

Este exemplo usa o arquivo score.py: score.py

import os
import logging
import json
import numpy
import joblib


def init():
    """
    This function is called when the container is initialized/started, typically after create/update of the deployment.
    You can write the logic here to perform init operations like caching the model in memory
    """
    global model
    # AZUREML_MODEL_DIR is an environment variable created during deployment.
    # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
    # Please provide your model's folder name if there is one
    model_path = os.path.join(
        os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
    )
    # deserialize the model file back into a sklearn model
    model = joblib.load(model_path)
    logging.info("Init complete")


def run(raw_data):
    """
    This function is called for every invocation of the endpoint to perform the actual scoring/prediction.
    In the example we extract the data from the json input and call the scikit-learn model's predict()
    method and return the result back
    """
    logging.info("model 1: request received")
    data = json.loads(raw_data)["data"]
    data = numpy.array(data)
    result = model.predict(data)
    logging.info("Request processed")
    return result.tolist()

A função init() é chamada quando o contêiner é inicializado ou iniciado. Normalmente, essa inicialização ocorre logo depois que a implantação é criada ou atualizada. A função init é o local para escrever a lógica das operações de inicialização global, como o armazenamento em cache do modelo na memória (conforme mostrado neste arquivo score.py).

A função run() é chamada sempre que o ponto de extremidade é chamado e faz a pontuação e a previsão reais. Neste arquivo score.py, a função run() extrai dados de uma entrada JSON, chama o método predict() do modelo do scikit-learn e, em seguida, retorna o resultado da previsão.

Implantar e depurar localmente usando um ponto de extremidade local

É altamente recomendável que você execute o ponto de extremidade localmente para validar e depurar o código e a configuração antes de implantar no Azure. A CLI do Azure e o SDK do Python dão suporte a pontos de extremidade e implantações locais, enquanto estúdio do Azure Machine Learning e modelo do ARM não.

Para implantar localmente, o Mecanismo do Docker deve estar instalado e em execução. O Mecanismo do Docker normalmente é iniciado quando o computador é iniciado. Caso ele não seja, solucione o problema do Mecanismo do Docker.

Dica

Você pode usar o pacote Python do servidor HTTP de inferência do Azure Machine Learning para depurar seu script de pontuação localmente sem o Mecanismo do Docker. A depuração com o servidor de inferência ajuda você a depurar o script de pontuação antes de implantar em pontos de extremidade locais para que você possa depurar sem ser afetado pelas configurações do contêiner de implantação.

Para obter mais informações sobre a depuração de pontos de extremidade online localmente antes da implantação no Azure, confira Depuração de pontos de extremidade online.

Implantar o modelo localmente

Primeiro crie um ponto de extremidade. Opcionalmente, para um ponto de extremidade local, você pode ignorar esta etapa e criar diretamente a implantação (próxima etapa), que, por sua vez, criará os metadados necessários. A implantação de modelos localmente é útil para fins de desenvolvimento e teste.

az ml online-endpoint create --local -n $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml

Agora, crie a implantação chamada blue no ponto de extremidade.

az ml online-deployment create --local -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml

O sinalizador --local direciona a CLI para implantar o ponto de extremidade no ambiente do Docker.

Dica

Use o Visual Studio Code para testar e depurar os pontos de extremidade localmente. Para obter mais informações, confira depurar pontos de extremidade online localmente no Visual Studio Code.

Verifique se a implantação local foi bem-sucedida

Verifique o status da implantação para ver se o modelo foi implantado sem erros:

az ml online-endpoint show -n $ENDPOINT_NAME --local

A saída deve ter aparência similar ao seguinte JSON. O provisioning_state é Succeeded.

{
  "auth_mode": "key",
  "location": "local",
  "name": "docs-endpoint",
  "properties": {},
  "provisioning_state": "Succeeded",
  "scoring_uri": "http://localhost:49158/score",
  "tags": {},
  "traffic": {}
}

A tabela a seguir contém os possíveis valores para provisioning_state:

Valor Descrição
Criando O recurso está sendo criado.
Atualizar O recurso está sendo atualizado.
Excluir O recurso está sendo excluído.
Êxito A operação de criação/atualização foi bem-sucedida.
Com falha Falha na operação de criação/atualização/exclusão.

Invocar o ponto de extremidade local para pontuar os dados usando o modelo

Invoque o ponto de extremidade para pontuar o modelo usando o comando invoke e passando os parâmetros de consulta armazenados em um arquivo JSON:

az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json

Se você quiser usar um cliente REST (como a ondulação), deverá ter o URI de pontuação. Para obter o URI de pontuação, execute az ml online-endpoint show --local -n $ENDPOINT_NAME. Nos dados retornados, encontre o atributo scoring_uri.

Examinar os logs em busca da saída da operação de invocação

No exemplo o arquivo score.py, o método run() registra uma saída no console.

Você pode visualizar essa saída usando o comando get-logs:

az ml online-deployment get-logs --local -n blue --endpoint $ENDPOINT_NAME

Implantar o ponto de extremidade online no Azure

Depois, implante o ponto de extremidade online no Azure. Como melhor prática para produção, recomendamos que você registre o modelo e o ambiente que usará em sua implantação.

Registrar modelo e ambiente

Recomendamos que você registre seu modelo e ambiente antes da implantação no Azure, para que possa especificar seus nomes e versões registrados durante a implantação. O registro de seus ativos permite reutilizá-los sem a necessidade de carregá-los sempre que criar implantações, aumentando assim a reprodutibilidade e a rastreabilidade.

Observação

Ao contrário da implantação no Azure, a implantação local não dá suporte ao uso de modelos e ambientes registrados. Em vez disso, a implantação local usa arquivos de modelo locais e usa ambientes somente com arquivos locais. Para implantação no Azure, você pode usar ativos locais ou registrados (modelos e ambientes). Nesta seção do artigo, a implantação no Azure usa ativos registrados, mas você tem a opção de usar ativos locais. Para obter um exemplo de uma configuração de implantação que carrega arquivos locais a serem usados para implantação local, confira Configurar uma implantação.

Para registrar o modelo e o ambiente, use o formulário model: azureml:my-model:1 ou environment: azureml:my-env:1. Para fazer o registro, você pode extrair as definições do YAML de model e environment em arquivos YAML separados e usar os comandos az ml model create e az ml environment create. Para saber mais sobre esses comandos, execute az ml model create -h e az ml environment create -h.

  1. Crie uma definição de YAML para o modelo:

    $schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
    name: my-model
    path: ../../model-1/model/
    
  2. Registre o modelo:

    az ml model create -n my-model -v 1 -f ./model.yaml
    
  3. Crie uma definição de YAML para o ambiente:

    $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
    name: my-env
    image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
    conda_file: ../../model-1/environment/conda.yaml
    
  4. Registre o ambiente:

    az ml environment create -n my-env -v 1 -f ./environment.yaml
    

Para obter mais informações sobre como registrar seu modelo como um ativo, consulte Registrar seu modelo como um ativo no Machine Learning usando o CLI. Para obter mais informações sobre como criar um ambiente, consulte Gerenciar ambientes do Azure Machine Learning com o CLI e SDK (v2).

Configurar uma implantação que usa ativos registrados

A configuração da implantação usa o modelo registrado que você quer implantar e o ambiente registrado.

Use os ativos registrados (modelo e ambiente) em sua definição de implantação. O trecho a seguir mostra o arquivo endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml, com todas as entradas necessárias para configurar uma implantação:

blue-deployment-with-registered-assets.yml

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model: azureml:my-model:1
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: azureml:my-env:1
instance_type: Standard_DS3_v2
instance_count: 1

Usar diferentes imagens e tipos de instância de GPU e CPU

Você pode especificar os tipos de instância de CPU ou GPU e as imagens em sua definição de implantação, tanto para a implantação local quanto para a implantação no Azure.

Sua definição de implantação no arquivo blue-deployment-with-registered-assets.yml usou uma instância Standard_DS3_v2 do tipo de uso geral e uma imagem do Docker sem GPU mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest. Para a computação de GPU, escolha um SKU de tipo de computação de GPU e uma imagem do Docker de GPU.

Para os tipos de instância de uso geral e de GPU com suporte, confira SKUs de VM com suporte para pontos de extremidade online gerenciados. Para obter uma lista de imagens de base de GPU e CPU do Azure Machine Learning, confira Imagens de base do Azure Machine Learning.

Observação

Para usar o Kubernetes em vez de pontos de extremidade gerenciados como destino de computação, confira Introdução ao destino de computação Kubernetes.

Depois, implante o ponto de extremidade online no Azure.

Implantar no Azure

  1. Crie o ponto de extremidade na nuvem do Azure.

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    
  2. Crie a implantação denominada blue no ponto de extremidade.

    az ml online-deployment create -name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml --all-traffic
    

    A criação da implantação pode levar até 15 minutos, dependendo se o ambiente ou imagem subjacente está sendo criado pela primeira vez. As implantações seguintes que usam o mesmo ambiente são processadas mais rapidamente.

    Dica

    • Se você preferir não bloquear o console da CLI, adicione o sinalizador --no-wait ao comando. No entanto, essa opção interromperá a exibição interativa do status da implantação.

    Importante

    O sinalizador --all-traffic no código az ml online-deployment create usado para criar a implantação aloca 100% do tráfego do ponto de extremidade para a implantação azul recém-criada. Embora isso seja útil para fins de desenvolvimento e teste, para produção, talvez você queira rotear o tráfego para a nova implantação por meio de um comando explícito. Por exemplo, az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".

Para depurar erros em sua implantação, confira Solução de problemas de implantações de pontos de extremidade online.

Verifique o status do endpoint

  1. Use o comando show para exibir informações em provisioning_state sobre o ponto de extremidade e a implantação:

    az ml online-endpoint show -n $ENDPOINT_NAME
    
  2. Liste todos os pontos de extremidade no workspace em um formato de tabela usando o comando list:

    az ml online-endpoint list --output table
    

Verifique o status da implantação online

Verifique os logs para ver se o modelo foi implantado sem erro.

  1. Para ver a saída de log do contêiner, use o seguinte comando da CLI:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

    Por padrão, os logs são extraídos do contêiner do servidor de inferência. Para ver os logs do contêiner do inicializador de armazenamento, adicione o sinalizador --container storage-initializer. Para obter mais informações sobre logs de implantação, consulte Obter logs de contêiner.

Invocar o ponto de extremidade para pontuar os dados usando o modelo

  1. Use o comando invoke ou um cliente REST de sua escolha para chamar o ponto de extremidade e obter alguns dados:

    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
    
  2. Obtenha a chave usada para autenticar no ponto de extremidade:

    Dica

    Você pode controlar quais entidades de segurança do Microsoft Entra podem obter a chave de autenticação atribuindo-as a uma função personalizada que permite Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action e Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action. Para obter mais informações sobre como gerenciar a autorização para workspaces, confira Gerenciar o acesso a um workspace do Azure Machine Learning.

    ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
    
  3. Use curl para pontuar dados.

    SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
    
    curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json
    

    Observe que você usa os comandos show e get-credentials para obter as credenciais de autenticação. Observe também que você está usando o sinalizador --query para filtrar apenas os atributos necessários. Para saber mais sobre o sinalizador --query, confira Consultar a saída de comando da CLI do Azure.

  4. Para ver os logs de invocação, execute get-logs novamente.

(Opcional) Atualizar a implantação

Se você quer atualizar o código, o modelo ou o ambiente, atualize o arquivo YAML e, em seguida, execute o comando az ml online-endpoint update.

Observação

Se você atualizar a contagem de instâncias (para escalar sua implantação) e junto com outras configurações de modelo (como código, modelo ou ambiente) em um único comando update, a operação de dimensionamento será executada e, em seguida, as outras atualizações serão aplicadas. É uma boa prática executar essas operações separadamente em um ambiente de produção.

Para entender como update funciona:

  1. Abra o arquivo online/model-1/onlinescoring/score.py.

  2. Altere a última linha da função init(): depois de logging.info("Init complete"), adicione logging.info("Updated successfully").

  3. Salve o arquivo.

  4. Execute este comando:

    az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml
    

    Observação

    A atualização usando YAML é declarativa. Ou seja, as alterações no YAML são refletidas nos recursos subjacentes do Azure Resource Manager (pontos de extremidade e implantações). Uma abordagem declarativa facilita o GitOps:Todas as alterações em pontos de extremidade e implantações (até mesmo instance_count) passam pelo YAML.

    Dica

    • Você pode usar parâmetros de atualização genéricos, como o parâmetro --set, com o comando update da CLI para substituir atributos em seu YAML ou para definir atributos específicos sem passá-los no arquivo YAML. Use --set para atributos individuais é útil principalmente em cenários de desenvolvimento e teste. Por exemplo, para escalar verticalmente o valor instance_count da primeira implantação, você pode usar o sinalizador --set instance_count=2. No entanto, como o YAML não está atualizado, essa técnica não facilita o GitOps.
    • Especificar o arquivo YAML NÃO é obrigatório. Por exemplo, se você quiser testar uma configuração de simultaneidade diferente para uma determinada implantação, poderá tentar algo como az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4. Isso manterá todas as configurações existentes, mas atualizará apenas os parâmetros especificados.
  5. Como você modificou a função init(), que é executada quando o ponto de extremidade é criado ou atualizado, a mensagem Updated successfully estará nos logs. Recupere os logs executando:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

O comando update também funciona com implantações locais. Use o mesmo comando az ml online-deployment update com o sinalizador --local.

A atualização da implantação nesta seção é um exemplo de uma atualização contínua no local.

  • Para um ponto de extremidade online gerenciado, a implantação é atualizada para a nova configuração com 20% de nós por vez. Ou seja, se a implantação tiver 10 nós, 2 nós por vez serão atualizados.
  • Para um ponto de extremidade online do Kubernetes, o sistema criará iterativamente uma nova instância de implantação com a nova configuração e exclui a antiga.
  • Para uso em produção, considere a implantação azul-verde, que oferece uma alternativa mais segura para atualizar um serviço Web.

(Opcional) Configurar o dimensionamento automático

O dimensionamento automático executa automaticamente a quantidade certa de recursos para lidar com a carga em seu aplicativo. Os pontos de extremidade gerenciados dão suporte ao dimensionamento automático por meio da integração com o recurso de dimensionamento automático do Azure Monitor. Para configurar o dimensionamento automático, consulte Como fazer o dimensionamento automático de pontos de extremidade online.

(Opcional) Monitorar o SLA usando o Azure Monitor

Para exibir as métricas e definir alertas com base em seu SLA, conclua as etapas descritas em Monitorar pontos de extremidade online.

(Opcional) Fazer a integração com o Log Analytics

O comando get-logs para CLI ou o método get_logs para SDK fornece apenas as últimas centenas de linhas de logs de uma instância selecionada automaticamente. No entanto, o Log Analytics oferece uma forma de armazenar e analisar logs de modo durável. Para obter mais informações sobre como usar o registro em log, confira Monitorar pontos de extremidade online.

Excluir o ponto de extremidade e a implantação

Exclua o ponto de extremidade e todas as suas implantações subjacentes:

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait