Neste artigo, você aprenderá como implantar um modelo de aprendizado de máquina treinado pelo AutoML em um ponto de extremidade online (inferência 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 saber mais, consulte O que é o aprendizado de máquina automatizado (AutoML)?.
Neste artigo, você saberá como 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, ambos são gerados automaticamente.
Ir para a página de ML automatizado no estúdio
Selecione seu experimento e execute
Escolha a guia Modelos
Selecione o modelo que deseja implantar
Depois de selecionar um modelo, o botão Implantar acenderá com um menu suspenso
Selecione a opção Implantar em ponto de extremidade em tempo real
O sistema 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 a partir do estúdio ou da linha de comando
Se desejar ter 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 seu experimento de ML automatizado e execute em seu espaço de trabalho de aprendizado de máquina
Escolha a guia Modelos
Selecione o modelo que deseja usar. Depois de selecionar um modelo, o botão Download será ativado
Escolha Download
Você receberá um arquivo zip contendo:
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 Python .pkl chamado model.pkl
Para implantar usando esses arquivos, você pode usar o estúdio ou a CLI do Azure.
Ir para a página Modelos no estúdio do Azure Machine Learning
Opção Selecionar + Registrar Modelo
Registre o modelo que você baixou da execução automatizada de ML
Vá para a página Ambientes, selecione Ambiente personalizado e selecione a opção + Criar para criar um ambiente para sua implantação. Use o conda yaml baixado para criar um ambiente personalizado
Selecione o modelo e, na opção suspensa Implantar, selecione Implantar no ponto de extremidade em tempo real
Conclua todas as etapas no assistente para criar um ponto de extremidade online e implantação
Para criar uma implantação a partir da CLI, você precisará da CLI do Azure com a extensão ML v2. Execute o seguinte comando para confirmar que você tem ambos:
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/ e coloque o arquivo de pontuação que você baixou nele. 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, você precisará criar um endpoint.yml e um arquivo deployment.yml. O código a seguir, retirado 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ê precisará modificar esse arquivo para usar os arquivos baixados da página Modelos AutoML.
Crie um arquivo automl_endpoint.yml e automl_deployment.yml cole o conteúdo do exemplo acima.
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.
automl_deployment No arquivo, altere o valor das chaves nos seguintes caminhos:
Caminho
Alterar para
model:path
O caminho para o model.pkl arquivo 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/ e coloque o arquivo de pontuação que você baixou nele. 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
Em seguida, criaremos os endpoints 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 criado anteriormente, agora criaremos o MLClient Endpoint no espaço de trabalho. Este comando iniciará a criação do ponto de extremidade e retornará 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. Criaremos uma implantação para nosso endpoint usando a ManagedOnlineDeployment classe.
No exemplo acima, assumimos que os arquivos baixados da página Modelos AutoML estão no src diretório. 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 model.pkl arquivo 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, agora criaremos a implantação no espaço de trabalho. Esse comando iniciará a criação da implantação e retornará uma resposta de confirmação enquanto a criação da implantação continuar.