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 custom
van hozzárendelve: .
Előfeltételek
- Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki az Azure Machine Learning ingyenes vagy fizetős verzióját.
- Egy Azure Machine Learning-munkaterület.
- A Pythonhoz készült Azure Machine Learning SDK v2.
- Az Azure Machine Learning CLI v2.
Emellett a következőket kell elvégeznie:
- Telepítse az Azure CLI-t és az ML-bővítményt az Azure CLI-be. További információ: A parancssori felület (v2) telepítése, beállítása és használata.
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 mlflow
a 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.
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:
- A
type
, hogy a modell egymlflow_model
vagycustom_model
triton_model
. - 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.