Neste artigo, você aprenderá a implantar um modelo de machine learning treinado com AutoML em um ponto de extremidade de inferência em tempo real online. O machine learning automatizado, também conhecido como ML automatizado ou AutoML, é o processo de automatizar as tarefas demoradas e iterativas do desenvolvimento de modelo de machine learning. Para obter mais informações, confira O que é machine learning automatizado (AutoML)?
Nas seções a seguir, você aprenderá a implantar o modelo de machine learning treinado por AutoML em pontos de extremidade online, usando o seguinte:
Implantar do Estúdio do Azure Machine Learning e sem código
A implantação de um modelo treinado por AutoML da página do ML automatizado é uma experiência sem código. Ou seja, você não precisa preparar um script de pontuação nem 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 o execute.
Escolha a guia Modelos + trabalhos filho.
Selecione o modelo que você deseja implantar.
Após você selecionar um modelo, o botão Implantar ficará disponível com um menu suspenso.
Selecione a opção Ponto de extremidade em tempo real.
O sistema irá gerar o Modelo e o Ambiente necessários para a implantação.
Implantar manualmente do estúdio ou da linha de comando
Se quiser obter mais controle sobre a implantação, você pode baixar os artefatos de treinamento e implantá-los.
Para baixar os componentes necessários para a implantação:
Vá para o seu experimento ML Automatizado e o execute no seu espaço de trabalho do machine learning.
Escolha a guia Modelos + trabalhos filho.
Selecione o modelo que você quer testar. Após você selecionar um modelo, o botão Baixar será habilitado.
Escolha Baixar.
Você recebe um arquivo .zip contendo:
Um arquivo de especificação de ambiente conda chamado conda_env_<VERSION>.yml
Um arquivo de pontuação do Python chamado scoring_file_<VERSION>.py
O modelo propriamente dito, em um arquivo .pkl do 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 + Registro>A partir de arquivos locais.
Registre o modelo que você baixou da execução do ML Automatizado.
Vá para a página Ambientes, selecione Ambiente personalizado e selecione + Criar para criar um ambiente para a sua implantação. Use o yaml do conda que você baixou para criar um ambiente personalizado.
Selecione o modelo e, no menu suspenso Implantar, selecione Ponto de extremidade em tempo real.
Conclua todas as etapas no assistente para criar um ponto de extremidade online e uma implantação.
Para criar uma implantação a partir da CLI, você vai precisar da CLI do Azure com a extensão v2 do ML. Execute o comando a seguir para confirmar:
az version
Se receber uma mensagem de erro ou não ver Extensions: ml na resposta, siga as etapas em Extensions: ml.
Entrar.
az login
Se você tem acesso a várias assinaturas do Azure, você poderá definir sua assinatura ativa.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Defina o grupo de recursos e o espaço de trabalho padrão para o local onde você quer criar a implantação.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Colocar o arquivo de pontuação em seu próprio diretório
Crie um diretório chamado src. Salve nele o arquivo de pontuação que você baixou. Esse diretório é carregado no Azure e contém todo o código-fonte necessário para a inferência. Há somente o arquivo de pontuação único, para um modelo AutoML.
Criar o arquivo YAML de ponto de extremidade e implantação
Para criar um ponto de extremidade online a partir da linha de comando, você vai precisar criar os arquivos endpoint.yml e deployment.yml. O código a seguir, retirado do repositório de Exemplos do Azure Machine Learning, mostra o endpoints/online/managed/sample/, que captura todas as entradas de dados necessárias.
Você vai precisar modificar esse arquivo para usar os arquivos que você baixou da página Modelos do AutoML.
Crie um arquivo automl_endpoint.yml e automl_deployment.yml e cole o conteúdo dos exemplos anteriores.
Altere o valor de name do ponto de extremidade. O nome do ponto de extremidade deve ser exclusivo na região do Azure. O nome de um ponto de extremidade deve começar com uma letra maiúscula ou minúscula e conter somente caracteres '-'s e alfanuméricos.
No arquivo automl_deployment.yml, altere o valor das chaves nos caminhos a seguir.
Caminho
Altere 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 do Python (scoring_file_<VERSION>.py).
environment:conda_file
Uma URL de arquivo para o arquivo do ambiente conda baixado (conda_env_<VERSION>.yml).
Colocar o arquivo de pontuação em seu próprio diretório
Crie um diretório chamado src. Salve nele o arquivo de pontuação que você baixou. Esse diretório é carregado no Azure e contém todo o código-fonte necessário para a inferência. Há somente o arquivo de pontuação único, para um modelo AutoML.
Conectar-se ao workspace do Azure Machine Learning
Importar 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 workspace e obtenha um identificador para o workspace.
# 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
)
Crie o ponto de extremidade e a implantação
Crie as implantações e pontos de extremidade online.
Configure o ponto de extremidade online.
Dica
name: o nome do ponto de extremidade. O valor precisa ser exclusivo na região do Azure. O nome de um ponto de extremidade deve começar com uma letra maiúscula ou minúscula e conter somente caracteres '-'s e alfanuméricos. Para obter mais informações sobre as regras de nomenclatura, confira os limites de 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. key não expira, mas aml_token expira. Para obter mais informações sobre autenticação, confira Autenticação 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. Esse comando inicia a criação do ponto de extremidade e retorna uma resposta de confirmação enquanto a criação do ponto de extremidade prossegue.
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 executa a inferência real. Crie uma implantação do ponto de extremidade usando a classe ManagedOnlineDeployment.
Nesse exemplo, os arquivos que você baixou da página Modelos AutoML estão no diretório src. Você pode modificar os parâmetros no código para atender à sua situação.
Parâmetro
Altere 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 do Python (scoring_file_<VERSION>.py).
environment:conda_file
Uma URL de arquivo para o arquivo do 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. Esse comando começa a criar a implantação e retorna uma resposta de confirmação enquanto a criação da implantação prossegue.