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
- Azure-előfizetés az Azure Machine Learning ingyenes vagy fizetős verziójával. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
- Egy Azure Machine Learning-munkaterület.
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:
A stúdióban lévő munkaterületen válassza a Modellek lehetőséget a bal oldali navigációs sávon.
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)
Az első Modell regisztrálása képernyőn:
- Keresse meg a modell helyi fájlját, adattárát vagy feladatkimenetét.
- Válassza ki a bemeneti modell típusát: MLflow, Triton vagy Unspecified type.
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.
A Véleményezés képernyőn tekintse át a konfigurációt, majd válassza a Regisztráció lehetőséget.
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.mlflow
A 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.
Jelentkezzen be az Azure-ba az utasításokat futtatva
az login
és követve.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
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.
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:
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 aazureml://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-nelruns:/<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.
- Az összetevő alapértelmezett helye:
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
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 lehetmlflow_model
,custom_model
vagytriton_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
- A modell
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.
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
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:
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