Práce s registrovanými modely ve službě Azure Machine Learning
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
V tomto článku se naučíte registrovat modely ve službě Azure Machine Learning a pracovat s jejich pomocí:
- Uživatelské rozhraní studio Azure Machine Learning.
- Rozhraní příkazového řádku Služby Azure Machine Learning verze 2
- The Python Azure Machine Learning V2 SDK.
Získáte informace pro:
- V registru modelů můžete vytvářet registrované modely z místních souborů, úložišť dat nebo výstupů úloh.
- Práce s různými typy modelů, jako jsou vlastní modely, MLflow a Triton.
- Modely používejte jako vstupy nebo výstupy v trénovacích úlohách.
- Správa životního cyklu prostředků modelu
Registrace modelu
Registrace modelu umožňuje ukládat a vytvářet verze modelů ve vašem pracovním prostoru v cloudu Azure. Registr modelů vám pomůže organizovat a sledovat trénované modely. Modely můžete zaregistrovat jako prostředky ve službě Azure Machine Learning pomocí Azure CLI, sady Python SDK nebo uživatelského rozhraní nástroje Machine Learning Studio.
Podporované cesty
Pokud chcete zaregistrovat model, musíte zadat cestu, která odkazuje na data nebo umístění úlohy. Následující tabulka uvádí různá umístění dat, která Azure Machine Learning podporuje, a syntaxi parametru path
:
Umístění | Syntaxe |
---|---|
Místní počítač | <model-folder>/<model-filename> |
Úložiště dat služby Azure Machine Learning | azureml://datastores/<datastore-name>/paths/<path_on_datastore> |
Úloha Azure Machine Learning | azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> |
Úloha MLflow | runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> |
Prostředek modelu v pracovním prostoru Machine Learning | azureml:<model-name>:<version> |
Prostředek modelu v registru služby Machine Learning | azureml://registries/<registry-name>/models/<model-name>/versions/<version> |
Podporované režimy
Při použití modelů pro vstupy nebo výstupy můžete zadat jeden z následujících režimů. Můžete například určit, jestli se má model připojit jen pro čtení nebo stáhnout do cílového výpočetního objektu.
ro_mount
: Připojte data k cílovému výpočetnímu objektu jen pro čtení.rw_mount
: Připojení dat pro čtení i zápis.download
: Stáhněte si data do cílového výpočetního objektu.upload
: Nahrajte data z cílového výpočetního objektu.direct
: Předejte identifikátor URI jako řetězec.
Následující tabulka ukazuje dostupné možnosti režimu pro různé vstupy a výstupy typu modelu.
Typ | upload |
download |
ro_mount |
rw_mount |
direct |
---|---|---|---|---|---|
custom vstup souboru |
|||||
custom vstup složky |
✓ | ✓ | ✓ | ||
mlflow vstup |
✓ | ✓ | |||
custom výstup souboru |
✓ | ✓ | ✓ | ||
custom výstup složky |
✓ | ✓ | ✓ | ||
mlflow výstup |
✓ | ✓ | ✓ |
Požadavky
- Předplatné Azure s bezplatnou nebo placenou verzí služby Azure Machine Learning Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Pracovní prostor Azure Machine Learning.
Pokud chcete spustit ukázky kódu v tomto článku a pracovat s azure Machine Learning V2 CLI nebo sadou Python Azure Machine Learning V2 SDK, potřebujete také:
Nainstalovaná verze Azure CLI 2.38.0 nebo novější
Spuštěním následujícího příkazu nainstalujte rozšíření v2
ml
. Další informace najdete v tématu Instalace, nastavení a použití rozhraní příkazového řádku (v2).az extension add -n ml
Poznámka:
V2 poskytuje úplnou zpětnou kompatibilitu. Prostředky modelu můžete dál používat ze sady SDK nebo rozhraní příkazového řádku verze 1. Všechny modely zaregistrované pomocí rozhraní příkazového řádku nebo sady SDK verze 1 mají přiřazený typ custom
.
Registrace modelu pomocí uživatelského rozhraní studia
Registrace modelu pomocí uživatelského rozhraní studio Azure Machine Learning:
V pracovním prostoru v sadě Studio vyberte v levém navigačním panelu modely .
Na stránce Seznam modelů vyberte Zaregistrovat a v rozevíracím seznamu vyberte jedno z následujících umístění:
- Z místních souborů
- Z výstupu úlohy
- Z úložiště dat
- Z místních souborů (na základě architektury)
Na první obrazovce registrace modelu :
- Přejděte do místního souboru, úložiště dat nebo výstupu úlohy pro váš model.
- Vyberte typ vstupního modelu: MLflow, Triton nebo Nespecifikovaný typ.
Na obrazovce Nastavení modelu zadejte název a další volitelná nastavení registrovaného modelu a vyberte Další.
Na obrazovce Revize zkontrolujte konfiguraci a pak vyberte Zaregistrovat.
Registrace modelu pomocí Azure CLI nebo sady Python SDK
Následující fragmenty kódu pokrývají, jak zaregistrovat model jako prostředek ve službě Azure Machine Learning pomocí Azure CLI nebo sady Python SDK. Tyto fragmenty kódu používají custom
a mlflow
typy modelů.
custom
Typ odkazuje na soubor modelu nebo složku natrénovanou vlastním standardem, který Azure Machine Learning v současné době nepodporuje.mlflow
typ odkazuje na model natrénovaný pomocí MLflow. Trénované modely MLflow jsou ve složce, která obsahuje soubor MLmodel , soubor modelu , soubor závislostí conda a soubor requirements.txt .
Tip
S verzemi Pythonu následujících ukázek můžete postupovat spuštěním poznámkového bloku model.ipynb v úložišti azureml-examples .
Připojení k pracovnímu prostoru
Pracovní prostor je prostředek nejvyšší úrovně pro Azure Machine Learning, který nabízí centralizované místo, kde můžete pracovat se všemi artefakty, které vytvoříte při použití služby Azure Machine Learning. V této části se připojíte k pracovnímu prostoru Azure Machine Learning a vytvoříte zaregistrovaný model.
Přihlaste se k Azure spuštěním
az login
a podle pokynů.V následujících příkazech nahraďte
<subscription-id>
,<workspace-name>
,<resource-group>
a<location>
zástupné symboly hodnotami pro vaše prostředí.az account set --subscription <subscription-id> az configure --defaults workspace=<workspace-name> group=<resource-group> location=<location>
Vytvoření registrovaného modelu
Registrovaný model můžete vytvořit z modelu, který je:
- Nachází se v místním počítači.
- Nachází se v úložišti dat služby Azure Machine Learning.
- Výstup z úlohy Azure Machine Learning
Místní soubor nebo složka
Vytvořte název> souboru <YAML.yml. V souboru zadejte název registrovaného modelu, cestu k místnímu souboru modelu a popis. Příklad:
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json name: local-file-example path: mlflow-model/model.pkl description: Model created from local file.
Spusťte následující příkaz s použitím názvu souboru YAML:
az ml model create -f <file-name>.yml
Úplný příklad najdete v modelu YAML.
Úložiště dat
Model můžete vytvořit z cloudové cesty pomocí libovolného podporovaného formátu identifikátoru URI.
Následující příklad používá azureml
zkrácené schéma pro odkazování na cestu v úložišti dat pomocí syntaxe azureml://datastores/<datastore-name>/paths/<path_on_datastore>
.
az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt
Úplný příklad najdete v referenčních informacích k rozhraní příkazového řádku.
Výstup úlohy
Pokud data modelu pocházejí z výstupu úlohy, máte dvě možnosti pro zadání cesty modelu. Můžete použít formát URI MLflow runs:
nebo azureml://jobs
formát URI.
Poznámka:
Rezervované klíčové slovo artefaktů představuje výstup z výchozího umístění artefaktu.
Spuštění MLflow: formát identifikátoru URI
Tato možnost je optimalizovaná pro uživatele MLflow, kteří už pravděpodobně znají formát URI MLflow
runs:
. Tato možnost vytvoří model z artefaktů ve výchozím umístění artefaktů, kde se nacházejí všechny modely a artefakty protokolované MLflow. Tato možnost také vytvoří rodokmen mezi registrovaným modelem a spuštěním modelu pochází.Formát:
runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Příklad:
az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
formát identifikátoru URI azureml://jobs
Možnost
azureml://jobs
referenčního identifikátoru URI umožňuje zaregistrovat model z artefaktů v libovolné z výstupních cest úlohy. Tento formát odpovídá formátu referenčního identifikátoruazureml://datastores
URI a podporuje také odkazování na artefakty z pojmenovaných výstupů jiných než výchozího umístění artefaktů.Pokud jste model v trénovacím skriptu neregistrovali přímo pomocí MLflow, můžete pomocí této možnosti vytvořit rodokmen mezi registrovaným modelem a úlohou, ze které byl trénován.
Formát:
azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>
- Výchozí umístění artefaktu:
azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/
. Toto umístění je ekvivalentní MLflowruns:/<run-id>/<model>
. - Pojmenovaná výstupní složka:
azureml://jobs/<run-id>/outputs/<named-output-folder>
- Konkrétní soubor v pojmenované výstupní složce:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
- Konkrétní cesta ke složce v pojmenované výstupní složce:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>
Příklad:
Uložte model z pojmenované výstupní složky:
az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
Úplný příklad najdete v referenčních informacích k rozhraní příkazového řádku.
- Výchozí umístění artefaktu:
Použití modelů pro trénování
Sada Azure CLI v2 a Python SDK také umožňují používat modely jako vstupy nebo výstupy v trénovacích úlohách.
Použití modelu jako vstupu v trénovací úloze
Vytvořte soubor YAML specifikace úlohy, <název> souboru.yml.
inputs
V části úlohy zadejte:- Model
type
, který může býtmlflow_model
,custom_model
nebotriton_model
. - Umístění
path
modelu, které může být libovolná z cest uvedených v komentáři v následujícím příkladu.
$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.5/labels/latest
- Model
Spusťte následující příkaz a nahraďte název souboru YAML.
az ml job create -f <file-name>.yml
Zápis modelu jako výstupu pro úlohu
Vaše úloha může napsat model do cloudového úložiště pomocí výstupů.
Vytvořte název> souboru <YAML specifikace úlohy.yml. Naplňte
outputs
oddíl typem a cestou výstupního modelu.$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.5/labels/latest
Vytvoření úlohy pomocí rozhraní příkazového řádku:
az ml job create --file <file-name>.yml
Správa modelů
Azure CLI a Python SDK také umožňují spravovat životní cyklus prostředků modelu Azure Machine Learning.
List
Zobrazení seznamu všech modelů v pracovním prostoru:
az ml model list
Vypíše všechny verze modelu pod daným názvem:
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
Aktualizovat
Aktualizujte proměnlivé vlastnosti konkrétního modelu:
Důležité
Pouze pro modely description
a tags
je možné je aktualizovat. Všechny ostatní vlastnosti jsou neměnné a pokud je potřebujete změnit, měli byste vytvořit novou verzi modelu.
az ml model update --name run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"
Archiv
Archivace modelu ho ve výchozím nastavení skryje před dotazy az ml model list
seznamu. V pracovních postupech můžete dál odkazovat na archivovaný model a používat ho.
Můžete archivovat všechny verze nebo jenom konkrétní verze modelu. Pokud nezadáte verzi, všechny verze modelu se archivují. Pokud vytvoříte novou verzi modelu v kontejneru archivovaného modelu, nová verze se také automaticky nastaví jako archivovaná.
Archivujte všechny verze modelu:
az ml model archive --name run-model-example
Archivace konkrétní verze modelu:
az ml model archive --name run-model-example --version 1