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

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Neste artigo, você aprenderá a implantar seu modelo em um ponto de extremidade online para uso em inferência em tempo real. Você começa implantando um modelo em sua máquina local para depurar quaisquer erros. Em seguida, você implanta e testa o modelo no Azure, exibe os logs de implantação e monitora o contrato de nível de serviço (SLA). No final deste artigo, você terá um ponto de extremidade HTTPS/REST escalável que poderá ser usado para inferência em tempo real.

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

Os pontos finais online geridos ajudam a implementar os modelos de machine learning de forma chave na mão. Os pontos finais online geridos funcionam com computadores GPU e CPU avançados no Azure de forma dimensionável e totalmente gerida. Os pontos finais online geridos tratam de servir, dimensionar, proteger e monitorizar os modelos, ao libertá-lo da sobrecarga de configuração e gestão da infraestrutura subjacente.

O exemplo principal neste documento usa pontos de extremidade online gerenciados para implantação. Para usar o Kubernetes em vez disso, consulte as notas neste documento que estão alinhadas com a discussão do endpoint online gerenciado.

Pré-requisitos

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

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

  • Os controlos de acesso baseado em funções (RBAC do Azure) são utilizados para conceder acesso às 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 o acesso a um espaço de trabalho do Azure Machine Learning.

  • (Opcional) Para implantar localmente, você deve instalar o Docker Engine em seu computador local. É altamente recomendável essa opção, para que seja mais fácil depurar problemas.

  • Verifique se você tem cota de máquina virtual (VM) suficiente alocada para implantação. O Azure Machine Learning reserva 20% dos seus recursos de computação para executar atualizações em algumas SKUs de VM. Por exemplo, se você solicitar 10 instâncias em uma implantação, deverá ter uma cota para 12 para cada número de núcleos para a SKU da VM. A falha na contabilização dos recursos de computação extras resulta em um erro. Existem alguns SKUs VM que estão isentos da reserva de cota extra. Para obter mais informações sobre alocação de cota, consulte Alocação de cota de máquina virtual para implantação.

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

Prepare o seu sistema

Definir variáveis de ambiente

Se você ainda não definiu os padrões para a CLI do Azure, salve suas configurações padrão. Para evitar passar os valores da 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 do cli/ repositório:

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

Gorjeta

Use --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, e os cli arquivos de configuração YAML estão no endpoints/online/managed/sample/ subdiretório.

Nota

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

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 pontos de extremidade online gerenciados, consulte 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, consulte Limites de pontos finais.

Para Linux, execute este comando:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Configurar o ponto de extremidade

O trecho 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 YAML do ponto de extremidade é descrita na tabela a seguir. Para saber como especificar esses atributos, consulte a referência YAML do ponto de extremidade online. Para obter informações sobre limites relacionados a pontos de extremidade gerenciados, consulte limites para pontos de extremidade online.

Chave Description
$schema (Opcional) O esquema YAML. Para ver todas as opções disponíveis no arquivo YAML, você pode exibir o esquema no trecho de código 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 token do Azure Machine Learning.
Use aad_token para autenticação baseada em token do Microsoft Entra (visualização).
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 faz a inferência real. Neste exemplo, você implanta 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, consulte Implantações online.

Configurar uma implantação

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

O trecho 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 em linha, 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 inline que incluem de onde fazer upload de arquivos, a CLI carrega automaticamente o conda.yaml arquivo e registra o ambiente. Mais tarde, para criar o ambiente, a implantação usa o image (neste exemplo, é ) para a imagem base, e as conda_file dependências são instaladas mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestsobre a imagem base.
  • code_configuration - durante a implantação, os arquivos locais, como a fonte Python para o modelo de pontuação, são carregados do ambiente de desenvolvimento.

Para obter mais informações sobre o esquema YAML, consulte a referência YAML do ponto de extremidade online.

Nota

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

  1. Crie e anexe seu cluster Kubernetes como um destino de computação ao seu espaço de trabalho do Azure Machine Learning usando o estúdio do Azure Machine Learning.
  2. Use o endpoint YAML para direcionar o Kubernetes, em vez do endpoint gerenciado YAML. Você precisa editar o YAML para alterar o valor de compute para o nome do seu destino de computação registrado. Você pode usar este deployment.yaml que tem propriedades adicionais aplicáveis a uma implantação do Kubernetes.

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

Entenda o roteiro de pontuação

Gorjeta

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

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

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 init() função é chamada quando o contêiner é inicializado ou iniciado. A inicialização normalmente ocorre logo após a implantação ser criada ou atualizada. A init função é o local para escrever lógica para operações de inicialização global, como armazenar em cache o modelo na memória (como mostrado neste arquivo score.py ).

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

Implantar e depurar localmente usando um ponto de extremidade local

É altamente recomendável que você teste e execute seu ponto de extremidade localmente para validar e depurar seu código e 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 o estúdio do Azure Machine Learning e o modelo ARM não.

Para implantar localmente, o Docker Engine deve estar instalado e em execução. O mecanismo do Docker normalmente é iniciado quando o computador é iniciado. Se isso não acontecer, você poderá solucionar problemas do Docker Engine.

Gorjeta

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 Docker Engine. 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 como depurar pontos de extremidade online localmente antes de implantar no Azure, consulte Depuração de ponto 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 uma implantação nomeada blue sob o ponto de extremidade.

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

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

Gorjeta

Utilize o Visual Studio Code para testar e depurar os pontos finais localmente. Para obter mais informações, consulte 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 ser semelhante 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 valores possíveis para provisioning_state:

