I den här artikeln får du lära dig hur du distribuerar en AutoML-tränad maskininlärningsmodell till en onlineslutpunkt (slutsatsdragning i realtid). Automatiserad maskininlärning, även kallad automatiserad ML eller AutoML, är processen att automatisera de tidskrävande, iterativa uppgifterna med att utveckla en maskininlärningsmodell. Mer information finns i Vad är automatisk maskininlärning (AutoML)?.
I den här artikeln får du veta hur du distribuerar autoML-tränad maskininlärningsmodell till onlineslutpunkter med hjälp av:
Distribuera från Azure Machine Learning-studio och ingen kod
Att distribuera en AutoML-tränad modell från sidan Automatiserad ML är en kodfri upplevelse. Du behöver alltså inte förbereda ett bedömningsskript och en miljö, båda genereras automatiskt.
Gå till sidan Automatiserad ML i studion
Välj experimentet och kör
Välj fliken Modeller
Välj den modell som du vill distribuera
När du har valt en modell lyser knappen Distribuera med en nedrullningsbara meny
Välj alternativet Distribuera till slutpunkt i realtid
Systemet genererar den modell och miljö som behövs för distributionen.
Slutför guiden för att distribuera modellen till en onlineslutpunkt
Distribuera manuellt från studio- eller kommandoraden
Om du vill ha mer kontroll över distributionen kan du ladda ned träningsartefakterna och distribuera dem.
Så här laddar du ned de komponenter som du behöver för distribution:
Gå till ditt automatiserade ML-experiment och kör på din maskininlärningsarbetsyta
Välj fliken Modeller
Välj den modell som du vill använda. När du har valt en modell aktiveras knappen Ladda ned
Välj Ladda ned
Du får en zip-fil som innehåller:
En conda-miljöspecifikationsfil med namnet conda_env_<VERSION>.yml
En Python-bedömningsfil med namnet scoring_file_<VERSION>.py
Själva modellen i en Python-fil .pkl med namnet model.pkl
Om du vill distribuera med hjälp av dessa filer kan du använda antingen studio eller Azure CLI.
Gå till sidan Modeller i Azure Machine Learning-studio
Välj + Registrera modellalternativ
Registrera modellen som du laddade ned från automatiserad ML-körning
Gå till sidan Miljöer, välj Anpassad miljö och välj + Skapa för att skapa en miljö för distributionen. Använd den nedladdade conda yaml för att skapa en anpassad miljö
Välj modellen och i listrutan Distribuera väljer du Distribuera till realtidsslutpunkt
Slutför alla steg i guiden för att skapa en onlineslutpunkt och distribution
Om du har åtkomst till flera Azure-prenumerationer kan du ange din aktiva prenumeration:
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Ange standardresursgruppen och arbetsytan till den plats där du vill skapa distributionen:
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Placera bedömningsfilen i en egen katalog
Skapa en katalog med namnet src/ och placera bedömningsfilen som du laddade ned i den. Den här katalogen laddas upp till Azure och innehåller all källkod som krävs för att härleda. För en AutoML-modell finns det bara en enskild bedömningsfil.
Skapa yaml-filen för slutpunkten och distributionen
Om du vill skapa en onlineslutpunkt från kommandoraden måste du skapa en endpoint.yml och en deployment.yml-fil . Följande kod, som hämtas från lagringsplatsen Azure Machine Learning Examples, visar slutpunkterna/online/managed/sample/, som samlar in alla nödvändiga indata:
Du måste ändra den här filen så att den använder de filer som du laddade ned från sidan AutoML-modeller.
Skapa en fil automl_endpoint.yml och automl_deployment.yml klistra in innehållet i exemplet ovan.
Ändra värdet för name slutpunkten. Slutpunktsnamnet måste vara unikt i Azure-regionen. Namnet på en slutpunkt måste börja med en versal eller gemen bokstav och endast bestå av '-'s och alfanumeriska tecken.
automl_deployment I filen ändrar du värdet för nycklarna på följande sökvägar:
Sökväg
Ändra till
model:path
Sökvägen till filen model.pkl som du laddade ned.
code_configuration:code:path
Katalogen där du placerade bedömningsfilen.
code_configuration:scoring_script
Namnet på Python-bedömningsfilen (scoring_file_<VERSION>.py).
environment:conda_file
En fil-URL för den nedladdade conda-miljöfilen (conda_env_<VERSION>.yml).
Kommentar
En fullständig beskrivning av YAML finns i YAML-referens för onlineslutpunkt.
Skapa en katalog med namnet src/ och placera bedömningsfilen som du laddade ned i den. Den här katalogen laddas upp till Azure och innehåller all källkod som krävs för att härleda. För en AutoML-modell finns det bara en enskild bedömningsfil.
Anslut till Azure Machine Learning-arbetsytan
Importera de bibliotek som krävs:
# 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
Konfigurera information om arbetsytan och få ett handtag till arbetsytan:
# 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
)
Skapa slutpunkten och distributionen
Därefter skapar vi de hanterade onlineslutpunkterna och distributionerna.
Konfigurera onlineslutpunkt:
Dricks
name: Namnet på slutpunkten. Den måste vara unik i Azure-regionen. Namnet på en slutpunkt måste börja med en versal eller gemen bokstav och endast bestå av '-'s och alfanumeriska tecken. Mer information om namngivningsreglerna finns i slutpunktsgränser.
auth_mode : Används key för nyckelbaserad autentisering. Används aml_token för tokenbaserad autentisering i Azure Machine Learning. A key upphör inte att gälla, men aml_token upphör att gälla. Mer information om autentisering finns i Autentisera till en onlineslutpunkt.
# 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",
)
Skapa slutpunkten:
Med hjälp av den MLClient som skapades tidigare skapar vi nu slutpunkten på arbetsytan. Det här kommandot startar skapandet av slutpunkten och returnerar ett bekräftelsesvar medan skapandet av slutpunkten fortsätter.
ml_client.begin_create_or_update(endpoint)
Konfigurera onlinedistribution:
En distribution är en uppsättning resurser som krävs för att vara värd för den modell som utför den faktiska inferensen. Vi skapar en distribution för slutpunkten med hjälp av ManagedOnlineDeployment klassen .
I exemplet ovan antar vi att filerna som du laddade ned från sidan AutoML-modeller finns i src katalogen. Du kan ändra parametrarna i koden så att de passar din situation.
Parameter
Ändra till
model:path
Sökvägen till filen model.pkl som du laddade ned.
code_configuration:code:path
Katalogen där du placerade bedömningsfilen.
code_configuration:scoring_script
Namnet på Python-bedömningsfilen (scoring_file_<VERSION>.py).
environment:conda_file
En fil-URL för den nedladdade conda-miljöfilen (conda_env_<VERSION>.yml).
Skapa distributionen:
Med hjälp av den MLClient som skapades tidigare skapar vi nu distributionen på arbetsytan. Det här kommandot startar distributionen och returnerar ett bekräftelsesvar medan distributionen skapas.