Modellek használata az Azure Machine Learningben

A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Az Azure Machine Learning lehetővé teszi, hogy különböző típusú modellekkel dolgozzon. Ebből a cikkből megtudhatja, hogyan használhatja az Azure Machine Learninget különböző modelltípusokkal, például egyéni, MLflow és Triton használatával. Azt is megtudhatja, hogyan regisztrálhat modelleket különböző helyekről, és hogyan használhatja az Azure Machine Learning SDK-t, a felhasználói felületet (UI) és az Azure Machine Learning CLI-t a modellek kezeléséhez.

Tipp

Ha olyan modelleszközöket hozott létre, amelyek az SDK/CLI v1-et használják, akkor is használhatja azokat az SDK/CLI v2 használatával. A teljes visszamenőleges kompatibilitás biztosított. A V1 SDK-val regisztrált összes modellhez a következő típus customvan hozzárendelve: .

Előfeltételek

Emellett a következőket kell elvégeznie:

Támogatott elérési utak

Amikor megad egy regisztrálni kívánt modellt, meg kell adnia egy paramétert path , amely az adatokra vagy a feladat helyére mutat. Az alábbi táblázat az Azure Machine Learningben támogatott különböző adathelyeket és a paraméterre vonatkozó path példákat mutatja be:

Hely Példák
Elérési út a helyi számítógépen mlflow-model/model.pkl
Egy Azure Machine Learning-adattár elérési útja azureml://datastores/<datastore-name>/paths/<path_on_datastore>
Egy Azure Machine Learning-feladat útvonala azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
Egy MLflow-feladat elérési útja runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Egy modelleszköz elérési útja az Azure Machine Learning-munkaterületen azureml:<model-name>:<version>
Egy modelleszköz elérési útja az Azure Machine Learning Registryben azureml://registries/<registry-name>/models/<model-name>/versions/<version>

Támogatott módok

Amikor modellbemenetekkel/kimenetekkel futtat egy feladatot, megadhatja a módot – például azt, hogy a modellt írásvédettként szeretné-e csatlakoztatni vagy letölteni a számítási célhoz. Az alábbi táblázat a különböző típus-/mód-/bemeneti/kimeneti kombinációk lehetséges módjait mutatja be:

Típus Bemenet/kimenet upload download ro_mount rw_mount direct
custom Fájl Bevitel
custom Mappa Bevitel
mlflow Bevitel
custom Fájl Kimenet
custom Mappa Kimenet
mlflow Kimenet

Kövesse a lépéseket a Jupyter Notebooksban

Ezt a mintát egy Jupyter Notebook követheti. Az azureml-examples adattárban nyissa meg a model.ipynb jegyzetfüzetet.

Modell létrehozása a modellregisztrációs adatbázisban

A modellregisztráció lehetővé teszi a modellek tárolását és verziószámozását az Azure-felhőben, a munkaterületen. A modellregisztrációs adatbázis segít a betanított modellek rendszerezésében és nyomon követésében.

Az ebben a szakaszban található kódrészletek a következőket ismertetik:

  • A modell regisztrálása eszközként a Machine Learningben a parancssori felület használatával.
  • Regisztrálja a modellt eszközként a Machine Learningben az SDK használatával.
  • Regisztrálja a modellt eszközként a Machine Learningben a felhasználói felület használatával.

Ezek a kódrészletek a és mlflowa elemet használjákcustom.

  • custom Olyan típus, amely az Azure Machine Learning által jelenleg nem támogatott egyéni szabványsal betanított modellfájlra vagy mappára hivatkozik.
  • mlflow egy olyan típus, amely egy mlflow-val betanított modellre hivatkozik. Az MLflow betanított modelljei egy olyan mappában találhatók, amely tartalmazza az MLmodel-fájlt , a modellfájlt , a conda dependencies fájlt és a requirements.txt fájlt.

Csatlakozás a munkaterülethez

Először csatlakozzunk az Azure Machine Learning-munkaterülethez, ahol dolgozni fogunk.

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

Modell regisztrálása eszközként a Machine Learningben a parancssori felület használatával

Az alábbi fülek segítségével kiválaszthatja, hogy hol található a modell.

$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

A teljes példáért tekintse meg a YAML-modellt.

Modell regisztrálása eszközként a Machine Learningben az SDK használatával

Az alábbi fülek segítségével kiválaszthatja, hogy hol található a modell.

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)

A modell regisztrálása eszközként a Machine Learningben a felhasználói felület használatával

Ha modellt szeretne létrehozni a Machine Learningben, nyissa meg a Modellek lapot a felhasználói felületen. Válassza a Modell regisztrálása lehetőséget, és válassza ki a modell helyét. Töltse ki a szükséges mezőket, majd válassza a Regisztráció lehetőséget.

Képernyőkép a modell regisztrálásához szükséges felhasználói felületről.


Modellek kezelése

Az SDK és a parancssori felület (v2) lehetővé teszi az Azure Machine Learning-modell eszközeinek életciklusának kezelését is.

Lista

A munkaterület összes modelljének listázása:

az ml model list

Listázd az összes modellverziót egy adott név alatt:

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

Megjelenítés

Egy adott modell részleteinek lekérése:

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

Frissítés

Egy adott modell módosítható tulajdonságainak frissítése:

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

Fontos

Modell esetén csak description és tags frissíthető. Minden más tulajdonság nem módosítható; Ha ezen tulajdonságok bármelyikét módosítania kell, akkor létre kell hoznia a modell új verzióját.

Archívum

A modell archiválása alapértelmezés szerint elrejti azt a lista lekérdezéseiből (az ml model list). Továbbra is hivatkozhat és használhat archivált modellt a munkafolyamatokban. Archiválhatja a modell összes verzióját, vagy csak egy adott verziót.

Ha nem ad meg verziót, a megadott név alatt lévő modell összes verziója archiválva lesz. Ha egy archivált modelltárolóban hoz létre új modellverziót, az új verzió is automatikusan archiváltként lesz beállítva.

A modell összes verziójának archiválása:

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

Adott modellverzió archiválása:

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

Modell használata betanításhoz

Az SDK és a parancssori felület (v2) lehetővé teszi, hogy egy modellt bemenetként vagy kimenetként használjon egy betanítási feladatban.

Modell használata bemenetként egy feladatban

Hozzon létre egy feladatspecifikációs YAML-fájlt (<file-name>.yml). Adja meg a inputs feladatot a következő szakaszban:

  1. A type, hogy a modell egy mlflow_modelvagycustom_modeltriton_model.
  2. Az path adatok helye; a Támogatott útvonalak szakaszban ismertetett elérési utak bármelyike lehet.
$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

Ezután futtassa a parancsot a parancssori felületen

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

A teljes példáért tekintse meg a GitHub-adattár modelljét.

Modell használata kimenetként egy feladatban

A feladatban kimenetek használatával írhat modellt a felhőalapú tárolóba.

Hozzon létre egy feladatspecifikációs YAML-fájlt (<file-name>.yml), amelynek a outputs szakasza a típusával és elérési útjával van feltöltve, ahová az adatokat be szeretné írni:

$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

Ezután hozzon létre egy feladatot a parancssori felület használatával:

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

A teljes példáért tekintse meg a GitHub-adattár modelljét.

Következő lépések