valor Description
Criação O recurso está sendo criado.
Atualização O recurso está sendo atualizado.
Exclusão O recurso está sendo excluído.
Bem sucedido A operação de criação/atualização foi bem-sucedida.
Falhado A operação create/update/delete falhou.

Invoque o ponto de extremidade local para pontuar dados usando seu modelo

Invoque o ponto de extremidade para pontuar o modelo usando o invoke comando e passando 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 curl), você deve 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, localize o scoring_uri atributo.

Revise os logs para obter a saída da operação de invocação

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

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

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

Implantar seu ponto de extremidade online no Azure

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

Registe o seu modelo e ambiente

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

Nota

Ao contrário da implantação no Azure, a implantação local não oferece suporte ao uso de modelos e ambientes registrados. Em vez disso, a implantação local usa arquivos de modelo local e usa ambientes apenas 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 para usar na implantação local, consulte 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 o registro, você pode extrair as definições de 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 YAML para o modelo:

    $schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
    name: my-model
    path: ../../model-1/model/
    
  2. Registe 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. Registe 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 a CLI. Para obter mais informações sobre como criar um ambiente, consulte Manage Azure Machine Learning environments with the CLI & SDK (v2).

Configurar uma implantação que usa ativos registrados

Sua configuração de implantação usa o modelo registrado que você deseja implantar e seu ambiente registrado..

Use os ativos registrados (modelo e ambiente) em sua definição de implantação. O trecho a seguir mostra o endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml arquivo, 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 tipos de instância de CPU e GPU e imagens

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

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

Para tipos de instância de uso geral e GPU suportados, consulte Pontos de extremidade online gerenciados suportados SKUs de VM. Para obter uma lista de imagens base de CPU e GPU do Azure Machine Learning, consulte Imagens base do Azure Machine Learning.

Nota

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

Em seguida, implante seu ponto de extremidade online no Azure.

Implementar 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 nomeada blue sob o 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 subjacente ou a imagem está sendo criada pela primeira vez. As implantações subsequentes que usam o mesmo ambiente são processadas mais rapidamente.

    Gorjeta

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

    Importante

    O --all-traffic sinalizador 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, convém 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, consulte Solução de problemas de implantações de ponto de extremidade online.

Verificar o estado do ponto final

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

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

    az ml online-endpoint list --output table
    

Verificar o status da implantação on-line

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

  1. Para ver a saída de log de um 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 --container storage-initializer sinalizador. Para obter mais informações sobre logs de implantação, consulte Obter logs de contêiner.

Invoque o ponto de extremidade para pontuar dados usando seu modelo

  1. Use o invoke comando ou um cliente REST de sua escolha para invocar o ponto de extremidade e pontuar 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:

    Gorjeta

    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 espaços de trabalho, consulte Gerenciar o acesso a um espaço de trabalho 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 show e get-credentials comandos para obter as credenciais de autenticação. Observe também que você está usando o --query sinalizador para filtrar apenas os atributos necessários. Para saber mais sobre o sinalizador, consulte Consultar saída de --query comando da CLI do Azure.

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

(Opcional) Atualizar a implantação

Se desejar atualizar o código, modelo ou ambiente, atualize o arquivo YAML e execute o az ml online-endpoint update comando.

Nota

Se você atualizar a contagem de instâncias (para dimensionar sua implantação) juntamente com outras configurações de modelo (como código, modelo ou ambiente) em um único update comando, a operação de dimensionamento será executada primeiro 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: Depois logging.info("Init complete"), init() adicione logging.info("Updated successfully").

  3. Guarde o ficheiro.

  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
    

    Nota

    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 endpoints e implantações (até instance_countmesmo) passam pelo YAML.

    Gorjeta

    • Você pode usar parâmetros de atualização genéricos, como o --set parâmetro, com o comando CLI update para substituir atributos em seu YAML ou para definir atributos específicos sem passá-los no arquivo YAML. O uso --set para atributos únicos é especialmente valioso em cenários de desenvolvimento e teste. Por exemplo, para aumentar o instance_count valor da primeira implantação, você pode usar o --set instance_count=2 sinalizador. No entanto, como o YAML não é 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, que é executada init() 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 update comando também funciona com implantações locais. Use o mesmo az ml online-deployment update comando com o --local sinalizador.

A atualização para a implantação nesta seção é um exemplo de uma atualização contínua in-loco.

  • Para um ponto de extremidade online gerenciado, a implantação é atualizada para a nova configuração com 20% de nós de cada vez. Ou seja, se a implantação tiver 10 nós, 2 nós de cada vez serão atualizados.
  • Para um ponto de extremidade online do Kubernetes, o sistema cria iterativamente uma nova instância de implantação com a nova configuração e exclui a antiga.
  • Para uso em produção, você deve considerar 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 a quantidade certa de recursos para processar a carga da aplicação. Os pontos de extremidade online gerenciados dão suporte ao dimensionamento automático por meio da integração com o recurso de dimensionamento automático do monitor do Azure. Para configurar o dimensionamento automático, consulte Como dimensionar automaticamente pontos de extremidade online.

(Opcional) Monitorar SLA usando o Azure Monitor

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

(Opcional) Integração com o Log Analytics

O get-logs comando para CLI ou o get_logs método para SDK fornece apenas as últimas centenas de linhas de logs de uma instância selecionada automaticamente. No entanto, o Log Analytics fornece uma maneira de armazenar e analisar logs de forma durável. Para obter mais informações sobre como usar o registro em log, consulte 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