I den här artikeln får du lära dig hur du distribuerar en AutoML-tränad maskininlärningsmodell till en slutpunkt för realtidsslutpunkt online. 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 följande avsnitt får du lära dig hur du distribuerar AutoML-tränad maskininlärningsmodell till onlineslutpunkter med hjälp av:
Distribuera från Azure Mašinsko učenje 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ö eftersom båda genereras automatiskt.
Gå till sidan Automatiserad ML i Azure Mašinsko učenje studio.
Välj experimentet och kör det.
Välj fliken Modeller + underordnade jobb .
Välj den modell du vill distribuera.
När du har valt en modell är knappen Distribuera tillgänglig med en nedrullningsbara meny.
Välj alternativet Slutpunkt i realtid.
Systemet genererar den modell och miljö som behövs för distributionen.
Distribuera manuellt från studio- eller kommandoraden
Om du vill ha mer kontroll över distributionen kan du ladda ned träningsartefakterna och distribuera dem.
För att ladda ned komponenterna behöver du för distribution:
Gå till ditt automatiserade ML-experiment och kör det på din maskininlärningsarbetsyta.
Välj fliken Modeller + underordnade jobb .
Välj den modell som du vill använda. När du har valt en modell aktiveras knappen Ladda ned .
Välj Hämta.
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 .pkl-fil 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 Mašinsko učenje Studio.
Välj Välj + Registrera från>lokala filer.
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 välj Realtidsslutpunkt i listrutan Deploy.
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. Spara bedömningsfilen som du laddade ned till 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
Skapa en onlineslutpunkt från kommandoraden genom att skapa en endpoint.yml och en deployment.yml fil. Följande kod, som hämtas från lagringsplatsen Azure Mašinsko učenje 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 och klistra in innehållet i föregående exempel.
Ä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.
I filen automl_deployment.yml ä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. Spara bedömningsfilen som du laddade ned till 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.
Ansluta till Azure Mašinsko učenje-arbetsyta
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
Skapa hanterade onlineslutpunkter och distributioner.
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änd aml_token för Azure Mašinsko učenje tokenbaserad autentisering. 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.
Skapa slutpunkten på arbetsytan med hjälp av det MLClient som skapades tidigare. Det här kommandot startar skapandet av slutpunkten. Det returnerar ett bekräftelsesvar medan slutpunkten skapas.
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. Skapa en distribution för slutpunkten med hjälp av ManagedOnlineDeployment klassen .
I det här exemplet finns filerna som du laddade ned från sidan AutoML-modeller i katalogen src . 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.
Skapa distributionen på arbetsytan med hjälp av det MLClient som skapades tidigare. Det här kommandot börjar skapa distributionen. Det returnerar ett bekräftelsesvar medan distributionen skapas.