Megosztás a következőn keresztül:


Regisztrált modellek használata az Azure Machine Learningben

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Ebben a cikkben megtanulhatja, hogyan regisztrálhat és használhat modelleket az Azure Machine Learningben a következőkkel:

  • Az Azure Machine Learning Studio felhasználói felülete.
  • Az Azure Machine Learning V2 parancssori felülete.
  • A Python Azure Machine Learning V2 SDK.

Az alábbiak végrehajtásának módját ismerheti meg:

  • Hozzon létre regisztrált modelleket a modellregisztrációs adatbázisban helyi fájlokból, adattárakból vagy feladatkimenetekből.
  • Különböző típusú modellekkel dolgozhat, például egyéni, MLflow és Triton típusú modellekkel.
  • Modellek használata bemenetként vagy kimenetként a betanítási feladatokban.
  • A modellegységek életciklusának kezelése.

Modellregisztráció

A modellregisztráció lehetővé teszi a modellek tárolását és verziószámozását a munkaterületen az Azure-felhőben. A modellregisztrációs adatbázis segít a betanított modellek rendszerezésében és nyomon követésében. A modelleket az Azure CLI, a Python SDK vagy a Machine Learning Studio felhasználói felületén regisztrálhatja eszközként az Azure Machine Learningben.

Támogatott elérési utak

A modell regisztrálásához meg kell adnia egy elérési utat, amely az adatokra vagy a feladat helyére mutat. Az alábbi táblázat az Azure Machine Learning által támogatott különböző adathelyeket és a paraméter szintaxisát path mutatja be:

Hely Syntax
Helyi számítógép <model-folder>/<model-filename>
Azure Machine Learning-adattár azureml://datastores/<datastore-name>/paths/<path_on_datastore>
Azure Machine Learning-feladat azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
MLflow-feladat runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Modelleszköz egy Machine Learning-munkaterületen azureml:<model-name>:<version>
Modelleszköz egy Machine Learning-beállításjegyzékben azureml://registries/<registry-name>/models/<model-name>/versions/<version>

Támogatott módok

Ha modelleket használ bemenetekhez vagy kimenetekhez, az alábbi módok egyikét adhatja meg. Megadhatja például, hogy a modell írásvédett legyen-e a számítási célhoz csatlakoztatva vagy letöltve.

  • ro_mount: Az adatok csatlakoztatása a számítási célhoz írásvédettként.
  • rw_mount: Írás-olvasás csatlakoztatása az adatokhoz.
  • download: Töltse le az adatokat a számítási célba.
  • upload: Töltse fel az adatokat a számítási célból.
  • direct: Adja meg az URI-t sztringként.

Az alábbi táblázat a különböző modelltípusú bemenetek és kimenetek elérhető módbeállításait mutatja be.

Típus upload download ro_mount rw_mount direct
custom fájlbemenet
custom mappabemenet
mlflow Bemenet
custom fájlkimenet
custom mappakimenet
mlflow hozam

Előfeltételek

A jelen cikkben szereplő kódminták futtatásához és az Azure Machine Learning V2 CLI-vel vagy a Python Azure Machine Learning V2 SDK-val való munkához a következőkre is szüksége van:

  • Az Azure CLI 2.38.0-s vagy újabb verziója telepítve van.

  • A bővítmény V2-jének ml telepítése az alábbi parancs futtatásával történik. További információ: A parancssori felület (v2) telepítése, beállítása és használata.

    az extension add -n ml
    

Feljegyzés

A V2 teljes visszamenőleges kompatibilitást biztosít. A modellegységeket továbbra is használhatja az 1-s verziós SDK-ból vagy a parancssori felületről. A v1 parancssori felülettel vagy SDK-val regisztrált összes modellhez hozzá van rendelve a típus custom.

Modell regisztrálása a studio felhasználói felületével

Modell regisztrálása az Azure Machine Learning Studio felhasználói felületén:

  1. A stúdióban lévő munkaterületen válassza a Modellek lehetőséget a bal oldali navigációs sávon.

  2. A Modelllista lapon válassza a Regisztráció lehetőséget, és válasszon az alábbi helyek közül a legördülő listából:

    • Helyi fájlokból
    • Feladat kimenetéből
    • Adattárból
    • Helyi fájlokból (keretrendszer alapján)
  3. Az első Modell regisztrálása képernyőn:

    1. Keresse meg a modell helyi fájlját, adattárát vagy feladatkimenetét.
    2. Válassza ki a bemeneti modell típusát: MLflow, Triton vagy Unspecified type.
  4. A Modell beállításai képernyőn adja meg a regisztrált modell nevét és egyéb opcionális beállításait, és válassza a Tovább gombot.

  5. A Véleményezés képernyőn tekintse át a konfigurációt, 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.

Modell regisztrálása az Azure CLI vagy a Python SDK használatával

Az alábbi kódrészletek azt ismertetik, hogyan regisztrálhat egy modellt eszközként az Azure Machine Learningben az Azure CLI vagy a Python SDK használatával. Ezek a kódrészletek használnak custom és mlflow modelltípusokat.

  • custom A típus egy olyan egyéni szabványsal betanított modellfájlra vagy mappára utal, amelyet az Azure Machine Learning jelenleg nem támogat.
  • mlflowA típus egy MLflow-jal betanított modellre utal. Az MLflow betanított modelljei egy olyan mappában találhatók, amely tartalmazza az MLmodel-fájlt , a modellfájlt , a conda függőségi fájlt és a requirements.txt fájlt.

Tipp.

