Sdílet prostřednictvím


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é:

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:

  1. V pracovním prostoru v sadě Studio vyberte v levém navigačním panelu modely .

  2. 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)
  3. Na první obrazovce registrace modelu :

    1. Přejděte do místního souboru, úložiště dat nebo výstupu úlohy pro váš model.
    2. Vyberte typ vstupního modelu: MLflow, Triton nebo Nespecifikovaný typ.
  4. Na obrazovce Nastavení modelu zadejte název a další volitelná nastavení registrovaného modelu a vyberte Další.

  5. Na obrazovce Revize zkontrolujte konfiguraci a pak vyberte Zaregistrovat.

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

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.

  1. Přihlaste se k Azure spuštěním az login a podle pokynů.

  2. 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

  1. 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.
    
  2. 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átoru azureml://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í MLflow runs:/<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.


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

  1. Vytvořte soubor YAML specifikace úlohy, <název> souboru.yml. inputs V části úlohy zadejte:

    • Model type, který může být mlflow_model, custom_modelnebo triton_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.0/labels/latest
    
  2. Spusťte následující příkaz a nahraďte název souboru YAML.

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

Kompletní příklad najdete v modelu úložiště GitHub.

Zápis modelu jako výstupu pro úlohu

Vaše úloha může napsat model do cloudového úložiště pomocí výstupů.

  1. 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.0/labels/latest
    
  2. Vytvoření úlohy pomocí rozhraní příkazového řádku:

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

Kompletní příklad najdete v modelu úložiště GitHub.

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