V tomto článku se dozvíte, jak nasadit model strojového učení natrénovaný autoML do online koncového bodu (odvozování v reálném čase). Automatizované strojové učení, označované také jako automatizované strojové učení nebo AutoML, je proces automatizace časově náročných iterativních úloh vývoje modelu strojového učení. Další informace najdete v tématu Co je automatizované strojové učení (AutoML)?
V tomto článku se dozvíte, jak nasadit model strojového učení vytrénovaný službou AutoML do online koncových bodů pomocí:
Nasazení z studio Azure Machine Learning a bez kódu
Nasazení modelu vytrénovaného autoML ze stránky Automatizované strojového učení je prostředí bez kódu. To znamená, že nemusíte připravovat bodovací skript a prostředí, oba se automaticky generují.
Přechod na stránku Automatizované strojové učení v sadě Studio
Vyberte experiment a spusťte
Volba karty Modely
Vyberte model, který chcete nasadit.
Jakmile vyberete model, tlačítko Nasadit se rozsvítí s rozevírací nabídkou.
Výběr možnosti Nasadit do koncového bodu v reálném čase
Systém vygeneruje model a prostředí potřebné pro nasazení.
Dokončením průvodce nasaďte model do online koncového bodu.
Ruční nasazení ze studia nebo příkazového řádku
Pokud chcete mít větší kontrolu nad nasazením, můžete stáhnout trénovací artefakty a nasadit je.
Ke stažení komponent, které budete potřebovat pro nasazení:
Přejděte do experimentu automatizovaného strojového učení a spusťte ho v pracovním prostoru strojového učení.
Volba karty Modely
Vyberte model, který chcete použít. Jakmile vyberete model, tlačítko Stáhnout se aktivuje.
Zvolte Stáhnout.
Zobrazí se soubor ZIP obsahující:
Soubor specifikace prostředí Conda s názvem conda_env_<VERSION>.yml
Soubor bodování Pythonu s názvem scoring_file_<VERSION>.py
Samotný model v souboru Pythonu .pkl s názvem model.pkl
K nasazení pomocí těchto souborů můžete použít buď studio, nebo Azure CLI.
Přechod na stránku Modely v studio Azure Machine Learning
Select + Register Model option
Registrace modelu, který jste stáhli z automatizovaného strojového učení
Přejděte na stránku Prostředí, vyberte Vlastní prostředí a výběrem možnosti + Vytvořit vytvořte prostředí pro vaše nasazení. Použití staženého conda yaml k vytvoření vlastního prostředí
Vyberte model a v rozevíracím seznamu Nasazení vyberte Možnost Nasadit do koncového bodu v reálném čase.
Dokončete všechny kroky v průvodci a vytvořte online koncový bod a nasazení.
K vytvoření nasazení z rozhraní příkazového řádku budete potřebovat Azure CLI s rozšířením ML v2. Spuštěním následujícího příkazu potvrďte, že máte obojí:
Pokud máte přístup k několika předplatným Azure, můžete nastavit aktivní předplatné:
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Nastavte výchozí skupinu prostředků a pracovní prostor na místo, kde chcete vytvořit nasazení:
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Umístěte soubor bodování do vlastního adresáře.
Vytvořte volaný src/ adresář a umístěte do něj soubor bodování, který jste stáhli. Tento adresář se nahraje do Azure a obsahuje veškerý zdrojový kód potřebný k odvození. Pro model AutoML existuje jenom jeden soubor bodování.
Vytvoření souboru yaml koncového bodu a nasazení
Pokud chcete vytvořit online koncový bod z příkazového řádku, budete muset vytvořit koncový bod endpoint.yml a soubor deployment.yml . Následující kód převzatý z úložiště Azure Machine Učení Examples ukazuje koncové body, online, managed/sample/, které zachycuje všechny požadované vstupy:
Tento soubor budete muset upravit tak, aby používal soubory, které jste stáhli ze stránky Modely AutoML.
Vytvořte soubor automl_endpoint.yml a automl_deployment.yml vložte obsah výše uvedeného příkladu.
Změňte hodnotu name koncového bodu. Název koncového bodu musí být jedinečný v rámci oblasti Azure. Název koncového bodu musí začínat velkými nebo malými písmeny a musí se skládat pouze z alfanumerických a alfanumerických znaků.
automl_deployment V souboru změňte hodnotu klíčů na následujících cestách:
Cesta
Změňte na
model:path
Cesta k souboru, který model.pkl jste stáhli.
code_configuration:code:path
Adresář, do kterého jste umístili soubor bodování.
code_configuration:scoring_script
Název souboru bodování Pythonu (scoring_file_<VERSION>.py).
environment:conda_file
Adresa URL souboru staženého souboru prostředí Conda (conda_env_<VERSION>.yml).
Poznámka:
Úplný popis YAML najdete v referenčních informacích k YAML koncového bodu Online.
Vytvořte volaný src/ adresář a umístěte do něj soubor bodování, který jste stáhli. Tento adresář se nahraje do Azure a obsahuje veškerý zdrojový kód potřebný k odvození. Pro model AutoML existuje jenom jeden soubor bodování.
Připojení do pracovního prostoru Azure Machine Učení
Import požadovaných knihoven:
# 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
Nakonfigurujte podrobnosti pracovního prostoru a získejte popisovač pracovního prostoru:
# 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
)
Vytvoření koncového bodu a nasazení
Dále vytvoříme spravované online koncové body a nasazení.
Konfigurace online koncového bodu:
Tip
name: Název koncového bodu. Musí být jedinečný v oblasti Azure. Název koncového bodu musí začínat velkými nebo malými písmeny a musí se skládat pouze z alfanumerických a alfanumerických znaků. Další informace o pravidlech pojmenování najdete v tématu Omezení koncových bodů.
auth_mode : Slouží key k ověřování na základě klíčů. Používá se aml_token pro ověřování na základě tokenů azure machine Učení. Platnost key A nevyprší, ale aml_token vyprší. Další informace o ověřování najdete v tématu Ověřování u online koncového bodu.
# 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",
)
Vytvořte koncový bod:
Pomocí dříve vytvořeného MLClient koncového bodu teď vytvoříme v pracovním prostoru koncový bod. Tento příkaz spustí vytvoření koncového bodu a během vytváření koncového bodu vrátí potvrzovací odpověď.
ml_client.begin_create_or_update(endpoint)
Konfigurace online nasazení:
Nasazení je sada prostředků vyžadovaných pro hostování modelu, který provádí skutečné odvozování. Pomocí třídy vytvoříme nasazení pro náš koncový bod ManagedOnlineDeployment .
V předchozím příkladu předpokládáme, že soubory, které jste stáhli ze stránky Modely AutoML, jsou v src adresáři. Parametry v kódu můžete upravit tak, aby vyhovovaly vaší situaci.
Parametr
Změňte na
model:path
Cesta k souboru, který model.pkl jste stáhli.
code_configuration:code:path
Adresář, do kterého jste umístili soubor bodování.
code_configuration:scoring_script
Název souboru bodování Pythonu (scoring_file_<VERSION>.py).
environment:conda_file
Adresa URL souboru staženého souboru prostředí Conda (conda_env_<VERSION>.yml).
Vytvořte nasazení:
Pomocí dříve vytvořeného MLClient prostředí teď vytvoříme nasazení v pracovním prostoru. Tento příkaz spustí vytvoření nasazení a během vytváření nasazení vrátí potvrzovací odpověď.