Práce s modely ve službě Azure Machine Learning

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

Azure Machine Learning umožňuje pracovat s různými typy modelů. V tomto článku se dozvíte o použití služby Azure Machine Learning k práci s různými typy modelů, jako jsou vlastní, MLflow a Triton. Dozvíte se také, jak zaregistrovat model z různých umístění a jak spravovat modely pomocí sady SDK služby Azure Machine Learning, uživatelského rozhraní a rozhraní příkazového řádku služby Azure Machine Learning.

Tip

Pokud máte vytvořené prostředky modelu, které používají sadu SDK nebo rozhraní příkazového řádku verze 1, můžete je stále používat se sadou SDK nebo rozhraním příkazového řádku v2. Je poskytována úplná zpětná kompatibilita. Všem modelům zaregistrovaným v sadě SDK verze 1 se přiřadí typ custom.

Požadavky

Kromě toho budete muset:

Podporované cesty

Když zadáte model, který chcete zaregistrovat, budete muset zadat path parametr, který odkazuje na data nebo umístění úlohy. Níže je tabulka, která ukazuje různá umístění dat podporovaná ve službě Azure Machine Learning a příklady pro path parametr :

Umístění Příklady
Cesta v místním počítači mlflow-model/model.pkl
Cesta k úložišti dat služby Azure Machine Learning azureml://datastores/<datastore-name>/paths/<path_on_datastore>
Cesta z úlohy Služby Azure Machine Learning azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
Cesta z úlohy MLflow runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Cesta z prostředku modelu v pracovním prostoru Azure Machine Learning azureml:<model-name>:<version>
Cesta z prostředku modelu v registru služby Azure Machine Learning azureml://registries/<registry-name>/models/<model-name>/versions/<version>

Podporované režimy

Když spustíte úlohu se vstupy a výstupy modelu, můžete určit režim – například jestli chcete, aby byl model připojený jen pro čtení nebo stažen do cílového výpočetního objektu. Následující tabulka ukazuje možné režimy pro různé kombinace typu, režimu a vstupu a výstupu:

Typ Vstup a výstup upload download ro_mount rw_mount direct
Soubor custom Vstup
custom Složky Vstup
mlflow Vstup
Soubor custom Výstup
custom Složky Výstup
mlflow Výstup

Postupujte podle pokynů v Poznámkových blocích Jupyter

Tuto ukázku můžete sledovat v Jupyter Notebook. V úložišti azureml-examples otevřete poznámkový blok model.ipynb.

Vytvoření modelu v registru modelů

Registrace modelu umožňuje ukládat a vytvářet verze modelů v cloudu Azure ve vašem pracovním prostoru. Registr modelů vám pomůže organizovat a sledovat vaše natrénované modely.

Fragmenty kódu v této části popisují následující postupy:

  • Zaregistrujte model jako prostředek ve službě Machine Learning pomocí rozhraní příkazového řádku.
  • Zaregistrujte svůj model jako prostředek ve službě Machine Learning pomocí sady SDK.
  • Zaregistrujte model jako prostředek ve službě Machine Learning pomocí uživatelského rozhraní.

Tyto fragmenty kódu používají custom a mlflow.

  • custom je typ, který odkazuje na soubor modelu nebo složku vytrénovanou pomocí vlastního standardu, který Azure Machine Learning v současné době nepodporuje.
  • mlflow je typ, který odkazuje na model vytrénovaný pomocí mlflow. Trénované modely MLflow jsou ve složce, která obsahuje soubor MLmodel , soubor modelu , soubor závislostí conda a souborrequirements.txt .

Připojení k pracovnímu prostoru

Nejprve se připojíme k pracovnímu prostoru Azure Machine Learning, na kterém budeme pracovat.

az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

Registrace modelu jako prostředku ve službě Machine Learning pomocí rozhraní příkazového řádku

Pomocí následujících karet vyberte umístění modelu.

$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
name: local-file-example
path: mlflow-model/model.pkl
description: Model created from local file.
az ml model create -f <file-name>.yml

Úplný příklad najdete v modelu YAML.

Registrace modelu jako prostředku ve službě Machine Learning pomocí sady SDK

Na následujících kartách vyberte umístění modelu.

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

file_model = Model(
    path="mlflow-model/model.pkl",
    type=AssetTypes.CUSTOM_MODEL,
    name="local-file-example",
    description="Model created from local file.",
)
ml_client.models.create_or_update(file_model)

Registrace modelu jako prostředku ve službě Machine Learning pomocí uživatelského rozhraní

Pokud chcete vytvořit model ve službě Machine Learning, otevřete v uživatelském rozhraní stránku Modely . Vyberte Zaregistrovat model a vyberte, kde se váš model nachází. Vyplňte požadovaná pole a pak vyberte Zaregistrovat.

Snímek obrazovky s uživatelským rozhraním pro registraci modelu


Správa modelů

Sada SDK a rozhraní příkazového řádku (v2) také umožňují spravovat životní cyklus prostředků modelu Azure Machine Learning.

Seznam

Vypište všechny modely v pracovním prostoru:

az ml model list

Pod daným názvem uveďte všechny verze modelu:

az ml model list --name run-model-example

Zobrazit

Získejte podrobnosti o konkrétním modelu:

az ml model show --name run-model-example --version 1

Aktualizace

Aktualizace proměnlivých vlastností konkrétního modelu:

az ml model update --name  run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"

Důležité

V případě modelu je možné aktualizovat pouze description model a tags . Všechny ostatní vlastnosti jsou neměnné; Pokud potřebujete některou z těchto vlastností změnit, měli byste vytvořit novou verzi modelu.

Archiv

Archivace modelu ho ve výchozím nastavení skryje před dotazy seznamu (az ml model list). V pracovních postupech můžete dál odkazovat na archivovaný model a používat ho. Archivovat můžete buď všechny verze modelu, nebo jenom určitou verzi.

Pokud nezadáte verzi, budou všechny verze modelu pod tímto názvem archivovány. Pokud vytvoříte novou verzi modelu v rámci archivovaného kontejneru modelu, bude tato nová verze automaticky nastavena jako archivovaná.

Archivace všech verzí modelu:

az ml model archive --name run-model-example

Archivace konkrétní verze modelu:

az ml model archive --name run-model-example --version 1

Použití modelu pro trénování

Sada SDK a rozhraní příkazového řádku (v2) také umožňují použít model v trénovací úloze jako vstup nebo výstup.

Použití modelu jako vstupu v úloze

Vytvořte soubor YAML specifikace úlohy (<file-name>.yml). V inputs části úlohy zadejte:

  1. Hodnota type; zda je model , mlflow_modelcustom_model nebo triton_model.
  2. Umístění path dat může být libovolná z cest uvedených v části Podporované cesty .
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json

# Possible Paths for models:
# AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore>
# MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
# Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
# Model Asset: azureml:<my_model>:<version>

command: |
  ls ${{inputs.my_model}}
inputs:
  my_model:
    type: mlflow_model # List of all model types here: https://learn.microsoft.com/azure/machine-learning/reference-yaml-model#yaml-syntax
    path: ../../assets/model/mlflow-model
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest

Dále spusťte v rozhraní příkazového řádku.

az ml job create -f <file-name>.yml

Úplný příklad najdete v úložišti Modelu GitHubu.

Použití modelu jako výstupu v úloze

Ve své úloze můžete pomocí výstupů zapisovat model do cloudového úložiště.

Vytvořte soubor YAML specifikace úlohy (<file-name>.yml) s oddílem outputs vyplněným typem a cestou, kam chcete zapsat data:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json

# Possible Paths for Model:
# Local path: mlflow-model/model.pkl
# AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore>
# MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
# Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
# Model Asset: azureml:<my_model>:<version>

code: src
command: >-
  python hello-model-as-output.py 
  --input_model ${{inputs.input_model}} 
  --custom_model_output ${{outputs.output_folder}}
inputs:
  input_model: 
    type: mlflow_model # mlflow_model,custom_model, triton_model
    path: ../../assets/model/mlflow-model
outputs:
  output_folder: 
    type: custom_model # mlflow_model,custom_model, triton_model
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest

Dále vytvořte úlohu pomocí rozhraní příkazového řádku:

az ml job create --file <file-name>.yml

Úplný příklad najdete v úložišti modelu GitHub.

Další kroky