Neste artigo, você aprenderá a implantar um modelo de aprendizado de máquina treinado pelo AutoML em um ponto de extremidade de inferência online em tempo real. O aprendizado de máquina automatizado, também conhecido como ML automatizado ou AutoML, é o processo de automatizar as tarefas iterativas e demoradas do desenvolvimento de um modelo de aprendizado de máquina. Para obter mais informações, consulte O que é aprendizado de máquina automatizado (AutoML)?
Nas seções a seguir, você aprenderá a implantar o modelo de aprendizado de máquina treinado pelo AutoML em pontos de extremidade online usando:
Implantar a partir do estúdio de Aprendizado de Máquina do Azure e sem código
A implantação de um modelo treinado em AutoML a partir da página ML automatizado é uma experiência sem código. Ou seja, você não precisa preparar um script de pontuação e um ambiente porque ambos são gerados automaticamente.
No estúdio do Azure Machine Learning, vá para a página ML automatizado .
Selecione seu experimento e execute-o.
Escolha a guia Modelos + trabalhos filho.
Selecione o modelo que pretende implementar.
Depois de selecionar um modelo, o botão Implantar estará disponível com um menu suspenso.
Selecione a opção Ponto final em tempo real.
O sistema gera o Modelo e o Ambiente necessários para a implantação.
Implantar manualmente a partir do estúdio ou da linha de comando
Se quiser ter mais controle sobre a implantação, você pode baixar os artefatos de treinamento e implantá-los.
Para baixar os componentes, você precisa para a implantação:
Vá para seu experimento de ML automatizado e execute-o em seu espaço de trabalho de aprendizado de máquina.
Escolha a guia Modelos + trabalhos filho.
Selecione o modelo que deseja usar. Depois de selecionar um modelo, o botão Download é ativado.
Escolha Download.
Você recebe um arquivo .zip que contém:
Um arquivo de especificação de ambiente conda chamado conda_env_<VERSION>.yml
Um arquivo de pontuação Python chamado scoring_file_<VERSION>.py
O modelo em si, em um arquivo .pkl Python chamado model.pkl
Para implantar usando esses arquivos, você pode usar o estúdio ou a CLI do Azure.
No estúdio do Azure Machine Learning, vá para a página Modelos .
Selecione Selecionar + Registrar>a partir de arquivos locais.
Registre o modelo que você baixou da execução automatizada de ML.
Vá para a página Ambientes, selecione Ambiente personalizado e selecione + Criar para criar um ambiente para sua implantação. Use o conda yaml baixado para criar um ambiente personalizado.
Selecione o modelo e, no menu suspenso Deploy , selecione Ponto de extremidade em tempo real.
Conclua todas as etapas no assistente para criar um ponto de extremidade e implantação online.
Se tiver acesso a várias subscrições do Azure, pode definir a sua subscrição ativa.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Defina o grupo de recursos e o espaço de trabalho padrão para onde você deseja criar a implantação.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Coloque o arquivo de pontuação em seu próprio diretório
Crie um diretório chamado src. Salve o arquivo de pontuação que você baixou para ele. Este diretório é carregado no Azure e contém todo o código-fonte necessário para fazer inferência. Para um modelo AutoML, há apenas o único arquivo de pontuação.
Criar o arquivo yaml de ponto de extremidade e implantação
Para criar um ponto de extremidade online a partir da linha de comando, crie um endpoint.yml e um arquivo deployment.yml. O código a seguir, extraído do repositório Exemplos de Aprendizado de Máquina do Azure, mostra os pontos de extremidade/online/managed/sample/, que captura todas as entradas necessárias.
Você precisa modificar esse arquivo para usar os arquivos baixados da página Modelos AutoML.
Crie um arquivo automl_endpoint.yml e automl_deployment.yml e cole o conteúdo dos exemplos anteriores.
Altere name o valor do ponto de extremidade. O nome do ponto de extremidade precisa ser exclusivo dentro da região do Azure. O nome de um ponto final deve começar com uma letra maiúscula ou minúscula e consistir apenas em '-' e caracteres alfanuméricos.
No arquivo automl_deployment.yml, altere o valor das chaves nos caminhos a seguir.
Caminho
Alterar para
model:path
O caminho para o arquivo model.pkl que você baixou.
code_configuration:code:path
O diretório no qual você colocou o arquivo de pontuação.
code_configuration:scoring_script
O nome do arquivo de pontuação Python (scoring_file_<VERSION>.py).
environment:conda_file
Um URL de arquivo para o arquivo de ambiente conda baixado (conda_env_<VERSION>.yml).
Nota
Para obter uma descrição completa do YAML, consulte Referência do YAML do ponto de extremidade online.
Coloque o arquivo de pontuação em seu próprio diretório
Crie um diretório chamado src. Salve o arquivo de pontuação que você baixou para ele. Este diretório é carregado no Azure e contém todo o código-fonte necessário para fazer inferência. Para um modelo AutoML, há apenas o único arquivo de pontuação.
Conectar-se ao espaço de trabalho do Azure Machine Learning
Importe as bibliotecas necessárias.
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Configure os detalhes do espaço de trabalho e obtenha um identificador para o espaço de trabalho.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Criar o ponto de extremidade e a implantação
Crie os pontos de extremidade e implantações online gerenciados.
Configure o ponto de extremidade online.
Gorjeta
name: O nome do ponto de extremidade. Ele deve ser exclusivo na região do Azure. O nome de um ponto final deve começar com uma letra maiúscula ou minúscula e consistir apenas em '-' e caracteres alfanuméricos. Para obter mais informações sobre as regras de nomenclatura, consulte Limites de pontos finais.
auth_mode : Use key para autenticação baseada em chave. Use aml_token para autenticação baseada em token do Azure Machine Learning. A key não expira, mas aml_token expira. Para obter mais informações sobre autenticação, consulte Autenticar em um ponto de extremidade online.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
Crie o ponto de extremidade.
Usando o MLClient criado anteriormente, crie o ponto de extremidade no espaço de trabalho. Este comando inicia a criação do ponto de extremidade. Ele retorna uma resposta de confirmação enquanto a criação do ponto de extremidade continua.
ml_client.begin_create_or_update(endpoint)
Configure a implantação online.
Uma implantação é um conjunto de recursos necessários para hospedar o modelo que faz a inferência real. Crie uma implantação para nosso endpoint usando a ManagedOnlineDeployment classe.
Neste exemplo, os arquivos baixados da página Modelos AutoML estão no diretório src . Você pode modificar os parâmetros no código para se adequar à sua situação.
Parâmetro
Alterar para
model:path
O caminho para o arquivo model.pkl que você baixou.
code_configuration:code:path
O diretório no qual você colocou o arquivo de pontuação.
code_configuration:scoring_script
O nome do arquivo de pontuação Python (scoring_file_<VERSION>.py).
environment:conda_file
Um URL de arquivo para o arquivo de ambiente conda baixado (conda_env_<VERSION>.yml).
Crie a implantação.
Usando o MLClient criado anteriormente, crie a implantação no espaço de trabalho. Este comando inicia a criação da implantação. Ele retorna uma resposta de confirmação enquanto a criação da implantação continua.