Arbeta med registrerade modeller i Azure Mašinsko učenje

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

I den här artikeln lär du dig att registrera och arbeta med modeller i Azure Mašinsko učenje med hjälp av:

  • Användargränssnittet för Azure Mašinsko učenje Studio.
  • Azure Mašinsko učenje V2 CLI.
  • Python Azure Mašinsko učenje V2 SDK.

Du lär dig att:

  • Skapa registrerade modeller i modellregistret från lokala filer, datalager eller jobbutdata.
  • Arbeta med olika typer av modeller, till exempel anpassade modeller, MLflow och Triton.
  • Använd modeller som indata eller utdata i träningsjobb.
  • Hantera livscykeln för modelltillgångar.

Modellregistrering

Med modellregistrering kan du lagra och versionshantera dina modeller på din arbetsyta i Azure-molnet. Modellregistret hjälper dig att organisera och hålla reda på dina tränade modeller. Du kan registrera modeller som tillgångar i Azure Mašinsko učenje med hjälp av Azure CLI, Python SDK eller Mašinsko učenje studio-användargränssnittet.

Sökvägar som stöds

Om du vill registrera en modell måste du ange en sökväg som pekar på data eller jobbplatsen. I följande tabell visas de olika dataplatser som Azure Mašinsko učenje stöder och syntaxen för parameternpath:

Plats Syntax
Lokal dator <model-folder>/<model-filename>
Azure Mašinsko učenje datalager azureml://datastores/<datastore-name>/paths/<path_on_datastore>
Azure Mašinsko učenje-jobb azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
MLflow-jobb runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Modelltillgång i en Mašinsko učenje arbetsyta azureml:<model-name>:<version>
Modelltillgång i ett Mašinsko učenje-register azureml://registries/<registry-name>/models/<model-name>/versions/<version>

Lägen som stöds

När du använder modeller för indata eller utdata kan du ange något av följande lägen. Du kan till exempel ange om modellen ska vara skrivskyddad eller laddas ned till beräkningsmålet.

  • ro_mount: Montera data till beräkningsmålet som skrivskyddade.
  • rw_mount: Läs- och skrivmontering av data.
  • download: Ladda ned data till beräkningsmålet.
  • upload: Ladda upp data från beräkningsmålet.
  • direct: Skicka in URI:n som en sträng.

I följande tabell visas tillgängliga lägesalternativ för olika indata och utdata av modelltyp.

Typ upload download ro_mount rw_mount direct
custom filindata
custom mappindata
mlflow inmatning
custom filutdata
custom mapputdata
mlflow utdata

Förutsättningar

Om du vill köra kodexemplen i den här artikeln och arbeta med Azure Mašinsko učenje V2 CLI eller Python Azure Mašinsko učenje V2 SDK behöver du också:

Kommentar

V2 ger fullständig bakåtkompatibilitet. Du kan fortfarande använda modelltillgångar från v1 SDK eller CLI. Alla modeller som registrerats med v1 CLI eller SDK tilldelas typen custom.

Registrera en modell med hjälp av studiogränssnittet

Så här registrerar du en modell med hjälp av Användargränssnittet för Azure Mašinsko učenje Studio:

  1. I din arbetsyta i studion väljer du Modeller i det vänstra navigeringsfältet.

  2. På sidan Modelllista väljer du Registrera och väljer någon av följande platser i listrutan:

    • Från lokala filer
    • Från ett jobbutdata
    • Från datalager
    • Från lokala filer (baserat på ramverk)
  3. På den första skärmen Registrera modell :

    1. Navigera till den lokala filen, datalagringen eller jobbutdata för din modell.
    2. Välj typ av indatamodell: MLflow, Triton eller Ospecificerad typ.
  4. På skärmen Modellinställningar anger du ett namn och andra valfria inställningar för din registrerade modell och väljer Nästa.

  5. På skärmen Granska granskar du konfigurationen och väljer sedan Registrera.

Skärmbild av användargränssnittet för att registrera en modell.

Registrera en modell med hjälp av Azure CLI eller Python SDK

Följande kodfragment beskriver hur du registrerar en modell som en tillgång i Azure Mašinsko učenje med hjälp av Azure CLI eller Python SDK. Dessa kodfragment använder custom och mlflow modelltyper.

  • customtype refererar till en modellfil eller mapp som tränats med en anpassad standard som Azure Mašinsko učenje för närvarande inte stöder.
  • mlflow type refererar till en modell som tränats med MLflow. MLflow-tränade modeller finns i en mapp som innehåller MLmodel-filen, modellfilen, conda-beroendefilen och filen requirements.txt.

Dricks

Du kan följa med i Python-versionerna av följande exempel genom att köra notebook-filen model.ipynblagringsplatsen azureml-examples .

Anslut till din arbetsyta

Arbetsytan är resursen på den översta nivån i Azure Machine Learning, och är en central plats där du kan arbeta med alla artefakter du skapar när du använder Azure Machine Learning. I det här avsnittet ansluter du till din Azure Mašinsko učenje-arbetsyta för att skapa den registrerade modellen.

  1. Logga in på Azure genom att köra az login och följa anvisningarna.

  2. I följande kommandon ersätter <subscription-id>du , <workspace-name>, <resource-group>och <location> platshållare med värdena för din miljö.

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

