Trénování modelů pomocí rozhraní příkazového řádku služby Azure Machine Learning, sady SDK a rozhraní REST API

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

Azure Machine Learning nabízí několik způsobů, jak odesílat trénovací úlohy ML. V tomto článku se dozvíte, jak odesílat úlohy pomocí následujících metod:

  • Rozšíření Azure CLI pro strojové učení: Rozšíření ml označované také jako CLI v2.
  • Python SDK v2 pro Azure Machine Learning
  • REST API: Rozhraní API, na které je rozhraní příkazového řádku a sada SDK postavené.

Požadavky

Pokud chcete použít informace o sadě SDK , nainstalujte sadu Azure Machine Learning SDK v2 pro Python.

Klonování úložiště příkladů

Fragmenty kódu v tomto článku jsou založené na příkladech v úložišti GitHub s příklady v úložišti Azure Machine Learning. Pokud chcete úložiště naklonovat do vývojového prostředí, použijte následující příkaz:

git clone --depth 1 https://github.com/Azure/azureml-examples

Tip

Slouží --depth 1 ke klonování pouze nejnovějšího potvrzení do úložiště, což zkracuje dobu dokončení operace.

Ukázková úloha

Příklady v tomto článku používají datovou sadu iris k trénování modelu MLFlow.

Trénovat v cloudu

Při trénování v cloudu se musíte připojit ke svému pracovnímu prostoru Azure Machine Learning a vybrat výpočetní prostředek, který se použije ke spuštění trénovací úlohy.

1. Připojení k pracovnímu prostoru

Tip

Pomocí karet níže vyberte metodu, kterou chcete použít k trénování modelu. Když vyberete kartu, automaticky se přepne všechny karty v tomto článku na stejnou kartu. Kdykoli můžete vybrat jinou kartu.

Pokud se chcete připojit k pracovnímu prostoru, potřebujete parametry identifikátoru – předplatné, skupinu prostředků a název pracovního prostoru. Tyto podrobnosti použijete v MLClient azure.ai.ml oboru názvů k získání popisovače požadovaného pracovního prostoru Azure Machine Learning. K ověření použijete výchozí ověřování Azure. V tomto příkladu najdete další podrobnosti o konfiguraci přihlašovacích údajů a připojení k pracovnímu prostoru.

#import required libraries
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

#Enter details of your Azure Machine Learning workspace
subscription_id = '<SUBSCRIPTION_ID>'
resource_group = '<RESOURCE_GROUP>'
workspace = '<AZUREML_WORKSPACE_NAME>'

#connect to the workspace
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace)

2. Vytvoření výpočetního prostředku pro trénování

Poznámka:

Pokud chcete vyzkoušet bezserverové výpočetní prostředky, přeskočte tento krok a pokračujte na 3. Odešlete trénovací úlohu.

Výpočetní cluster Azure Machine Learning je plně spravovaný výpočetní prostředek, který lze použít ke spuštění trénovací úlohy. V následujících příkladech se vytvoří výpočetní cluster s názvem cpu-compute .

from azure.ai.ml.entities import AmlCompute

# specify aml compute name.
cpu_compute_target = "cpu-cluster"

try:
    ml_client.compute.get(cpu_compute_target)
except Exception:
    print("Creating a new cpu compute target...")
    compute = AmlCompute(
        name=cpu_compute_target, size="STANDARD_D2_V2", min_instances=0, max_instances=4
    )
    ml_client.compute.begin_create_or_update(compute).result()

3. Odešlete trénovací úlohu.

Ke spuštění tohoto skriptu použijete command skript, který spustí main.py skript Pythonu umístěný ve složce ./sdk/python/jobs/single-step/lightgbm/iris/src/. Příkaz se spustí tak, že ho job odešlete jako službu Azure Machine Learning.

Poznámka:

Pokud chcete používat bezserverové výpočetní prostředky, odstraňte compute="cpu-cluster" ho v tomto kódu.

from azure.ai.ml import command, Input

# define the command
command_job = command(
    code="./src",
    command="python main.py --iris-csv ${{inputs.iris_csv}} --learning-rate ${{inputs.learning_rate}} --boosting ${{inputs.boosting}}",
    environment="AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu@latest",
    inputs={
        "iris_csv": Input(
            type="uri_file",
            path="https://azuremlexamples.blob.core.windows.net/datasets/iris.csv",
        ),
        "learning_rate": 0.9,
        "boosting": "gbdt",
    },
    compute="cpu-cluster",
)
# submit the command
returned_job = ml_client.jobs.create_or_update(command_job)
# get a URL for the status of the job
returned_job.studio_url

V předchozích příkladech jste nakonfigurovali:

  • code – cesta, kde se nachází kód ke spuštění příkazu.
  • command – příkaz, který je potřeba spustit
  • environment – prostředí potřebné ke spuštění trénovacího skriptu. V tomto příkladu používáme kurátorované nebo připravené prostředí poskytované službou Azure Machine Learning s názvem AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu. Pomocí direktivy @latest používáme nejnovější verzi tohoto prostředí. Vlastní prostředí můžete také použít zadáním základní image Dockeru a zadáním conda yaml nad ní.
  • inputs - slovník vstupů používajících páry hodnot názvů k příkazu. Klíč je název vstupu v kontextu úlohy a hodnota je vstupní hodnota. Vstupy jsou odkazovány ve command výrazu ${{inputs.<input_name>}} . Pokud chcete jako vstupy použít soubory nebo složky, můžete použít Input třídu. Další informace najdete v tématu Výrazy SDK a CLI v2.

Další informace najdete v referenční dokumentaci.

Když úlohu odešlete, vrátí se adresa URL stavu úlohy v studio Azure Machine Learning. K zobrazení průběhu úlohy použijte uživatelské rozhraní studia. Můžete také použít returned_job.status ke kontrole aktuálního stavu úlohy.

Registrace natrénovaného modelu

Následující příklady ukazují, jak zaregistrovat model v pracovním prostoru Azure Machine Learning.

Tip

Vlastnost name vrácená trénovací úlohou se používá jako součást cesty k modelu.

from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes

run_model = Model(
    path="azureml://jobs/{}/outputs/artifacts/paths/model/".format(returned_job.name),
    name="run-model-example",
    description="Model created from run.",
    type=AssetTypes.MLFLOW_MODEL
)

ml_client.models.create_or_update(run_model)

Další kroky

Teď, když máte natrénovaný model, se dozvíte , jak ho nasadit pomocí online koncového bodu.

Další příklady najdete v úložišti GitHub s příklady služby Azure Machine Learning.

Další informace o příkazech Azure CLI, třídách sady Python SDK nebo rozhraních REST API používaných v tomto článku najdete v následující referenční dokumentaci: