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
- Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte bezplatnou nebo placenou verzi služby Azure Machine Learning.
- Pracovní prostor služby Azure Machine Learning.
- Sada Azure Machine Learning SDK v2 pro Python.
- Azure Machine Learning CLI v2.
Kromě toho budete muset:
- Nainstalujte Azure CLI a rozšíření ml do Azure CLI. Další informace najdete v tématu Instalace, nastavení a používání rozhraní příkazového řádku (v2).
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.
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:
- Hodnota
type
; zda je model ,mlflow_model
custom_model
nebotriton_model
. - 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.