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
- En Azure-prenumeration med en kostnadsfri eller betald version av Azure Mašinsko učenje. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- En Azure Mašinsko učenje-arbetsyta.
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å:
Azure CLI version 2.38.0 eller senare installerat.
V2 för
ml
tillägget som installeras genom att köra följande kommando. Mer information finns i Installera, konfigurera och använda CLI (v2).az extension add -n ml
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:
I din arbetsyta i studion väljer du Modeller i det vänstra navigeringsfältet.
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)
På den första skärmen Registrera modell :
- Navigera till den lokala filen, datalagringen eller jobbutdata för din modell.
- Välj typ av indatamodell: MLflow, Triton eller Ospecificerad typ.
På skärmen Modellinställningar anger du ett namn och andra valfria inställningar för din registrerade modell och väljer Nästa.
På skärmen Granska granskar du konfigurationen och väljer sedan Registrera.
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.
custom
type 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.ipynb på lagringsplatsen 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.
Logga in på Azure genom att köra
az login
och följa anvisningarna.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
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.
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
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 medazureml://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 MLflowruns:/<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/
- Standardartefaktplats:
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
Skapa en YAML-fil för jobbspecifikation, <filnamn>.yml. I avsnittet
inputs
i jobbet anger du:- Modellen
type
, som kan varamlflow_model
,custom_model
ellertriton_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
- Modellen
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.
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
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