Slouží --depth 1 ke klonování pouze nejnovějšího potvrzení do úložiště, což zkracuje dobu dokončení operace.
Příklad úlohy
Příklady v tomto článku používají datovou sadu iris flower k trénování modelu MLFlow.
Trénujte v cloudu
Při trénování v cloudu se musíte připojit k 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. Výběrem karty automaticky přepnete 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. Pomocí těchto podrobností v MLClientazure.ai.ml oboru názvů získáte popisovač požadovaného pracovního prostoru Služby Azure Machine Learning. K ověření použijete výchozí ověřování Azure. Další podrobnosti o konfiguraci přihlašovacích údajů a připojení k pracovnímu prostoru najdete v tomto příkladu .
#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)
Při použití Azure CLI potřebujete parametry identifikátoru – předplatné, skupinu prostředků a název pracovního prostoru. I když můžete tyto parametry zadat pro každý příkaz, můžete také nastavit výchozí hodnoty, které se použijí pro všechny příkazy. K nastavení výchozích hodnot použijte následující příkazy. Nahraďte <subscription ID>, <Azure Machine Learning workspace name>a <resource group> hodnotami pro vaši konfiguraci:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Příklady rozhraní REST API v tomto článku používají $SUBSCRIPTION_IDzástupné symboly , $RESOURCE_GROUP$LOCATION, a $WORKSPACE . Zástupné symboly nahraďte vlastními hodnotami následujícím způsobem:
$SUBSCRIPTION_ID: ID vašeho předplatného Azure.
$RESOURCE_GROUP: Skupina prostředků Azure, která obsahuje váš pracovní prostor.
$LOCATION: Oblast Azure, ve které se nachází váš pracovní prostor.
$WORKSPACE: Název pracovního prostoru služby Azure Machine Learning.
$COMPUTE_NAME: Název vašeho výpočetního clusteru Azure Machine Learning.
Rest pro správu vyžaduje ověřovací token instančního objektu. Token můžete načíst pomocí následujícího příkazu. Token je uložený v $TOKEN proměnné prostředí:
Poskytovatel služeb používá api-version argument k zajištění kompatibility. Argument api-version se u jednotlivých služeb liší. Nastavte verzi rozhraní API jako proměnnou pro budoucí verze:
API_VERSION="2022-05-01"
Při trénování pomocí rozhraní REST API se musí data a trénovací skripty nahrát do účtu úložiště, ke kterému má pracovní prostor přístup. Následující příklad získá informace o úložišti pro váš pracovní prostor a uloží je do proměnných, abychom je mohli později použít:
Výpočetní cluster Azure Machine Learning je plně spravovaný výpočetní prostředek, který je možné 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 .
Ke spuštění tohoto skriptu použijete command skript, který spustí main.py skript Pythonu umístěný v umístění ./sdk/python/jobs/single-step/lightgbm/iris/src/. Příkaz se spustí tak, že ho job odešlete do Azure ML.
# 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
Ve výše uvedených příkladech jste nakonfigurovali:
code – cesta, kde se nachází kód pro 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. Používáme nejnovější verzi tohoto prostředí pomocí direktivy @latest . Můžete také použít vlastní prostředí tak, že zadáte základní image Dockeru a nad ní zadáte conda yaml.
inputs – slovník vstupů používajících páry hodnot názvů k příkazu. Klíč je název pro vstup v kontextu úlohy a hodnota je vstupní hodnota. Na vstupy se odkazuje pomocí command výrazu ${{inputs.<input_name>}} . Pokud chcete jako vstupy použít soubory nebo složky, můžete použít Input třídu .
Když úlohu odešlete, vrátí se do stavu úlohy v studio Azure Machine Learning adresa URL. 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.
Příkaz az ml job create použitý v tomto příkladu vyžaduje soubor definice úlohy YAML. Obsah souboru použitého v tomto příkladu:
code – cesta, kde se nachází kód ke spuštění příkazu
command – příkaz, který je potřeba spustit
inputs – slovník vstupů používajících páry name value k příkazu. Klíč je název vstupu v kontextu úlohy a hodnota je vstupní hodnota. Na vstupy se odkazuje pomocí command výrazu ${{inputs.<input_name>}} .
environment – prostředí potřebné ke spuštění trénovacího skriptu. V tomto příkladu používáme kurátorované nebo předem připravené prostředí poskytované službou Azure Machine Learning s názvem AzureML-sklearn-0.24-ubuntu18.04-py37-cpu. Používáme nejnovější verzi tohoto prostředí pomocí direktivy .@latest Můžete také použít vlastní prostředí tak, že zadáte základní image Dockeru a nad ní zadáte conda yaml.
K odeslání úlohy použijte následující příkaz. ID spuštění (název) trénovací úlohy je uložené v $run_id proměnné :
run_id=$(az ml job create -f jobs/single-step/scikit-learn/iris/job.yml --query name -o tsv)
Uložené ID spuštění můžete použít k vrácení informací o úloze. Parametr --web otevře studio Azure Machine Learning webové uživatelské rozhraní, kde můžete přejít k podrobnostem úlohy:
az ml job show -n $run_id --web
V rámci odesílání úlohy se trénovací skripty a data musí nahrát do cloudového úložiště, ke kterému má váš pracovní prostor Azure Machine Learning přístup.
K nahrání trénovacího skriptu použijte následující příkaz Azure CLI. Příkaz určuje adresář , který obsahuje soubory potřebné pro trénování, nikoli jednotlivé soubory. Pokud místo toho chcete k nahrání dat použít REST, projděte si referenční informace k put blob :
az storage blob upload-batch -d $AZUREML_DEFAULT_CONTAINER/testjob -s cli/jobs/single-step/scikit-learn/iris/src/ --account-name $AZURE_STORAGE_ACCOUNT
Vytvořte odkaz na trénovací data s verzí. V tomto příkladu jsou data již v cloudu a nachází se na adrese https://azuremlexamples.blob.core.windows.net/datasets/iris.csv. Další informace o odkazování na data najdete v tématu Data ve službě Azure Machine Learning:
Zaregistrujte odkaz na trénovací skript s verzí pro použití s úlohou. V tomto příkladu je umístěním skriptu výchozí účet úložiště a kontejner, do které jste nahráli v kroku 1. Vrátí se ID trénovacího kódu se správou verzí a uloží se $TRAIN_CODE do proměnné :
Vytvořte prostředí, které cluster použije ke spuštění trénovacího skriptu. V tomto příkladu používáme kurátorované nebo předem připravené prostředí poskytované službou Azure Machine Learning s názvem AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu. Následující příkaz načte seznam verzí prostředí, přičemž nejnovější verze je v horní části kolekce. jq slouží k načtení ID nejnovější verze ([0]), která se pak uloží do $ENVIRONMENT proměnné .
Nakonec úlohu odešlete. Následující příklad ukazuje, jak odeslat úlohu, odkazovat na ID kódu trénování, ID prostředí, adresu URL pro vstupní data a ID výpočetního clusteru. Umístění výstupu úlohy se uloží do $JOB_OUTPUT proměnné :
Tip
Název úlohy musí být jedinečný. V tomto příkladu uuidgen slouží k vygenerování jedinečné hodnoty názvu.
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)
Tip
Název (uložený v $run_id proměnné) se používá jako součást cesty k modelu.
az ml model create -n sklearn-iris-example -v 1 -p runs:/$run_id/model --type mlflow_model
Tip
Název (uložený v $run_id proměnné) se používá jako součást cesty k modelu.
Další informace o příkazech Azure CLI, třídách sady Python SDK nebo rozhraníCH REST API použitých v tomto článku najdete v následující referenční dokumentaci: