Partilhar via


Implantar e avaliar um modelo de aprendizagem automática usando um endpoint online

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

Neste artigo, irá aprender a implantar o seu modelo num ponto de acesso online para 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, terás um endpoint HTTPS/REST escalável que pode ser utilizado para inferência em tempo real.

Pontos finais online são utilizados para inferência em tempo real. Existem dois tipos de endpoints online: endpoints online gerenciados e endpoints online do Kubernetes. Para obter mais informações sobre as diferenças, consulte Pontos de extremidade online gerenciados vs. Pontos de extremidade online do Kubernetes.

Os pontos finais online geridos ajudam a implementar os modelos de aprendizagem automática de forma pronta a usar. Os endpoints online geridos funcionam com máquinas CPU e GPU avançadas no Azure de forma escalável e totalmente gerida. Os endpoints on-line gerenciados cuidam de servir, dimensionar, proteger e monitorar seus modelos. Essa assistência libera você da sobrecarga de configurar e gerenciar a infraestrutura subjacente.

O exemplo principal neste artigo 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:Azure CLI ml extension v2 (atual)

  • A CLI do Azure e a ml extensão para a CLI do Azure, instaladas e configuradas. Para obter mais informações, consulte Instalar e configurar a CLI (v2).

  • Um shell Bash ou um shell compatível, por exemplo, um shell em um sistema Linux ou Subsistema Windows para Linux. Os exemplos da CLI do Azure neste artigo pressupõem que você use esse tipo de shell.

  • Uma área de trabalho do Azure Machine Learning. Para obter instruções sobre como criar um espaço de trabalho, consulte Configurar.

  • O controle de acesso baseado em função do Azure (Azure RBAC) é usado para conceder acesso a operações no Azure Machine Learning. Para executar as etapas neste artigo, a sua conta de utilizador deve ter a função de Proprietário ou Colaborador para o espaço de trabalho do Azure Machine Learning ou uma função personalizada deve permitir Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Se tu usares o estúdio do Azure Machine Learning para criar e gerir endpoints ou implementações online, precisas da permissão Microsoft.Resources/deployments/write extra do proprietário do grupo de recursos. Para obter mais informações, consulte Gerenciar o acesso aos espaços 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, que facilita a depuração de 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 versões 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 para a versão da VM. A falha na contabilização dos recursos de computação extras resulta em um erro. Algumas versões de VM estão isentas 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. O Azure Machine Learning fornece um pool de cotas compartilhadas a partir do qual os usuários em várias regiões podem acessar a cota para executar testes por um tempo limitado, dependendo da disponibilidade. Quando você usa o estúdio do Azure para implantar modelos Llama-2, Phi, Nemotron, Mistral, Dolly e Deci-DeciLM do catálogo de modelos para um endpoint online gerido, o Aprendizado de Máquina do Azure permite que você aceda ao seu pool de cotas partilhadas por um tempo limitado para poder realizar 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 azureml-examples e, em seguida, altere para o diretório azureml-examples/cli do repositório:

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

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

Nota

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 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.

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 definir 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 Pontos de extremidade online e pontos de extremidade em lote do Azure Machine Learning.

Chave Descrição
$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 (pré-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 scikit-learn modelo que faz regressão e usa um script de pontuação score.py para executar o modelo em uma solicitação de entrada específica.

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:

$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-ubuntu22.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 parâmetro (de onde carregar arquivos). A CLI carrega automaticamente os arquivos de modelo e registra o modelo com um nome gerado automaticamente.
  • environment: Usa definições embutidas que incluem de onde carregar arquivos. A CLI carrega automaticamente o arquivo conda.yaml e registra o ambiente. Mais tarde, para criar o ambiente, a implantação usa o parâmetro image para a imagem base. Neste exemplo, é mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest. As conda_file dependências são instaladas sobre a imagem base.
  • code_configuration: Carrega os arquivos locais, como a fonte Python para o modelo de pontuação, do ambiente de desenvolvimento durante a implantação.

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 geridos 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 outras propriedades que se aplicam 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 script de pontuação

O formato do script de pontuação para endpoints online é o mesmo 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 do repositório que você clonou ou baixou anteriormente:

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 sempre que o ponto de extremidade é invocado. Ele executa a pontuação e a previsão reais. Nesse arquivo score.py , a run() função extrai dados de uma entrada JSON, chama o método do modelo predict() scikit-learn e retorna o resultado da previsão.

Implementar e depurar localmente utilizando um endpoint local

É altamente recomendável testar o seu endpoint localmente para validar e depurar o código e a configuração antes de implementar no Azure. A CLI do Azure e o SDK do Python dão suporte a pontos de extremidade locais e implantações locais, mas o Azure Machine Learning studio e os templates ARM não.

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

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 um ponto de extremidade online localmente antes de fazer a implementação 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. Você pode criar a implantação diretamente (próxima etapa), que, por sua vez, cria 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 flag direciona a CLI para implantar o ponto de extremidade no ambiente Docker.

Gorjeta

Utilize o Visual Studio Code para testar e depurar os pontos finais localmente. Para obter mais informações, consulte Depurar localmente pontos de extremidade online 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 parâmetro é 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 Descrição
Creating O recurso está sendo criado.
Updating O recurso está sendo atualizado.
Deleting O recurso está sendo excluído.
Succeeded A operação de criação ou atualização foi bem-sucedida.
Failed A operação de criação, atualização ou exclusão 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 o seu endpoint online no Azure. Como prática recomendada para produção, recomendamos que você registre o modelo e o ambiente usados 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. Depois de registrar seus ativos, você pode reutilizá-los sem a necessidade de carregá-los toda vez que criar implantações. Esta prática aumenta a reprodutibilidade e a rastreabilidade.

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 locais 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 na pasta endpoints/online/managed/sample 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. Nomeie o arquivo model.yml:

    $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 endpoints/online/managed/sample/model.yml
    
  3. Crie uma definição de YAML para o ambiente. Nomeie o arquivo environment.yml:

    $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 endpoints/online/managed/sample/environment.yml
    

Para obter mais informações sobre como registrar seu modelo como um ativo, consulte Registrar um modelo usando a CLI do Azure ou o SDK do Python. Para obter mais informações sobre como criar um ambiente, consulte Criar um ambiente personalizado.

Importante

Ao definir um ambiente personalizado para sua implantação, certifique-se de que o azureml-inference-server-http pacote esteja incluído no arquivo conda. Este pacote é essencial para que o servidor de inferência funcione corretamente. Se você não estiver familiarizado com como criar seu próprio ambiente personalizado, use um de nossos ambientes com curadoria, como minimal-py-inference (para modelos personalizados que não usam mlflow) ou mlflow-py-inference (para modelos que usam mlflow). Você pode encontrar esses ambientes selecionados na guia Ambientes da sua instância do estúdio Azure Machine Learning.

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 fragmento a seguir mostra o arquivo endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml, com todos os dados de entrada necessários para configurar uma implementação.

$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.

A 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 a imagem do Docker mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest sem GPU. Para computação GPU, escolha uma versão do tipo de computação GPU e uma imagem GPU Docker.

Para tipos de instância de GPU e de uso geral suportados, consulte Lista de SKU de endpoints online gerenciados. 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 o seu endpoint 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.

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

    O --all-traffic flag no código az ml online-deployment create usado para criar a implementação aloca 100% do tráfego do endpoint para a implementação azul recentemente criada. O uso desse sinalizador é útil para fins de desenvolvimento e teste, mas para produção, convém rotear o tráfego para a nova implantação por meio de um comando explícito. Por exemplo, use 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 de extremidade online

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

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

    az ml online-endpoint list --output table
    

Verificar o estado da implantação online

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

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 contentor do inicializador de armazenamento, adicione o --container storage-initializer indicador. Para obter mais informações sobre registos de implementação, consulte Obter registos de contentor.

Invoque o ponto de extremidade para pontuar dados usando seu modelo

  1. Utilize o comando invoke ou um cliente REST à sua escolha para chamar o endpoint e avaliar 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:

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

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

(Opcional) Atualizar a implantação

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

Se você atualizar a contagem de instâncias (para dimensionar sua implantação) junto 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. As outras atualizações são aplicadas em seguida. É 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 de init(), adicione logging.info("Init complete").

  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
    

    A atualização usando YAML é declarativa. Ou seja, as alterações no YAML são refletidas nos recursos subjacentes do Resource Manager (endpoints e deployments). Uma abordagem declarativa facilita o GitOps: todas as alterações em endpoints e implantações (até instance_countmesmo) passam pelo YAML.

    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 valor instance_count da primeira implantação, pode usar a opção --set instance_count=2. 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 diferentes configurações de simultaneidade para uma implantação específica, 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. Essa abordagem mantém toda a configuração existente, mas atualiza apenas os parâmetros especificados.

  5. Dado que modificou a função init(), que é executada quando o ponto de extremidade é criado ou atualizado, a mensagem Updated successfully surge nos registos. 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 flag.

Nota

A atualização para a implantação nesta seção é um exemplo de uma atualização gradual no local.

  • Para um ponto de extremidade online gerenciado, a implantação é atualizada para a nova configuração com 20% dos 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, 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 escalonamento automático executa a quantidade certa de recursos para processar a carga de trabalho na sua aplicação. Os pontos de extremidade online geridos oferecem suporte à escala automática através da integração com o recurso de escala automática do Azure Monitor. Para configurar o dimensionamento automático, consulte Pontos de extremidade online com dimensionamento automático.

(Opcional) Monitorar SLA usando o Azure Monitor

Para visualizar métricas e definir alertas com base no seu SLA, siga as etapas descritas em Monitorar endpoints online.

(Opcional) Integração com o Log Analytics

O get-logs comando para a CLI ou o get_logs método para o 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 logs, consulte Usar logs.

Excluir o ponto de extremidade e a implantação

Use o seguinte comando para excluir o ponto de extremidade e todas as suas implantações subjacentes:

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