In dit artikel leert u hoe u een met AutoML getraind machine learning-model implementeert in een online realtime deductie-eindpunt. Geautomatiseerde machine learning, ook wel geautomatiseerd ML of AutoML genoemd, is het proces van het automatiseren van de tijdrovende, iteratieve taken voor het ontwikkelen van een machine learning-model. Zie Wat is geautomatiseerde machine learning (AutoML)?
In de volgende secties leert u hoe u met autoML getraind machine learning-model implementeert op online-eindpunten met behulp van:
Implementeren vanuit Azure Machine Learning-studio en geen code
Het implementeren van een door AutoML getraind model vanaf de pagina Geautomatiseerde ML is een ervaring zonder code. Dat wil gezegd, u hoeft geen scorescript en omgeving voor te bereiden omdat beide automatisch worden gegenereerd.
Ga in Azure Machine Learning-studio naar de pagina Geautomatiseerde ML.
Selecteer uw experiment en voer het uit.
Kies het tabblad Modellen en onderliggende taken .
Selecteer het model dat u wilt implementeren.
Nadat u een model hebt geselecteerd, is de knop Implementeren beschikbaar in een vervolgkeuzelijst.
Selecteer de optie realtime-eindpunt .
Het systeem genereert het model en de omgeving die nodig zijn voor de implementatie.
Handmatig implementeren vanuit de studio of opdrachtregel
Als u meer controle wilt over de implementatie, kunt u de trainingsartefacten downloaden en implementeren.
Als u de onderdelen wilt downloaden, moet u het volgende implementeren:
Ga naar uw geautomatiseerde ML-experiment en voer het uit in uw machine learning-werkruimte.
Kies het tabblad Modellen en onderliggende taken .
Selecteer het model dat u wilt gebruiken. Nadat u een model hebt geselecteerd, is de knop Downloaden ingeschakeld.
Kies Downloaden.
U ontvangt een .zip-bestand dat het volgende bevat:
Een conda-omgevingsspecificatiebestand met de naam conda_env_<VERSION>.yml
Een Python-scorebestand met de naam scoring_file_<VERSION>.py
Het model zelf, in een Python.pkl-bestand met de naam model.pkl
Als u deze bestanden wilt implementeren, kunt u de studio of de Azure CLI gebruiken.
Ga in Azure Machine Learning-studio naar de pagina Modellen.
Selecteer Selecteren en registreren>uit lokale bestanden.
Registreer het model dat u hebt gedownload van geautomatiseerde ML-uitvoering.
Ga naar de pagina Omgevingen, selecteer Aangepaste omgeving en selecteer + Maken om een omgeving voor uw implementatie te maken. Gebruik de gedownloade Conda Yaml om een aangepaste omgeving te maken.
Selecteer het model en selecteer in de vervolgkeuzelijst Deploy het realtime-eindpunt.
Voer alle stappen in de wizard uit om een online-eindpunt en -implementatie te maken.
Als u toegang hebt tot meerdere Azure-abonnementen, kunt u uw actieve abonnement instellen.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Stel de standaardresourcegroep en werkruimte in op de locatie waar u de implementatie wilt maken.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Het scorebestand in een eigen map plaatsen
Maak een map met de naam src. Sla het scorebestand op dat u naar het bestand hebt gedownload. Deze map wordt geüpload naar Azure en bevat alle broncode die nodig is om deductie uit te voeren. Voor een AutoML-model is er slechts één scorebestand.
Het yaml-bestand voor eindpunt en implementatie maken
Als u een online-eindpunt wilt maken vanaf de opdrachtregel, maakt u een endpoint.yml en een deployment.yml-bestand . De volgende code, afkomstig uit de opslagplaats Azure Machine Learning-voorbeelden, toont de eindpunten/online/beheerd/sample/, waarmee alle vereiste invoer wordt vastgelegd.
U moet dit bestand wijzigen om de bestanden te gebruiken die u hebt gedownload van de pagina AutoML-modellen.
Maak een bestand automl_endpoint.yml en automl_deployment.yml en plak de inhoud van de voorgaande voorbeelden.
Wijzig de waarde van het name eindpunt. De naam van het eindpunt moet uniek zijn binnen de Azure-regio. De naam van een eindpunt moet beginnen met een hoofdletter of kleine letter en mag alleen bestaan uit '-'s en alfanumerieke tekens.
Wijzig in het bestand automl_deployment.yml de waarde van de sleutels op de volgende paden.
Pad
Wijzig in
model:path
Het pad naar het bestand model.pkl dat u hebt gedownload.
code_configuration:code:path
De map waarin u het scorebestand hebt geplaatst.
code_configuration:scoring_script
De naam van het Python-scorebestand (scoring_file_<VERSION>.py).
environment:conda_file
Een bestands-URL voor het gedownloade conda-omgevingsbestand (conda_env_<VERSION>.yml).
Notitie
Zie voor een volledige beschrijving van de YAML-referentie voor online-eindpunten.
Maak een map met de naam src. Sla het scorebestand op dat u naar het bestand hebt gedownload. Deze map wordt geüpload naar Azure en bevat alle broncode die nodig is om deductie uit te voeren. Voor een AutoML-model is er slechts één scorebestand.
Verbinding maken met Azure Machine Learning-werkruimte
Importeer de vereiste bibliotheken.
# 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
Configureer werkruimtegegevens en haal een ingang op voor de werkruimte.
# 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
)
Het eindpunt en de implementatie maken
Maak de beheerde online-eindpunten en -implementaties.
Configureer het online-eindpunt.
Tip
name: De naam van het eindpunt. Deze moet uniek zijn in de Azure-regio. De naam van een eindpunt moet beginnen met een hoofdletter of kleine letter en mag alleen bestaan uit '-'s en alfanumerieke tekens. Zie eindpuntlimieten voor meer informatie over de naamgevingsregels.
auth_mode : Gebruiken key voor verificatie op basis van sleutels. Gebruiken aml_token voor verificatie op basis van tokens op basis van Azure Machine Learning. A key verloopt niet, maar aml_token verloopt wel. Zie Verifiëren bij een online-eindpunt voor meer informatie over verificatie.
# 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",
)
Maak het eindpunt.
Maak het eindpunt in de werkruimte met behulp van het MLClient eerder gemaakte eindpunt. Met deze opdracht wordt het maken van het eindpunt gestart. Er wordt een bevestigingsantwoord geretourneerd terwijl het maken van het eindpunt wordt voortgezet.
ml_client.begin_create_or_update(endpoint)
Online-implementatie configureren.
Een implementatie is een set resources die vereist is voor het hosten van het model dat de werkelijke deductie uitvoert. Maak een implementatie voor ons eindpunt met behulp van de ManagedOnlineDeployment klasse.
In dit voorbeeld bevinden de bestanden die u hebt gedownload van de pagina AutoML-modellen zich in de src-map . U kunt de parameters in de code aanpassen aan uw situatie.
Parameter
Wijzig in
model:path
Het pad naar het bestand model.pkl dat u hebt gedownload.
code_configuration:code:path
De map waarin u het scorebestand hebt geplaatst.
code_configuration:scoring_script
De naam van het Python-scorebestand (scoring_file_<VERSION>.py).
environment:conda_file
Een bestands-URL voor het gedownloade conda-omgevingsbestand (conda_env_<VERSION>.yml).
Maak de implementatie.
Maak met behulp van de MLClient eerder gemaakte implementatie in de werkruimte. Met deze opdracht wordt de implementatie gemaakt. Er wordt een bevestigingsantwoord geretourneerd terwijl het maken van de implementatie wordt voortgezet.