Skapa den registrerade modellen

Du kan skapa en registrerad modell från en modell som är:

  • Finns på din lokala dator.
  • Finns i ett Azure Mašinsko učenje-datalager.
  • Utdata från ett Azure Mašinsko učenje-jobb.

Lokal fil eller mapp

  1. Skapa ett YAML-filnamn<>.yml. I filen anger du ett namn för din registrerade modell, en sökväg till den lokala modellfilen och en beskrivning. Till exempel:

    $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. Kör följande kommando med namnet på YAML-filen:

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

Ett fullständigt exempel finns i modellen YAML.

Datalager

Du kan skapa en modell från en molnsökväg med något av de URI-format som stöds.

I följande exempel används shorthand-schemat azureml för att peka på en sökväg i datalagringen med hjälp av syntaxen 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

Ett fullständigt exempel finns i CLI-referensen.

Jobbutdata

Om dina modelldata kommer från ett jobbutdata har du två alternativ för att ange modellsökvägen. Du kan använda MLflow-URI-formatet runs: eller azureml://jobs URI-formatet.

Kommentar

Det reserverade nyckelordet artefakter representerar utdata från standardplatsen för artefakt.

  • MLflow-körningar: URI-format

    Det här alternativet är optimerat för MLflow-användare, som förmodligen redan är bekanta med MLflow-URI-formatet runs: . Det här alternativet skapar en modell från artefakter på standardplatsen för artefakt, där alla MLflow-loggade modeller och artefakter finns. Det här alternativet upprättar också en härkomst mellan en registrerad modell och körningen som modellen kom från.

    Format: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>

    Exempel:

    az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
    

  • azureml://jobs URI-format

    Med azureml://jobs referens-URI-alternativet kan du registrera en modell från artefakter i någon av jobbets utdatasökvägar. Det här formatet överensstämmer med azureml://datastores referens-URI-formatet och stöder även referenser till artefakter från namngivna utdata som inte är standardplatsen för artefakt.

    Om du inte registrerade din modell direkt i träningsskriptet med hjälp av MLflow kan du använda det här alternativet för att upprätta en härkomst mellan en registrerad modell och det jobb som den tränades från.

    Format: azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>

    • Standardartefaktplats: azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/. Den här platsen motsvarar MLflow runs:/<run-id>/<model>.
    • Namngiven utdatamapp: azureml://jobs/<run-id>/outputs/<named-output-folder>
    • Specifik fil i den namngivna utdatamappen: azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
    • Specifik mappsökväg i den namngivna utdatamappen: azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>

    Exempel:

    Spara en modell från en namngiven utdatamapp:

    az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
    

    Ett fullständigt exempel finns i CLI-referensen.


Använda modeller för träning

Med v2 Azure CLI och Python SDK kan du också använda modeller som indata eller utdata i träningsjobb.

Använda en modell som indata i ett träningsjobb

  1. Skapa en YAML-fil för jobbspecifikation, <filnamn>.yml. I avsnittet inputs i jobbet anger du:

    • Modellen type, som kan vara mlflow_model, custom_modeleller triton_model.
    • Var path din modell finns, vilket kan vara någon av sökvägarna som anges i kommentaren i följande exempel.
    $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://video2.skills-academy.com/azure/machine-learning/reference-yaml-model#yaml-syntax
        path: ../../assets/model/mlflow-model
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    
  2. Kör följande kommando och ersätt ditt YAML-filnamn.

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

Ett fullständigt exempel finns i GitHub-modellens lagringsplats.

Skriva en modell som utdata för ett jobb

Ditt jobb kan skriva en modell till din molnbaserade lagring med hjälp av utdata.

  1. Skapa ett YAML-filnamn ><för jobbspecifikation.yml. Fyll i avsnittet outputs med utdatamodelltypen och sökvägen.

    $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
    
  2. Skapa ett jobb med hjälp av CLI:

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

Ett fullständigt exempel finns i GitHub-modellens lagringsplats.

Hantera modeller

Med Azure CLI och Python SDK kan du också hantera livscykeln för dina Azure Mašinsko učenje-modelltillgångar.

List

Visa en lista över alla modeller på din arbetsyta:

az ml model list

Visa en lista över alla modellversioner under ett givet namn:

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

Visa

Hämta information om en specifik modell:

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

Uppdatera

Uppdatera föränderliga egenskaper för en specifik modell:

Viktigt!

Endast modeller description och tags kan uppdateras. Alla andra egenskaper är oföränderliga, och om du behöver ändra dem bör du skapa en ny version av modellen.

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

Arkiv

Om du arkiverar en modell döljs den från listfrågor som az ml model list standard. Du kan fortsätta att referera till och använda en arkiverad modell i dina arbetsflöden.

Du kan arkivera alla versioner eller endast specifika versioner av en modell. Om du inte anger någon version arkiveras alla versioner av modellen. Om du skapar en ny modellversion under en arkiverad modellcontainer anges även den nya versionen automatiskt som arkiverad.

Arkivera alla versioner av en modell:

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

Arkivera en specifik modellversion:

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