GÄLLER FÖR:
Azure CLI ml extension v2 (current)
Python SDK azure-ai-ml v2 (aktuell)
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:
- Azure Machine Learning Studio
- Azure Machine Learning CLI v2
- Azure Machine Learning Python SDK v2
Förutsättningar
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ö eftersom båda genereras automatiskt.
I Azure Machine Learning-studio går du till sidan Automatiserad ML.
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.
- I Azure Machine Learning-studio går du till sidan Modeller.
- 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.
GÄLLER FÖR:
Azure CLI ml-tillägget v2 (aktuellt)
För att skapa en distribution från CLI behöver du Azure CLI med ML v2-tillägget. Kör följande kommando för att bekräfta:
az version
Om du får ett felmeddelande eller om du inte ser Extensions: ml något i svaret följer du stegen i Installera och konfigurera CLI (v2).
Logga in.
az login
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 Machine Learning Examples, visar slutpunkterna/online/managed/sample/, som samlar in alla nödvändiga indata.
automl_endpoint.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key
automl_deployment.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
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.
Från kommandoraden kör du:
GÄLLER FÖR:
Azure CLI ml-tillägget v2 (aktuellt)
az ml online-endpoint create -f automl_endpoint.yml
az ml online-deployment create -f automl_deployment.yml
När du har skapat en distribution kan du poängsätta den enligt beskrivningen i Anropa slutpunkten för att poängsätta data med hjälp av din modell.
GÄLLER FÖR:
Python SDK azure-ai-ml v2 (aktuell)
Om du behöver installera Python SDK v2 installerar du med det här kommandot:
pip install azure-ai-ml azure-identity
Mer information finns i Installera Azure Machine Learning SDK v2 för Python.
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.
Ansluta 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
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ä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.
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 .
model = Model(path="./src/model.pkl")
env = Environment(
conda_file="./src/conda_env_v_1_0_0.yml",
image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:latest",
)
blue_deployment = ManagedOnlineDeployment(
name="blue",
endpoint_name=online_endpoint_name,
model=model,
environment=env,
code_configuration=CodeConfiguration(
code="./src", scoring_script="scoring_file_v_2_0_0.py"
),
instance_type="Standard_DS2_v2",
instance_count=1,
)
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.
ml_client.begin_create_or_update(blue_deployment)
När du har skapat en distribution kan du poängsätta den enligt beskrivningen i Testa slutpunkten med exempeldata.
Mer information om hur du distribuerar till hanterade onlineslutpunkter med SDK finns i Distribuera och poängsätta en maskininlärningsmodell med hjälp av en onlineslutpunkt.
Relaterat innehåll