A következő minták Python-verzióival együtt a model.ipynb notebook azureml-examples adattárban való futtatásával is követheti.

Csatlakozás a munkaterülethez

A munkaterület az Azure Machine Learning legfelső szintű erőforrása, amely egy központi helyet biztosít az Azure Machine Learning használata során létrehozott összetevőkkel való munkához. Ebben a szakaszban az Azure Machine Learning-munkaterülethez csatlakozva hozza létre a regisztrált modellt.

  1. Jelentkezzen be az Azure-ba az utasításokat futtatva az login és követve.

  2. Az alábbi parancsokban cserélje le <subscription-id>a , <workspace-name>, , <resource-group>és <location> helyőrzőket a környezet értékeire.

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

A regisztrált modell létrehozása

Regisztrált modellt a következő modellből hozhat létre:

  • A helyi számítógépen található.
  • Egy Azure Machine Learning-adattárban található.
  • Kimenet egy Azure Machine Learning-feladatból.

Helyi fájl vagy mappa

  1. Hozzon létre egy YAML-fájlnevet<>.yml. A fájlban adja meg a regisztrált modell nevét, a helyi modellfájl elérési útját és leírását. Példa:

    $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. Futtassa a következő parancsot a YAML-fájl nevével:

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

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

Adattár

A modellt a támogatott URI-formátumok bármelyikével létrehozhatja egy felhőbeli útvonalon.

Az alábbi példa a rövidített azureml sémát használja az adattár elérési útjára való mutatáshoz a szintaxis azureml://datastores/<datastore-name>/paths/<path_on_datastore>használatával.

az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt

A teljes példáért tekintse meg a parancssori felületre vonatkozó hivatkozást.

Feladat kimenete

Ha a modelladatok egy feladat kimenetéből származnak, két lehetőség közül választhat a modell elérési útjának megadására. Használhatja az MLflow runs: URI formátumot vagy az azureml://jobs URI formátumot.

Feljegyzés

A fenntartott összetevők kulcsszó az alapértelmezett összetevő helyről származó kimenetet jelöli.

  • MLflow-futtatások: URI formátum

    Ez a beállítás MLflow-felhasználók számára van optimalizálva, akik valószínűleg már ismerik az MLflow runs: URI formátumát. Ez a beállítás létrehoz egy modellt az összetevőkből az alapértelmezett összetevőhelyen, ahol az összes MLflow-naplózott modell és összetevő található. Ez a beállítás egy regisztrált modell és a modell futása közötti kapcsolat kialakítását is lehetővé teszi.

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

    Példa:

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

  • azureml://jobs URI formátum

    A azureml://jobs referencia URI lehetőség lehetővé teszi, hogy a feladat bármelyik kimeneti útvonalán regisztráljon egy modellt az összetevőkből. Ez a formátum igazodik a azureml://datastores referencia URI formátumához, és támogatja az összetevők hivatkozását az alapértelmezett összetevő helyétől eltérő nevesített kimenetekből.

    Ha nem regisztrálta közvetlenül a modellt a betanítási szkriptben az MLflow használatával, ezzel a beállítással létrehozhat egy vonalas kapcsolatot a regisztrált modell és a betanított feladat között.

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

    • Az összetevő alapértelmezett helye: azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/. Ez a hely egyenértékű az MLflow-nel runs:/<run-id>/<model>.
    • Elnevezett kimeneti mappa: azureml://jobs/<run-id>/outputs/<named-output-folder>
    • Adott fájl a nevesített kimeneti mappában: azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
    • Adott mappa elérési útja a nevesített kimeneti mappában: azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>

    Példa:

    Modell mentése nevesített kimeneti mappából:

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

    A teljes példáért tekintse meg a parancssori felületre vonatkozó hivatkozást.


Modellek használata betanításhoz

A v2 Azure CLI és a Python SDK segítségével modelleket is használhat bemenetként vagy kimenetként a betanítási feladatokban.

Modell használata bemenetként egy betanítási feladatban

  1. Hozzon létre egy feladatspecifikációs YAML-fájlt, <fájlnevet>.yml. inputs A feladat szakaszában adja meg a következőket:

    • A modell type, amely lehet mlflow_model, custom_modelvagy triton_model.
    • A path modell helye, amely az alábbi példa megjegyzésében felsorolt útvonalak 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.5/labels/latest
    
  2. Futtassa a következő parancsot a YAML-fájlnév helyettesítésével.

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

Egy teljes példáért tekintse meg a GitHub-adattárat.

Modell írása feladat kimeneteként

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

  1. Hozzon létre egy feladatspecifikációs YAML-fájlnevet<>.yml. Töltse ki a szakaszt outputs a kimeneti modell típusával és elérési útjával.

    $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. Feladat létrehozása a parancssori felület használatával:

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

Egy teljes példáért tekintse meg a GitHub-adattárat.

Modellek kezelése

Az Azure CLI és a Python SDK 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

Adja meg 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

Adott modell mutable tulajdonságainak frissítése:

Fontos

Modellek esetén csak description és tags frissíthető. Az összes többi tulajdonság nem módosítható, és ha módosítania kell őket, létre kell hoznia a modell új verzióját.

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

Archívum

A modell archiválása alapértelmezés szerint elrejti a lista lekérdezései az ml model list elől. A munkafolyamatokban továbbra is hivatkozhat és használhat archivált modellt.

A modell összes verzióját vagy csak bizonyos verzióit archiválhatja. Ha nem ad meg verziót, a modell összes verziója archiválva lesz. Ha 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