Neste artigo, você aprenderá a implantar um modelo de machine learning treinado com AutoML em um ponto de extremidade online (inferência em tempo real). 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 saber mais, confira O que é AutoML (machine learning automatizado)?.
Neste artigo, você saberá como implantar modelo de machine learning de AutoML treinado em pontos de extremidade online usando:
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 e um ambiente, pois eles são gerados automaticamente.
Vá para a página ML Automatizado no estúdio
Selecionar o experimento e execute
Escolha a guia Modelos
Selecione o modelo que você deseja implantar
Depois de selecionar um modelo, o botão Implantar se acenderá com uma lista suspensa
Selecione a opção Implantar no ponto de extremidade em tempo real
O sistema irá gerar o Modelo e o Ambiente necessários para a implantação.
Conclua o assistente para implantar o modelo em um ponto de extremidade online
Implantar manualmente do estúdio ou da linha de comando
É possível baixar os artefatos de treinamento e implantá-los, se desejar obter mais controle sobre a implantação.
Para baixar os componentes necessários para a implantação:
Vá para o experimento do ML automatizado e execute no seu espaço de trabalho do machine learning
Escolha a guia Modelos
Selecione o modelo que deseja usar. Depois de selecionar um modelo, o botão Baixar será habilitado
Escolha Baixar
Você receberá 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 próprio modelo, em um arquivo Python .pkl chamado model.pkl
Para implantar usando esses arquivos, você pode usar o estúdio ou a CLI do Azure.
Acesse a página Modelos no Estúdio do Azure Machine Learning
Selecione a opção + Registrar Modelo
Registrar o modelo que você baixou da execução do ML automatizado
Vá para a página de Ambientes, selecione ambiente Personalizado e selecione a opção + Criar para criar um ambiente para sua implantação. Usar o Conda YAML baixado para criar um ambiente personalizado
Selecione o modelo, e da opção do menu suspenso Implantação, selecione Implantar para 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 da CLI, você precisará da CLI do Azure com a extensão v2 do ML. Execute o seguinte comando para confirmar que você tem as duas:
az version
Se receber uma mensagem de erro ou não ver Extensions: ml na resposta, siga as etapas em Extensions: ml.
Entre:
az login
Se você tem acesso a várias assinaturas do Azure, pode definir a 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 em que você deseja 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/ e coloque 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 da linha de comando, você 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 os pontos de extremidade/online/gerenciado/exemplo/ , que capturam todas as entradas necessárias:
Você precisará modificar esse arquivo para usar os arquivos baixados da página Modelos do AutoML.
Crie um arquivo automl_endpoint.yml e automl_deployment.yml cole o conteúdo do exemplo acima.
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, altere o valor das chaves nos seguintes caminhos:
Caminho
Altere para
model:path
O caminho para o arquivo model.pkl baixado.
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 de 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/ e coloque 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
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 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
Em seguida, criaremos os pontos de extremidade e implantações online gerenciados.
Configurar 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",
)
Criar o ponto de extremidade:
Usando o MLClient que já foi criado, vamos criar o ponto de extremidade no workspace. Esse comando iniciará a criação do ponto de extremidade e retornará uma resposta de confirmação enquanto a criação do ponto de extremidade continuar.
ml_client.begin_create_or_update(endpoint)
Configurar a implantação online:
Uma implantação é um conjunto de recursos necessários para hospedar o modelo que executa a inferência real. Criaremos uma implantação do ponto de extremidade usando a classe ManagedOnlineDeployment.
No exemplo acima, presumimos que os arquivos baixados da página Modelos AutoML estejam 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 baixado.
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 de ambiente Conda baixado (conda_env_<VERSION>.yml).
Crie a implantação:
Usando o MLClient que já foi criado, vamos criar a implantação no workspace. Esse comando iniciará a criação da implantação e retornará uma resposta de confirmação enquanto a criação da implantação continuar.