Gépi tanulási modell üzembe helyezése és pontozása online végpont használatával
A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)
Python SDK azure-ai-ml v2 (aktuális)
Megtudhatja, hogyan helyezhet üzembe egy online végpontot a modell üzembe helyezéséhez, hogy ne kelljen létrehoznia és kezelnie a mögöttes infrastruktúrát. Először üzembe kell helyeznie egy modellt a helyi gépen a hibák hibakereséséhez, majd üzembe helyezi és teszteli azt az Azure-ban.
Azt is megtudhatja, hogyan tekintheti meg a naplókat, és hogyan figyelheti a szolgáltatói szerződést (SLA). Egy modellel kell kezdenie, és végül egy skálázható HTTPS-/REST-végponttal kell végződnie, amelyet online és valós idejű pontozáshoz használhat.
Az online végpontok az online (valós idejű) következtetéshez használt végpontok. Kétféle online végpont létezik: felügyelt online végpontok és Kubernetes online végpontok. A végpontokkal, valamint a felügyelt online végpontok és a Kubernetes online végpontjai közötti különbségekkel kapcsolatos további információkért lásd: Mik azok az Azure Machine Learning-végpontok?.
A felügyelt online végpontok segítségével azonnal üzembe helyezheti a használatra kész ML-modelleket. A felügyelt online végpontok skálázható, teljes mértékben felügyelt módon működnek együtt a nagy teljesítményű processzorral és GPU-val rendelkező Azure-beli gépekkel. A felügyelt online végpontok gondoskodnak a modellek kiszolgálásáról, skálázásáról, védelméről és monitorozásáról, így nem kell foglalkoznia a mögöttes infrastruktúra beállításával és kezelésével.
A dokumentum fő példája felügyelt online végpontokat használ az üzembe helyezéshez. Ha inkább a Kubernetes-t szeretné használni, tekintse meg a jelen dokumentumban található megjegyzéseket a felügyelt online végponttal kapcsolatos vitafórummal.
Tipp
Ha felügyelt online végpontokat szeretne létrehozni a Azure Machine Learning stúdió, olvassa el a Felügyelt online végpontok használata a studióban című témakört.
Előfeltételek
A cikkben ismertetett lépések végrehajtása előtt győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:
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.
Az Azure CLI és az
ml
Azure CLI bővítménye. További információ: A parancssori felület (v2) telepítése, beállítása és használata.Fontos
A cikkben szereplő CLI-példák feltételezik, hogy a Bash (vagy kompatibilis) rendszerhéjat használja. Például linuxos rendszerből vagy Linuxos Windows-alrendszer.
Egy Azure Machine Learning-munkaterület. Ha még nincs ilyenje, a telepítéssel, beállítással és a parancssori felület (v2) használatával hozzon létre egyet.
Az Azure-beli szerepköralapú hozzáférés-vezérlés (Azure RBAC) az Azure Machine Learning műveleteihez való hozzáférés biztosítására szolgál. A cikkben ismertetett lépések végrehajtásához a felhasználói fiókjához hozzá kell rendelnie az Azure Machine Learning-munkaterület tulajdonosi vagy közreműködői szerepkörét, vagy egy egyéni szerepkört, amely lehetővé teszi
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
. További információ: Azure Machine Learning-munkaterülethez való hozzáférés kezelése.Ha még nem állította be az Alapértelmezett beállításokat az Azure CLI-hez, mentse az alapértelmezett beállításokat. Az előfizetés, a munkaterület és az erőforráscsoport értékeinek többszöri átadásának elkerülése érdekében futtassa a következő kódot:
az account set --subscription <subscription ID> az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
(Nem kötelező) A helyi telepítéshez telepítenie kell a Docker Engine-t a helyi számítógépre. Erősen ajánljuk ezt a lehetőséget, így egyszerűbb a problémák hibakeresése.
Fontos
A dokumentumban szereplő példák feltételezik, hogy a Bash-felületet használja. Például linuxos rendszerből vagy Linuxos Windows-alrendszer.
A rendszer előkészítése
A mintaadattár klónozása
A cikk követéséhez először klónozza a mintaadattárat (azureml-examples). Ezután futtassa a következő kódot a mintakönyvtárba való ugráshoz:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli
Tipp
A használatával --depth 1
csak a legújabb véglegesítést klónozhatja az adattárba, ami csökkenti a művelet végrehajtásához szükséges időt.
Végpont nevének beállítása
A végpont nevének beállításához futtassa a következő parancsot (cserélje le YOUR_ENDPOINT_NAME
egy egyedi névre).
Unix esetén futtassa a következő parancsot:
export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
Megjegyzés
A végpontneveknek egyedinek kell lenniük egy Azure-régióban. Az Azure-régióban westus2
például csak egy végpont lehet , amelynek a neve my-endpoint
.
A végpont és az üzembe helyezés meghatározása
A következő kódrészlet a végpontokat/online/managed/sample/endpoint.yml fájlt jeleníti meg:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key
Megjegyzés
A YAML teljes leírását lásd: Online végpont YAML-referencia.
A végpont YAML-formátumára vonatkozó referenciát az alábbi táblázat ismerteti. Az attribútumok megadásának módjáról a RENDSZER előkészítése című YAML-példában vagy az online végpont YAML-referenciájában olvashat. A felügyelt végpontokkal kapcsolatos korlátozásokról további információt az Erőforrások kvótáinak kezelése és növelése az Azure Machine Learning használatával című témakörben talál.
Kulcs | Leírás |
---|---|
$schema |
(Nem kötelező) A YAML-séma. A YAML-fájlban elérhető összes lehetőség megtekintéséhez a sémát az előző példában tekintheti meg egy böngészőben. |
name |
A végpont neve. Az Azure-régióban egyedinek kell lennie. Az elnevezési szabályok felügyelt online végpontkorlátok alatt vannak meghatározva. |
auth_mode |
Kulcsalapú hitelesítéshez használható key . Azure Machine Learning-jogkivonat-alapú hitelesítéshez használható aml_token . key nem jár le, de aml_token lejár. (A legutóbbi jogkivonat lekérése a az ml online-endpoint get-credentials paranccsal.) |
A példa tartalmazza a modell online végponton való üzembe helyezéséhez szükséges összes fájlt. Modell üzembe helyezéséhez a következőket kell tennie:
- Modellfájlok (vagy a munkaterületen már regisztrált modell neve és verziója). A példában van egy scikit-learn modellünk, amely regressziót végez.
- A modell pontozásához szükséges kód. Ebben az esetben van egy score.py fájlunk.
- Olyan környezet, amelyben a modell fut. Amint látni fogja, a környezet lehet Egy Conda-függőségeket tartalmazó Docker-rendszerkép, vagy egy Docker-fájl.
- A példánytípus és a skálázási kapacitás megadására vonatkozó beállítások.
Az alábbi kódrészlet a végpontokat/online/managed/sample/blue-deployment.yml fájlt jeleníti meg az összes szükséges bemenettel:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
A táblázat a következő attribútumokat deployment
írja le:
Kulcs | Leírás |
---|---|
name |
Az üzembe helyezés neve. |
model |
Ebben a példában a modelltulajdonságokat a következő beágyazott módon adhatja meg: path . A rendszer automatikusan feltölti és regisztrálja a modellfájlokat egy automatikusan létrehozott névvel. A kapcsolódó ajánlott eljárásokért tekintse meg a következő szakaszban található tippet. |
code_configuration.code.path |
A helyi fejlesztési környezet könyvtára, amely tartalmazza a modell pontozásához szükséges Összes Python-forráskódot. Beágyazott könyvtárakat és csomagokat is használhat. |
code_configuration.scoring_script |
A helyi fejlesztési környezet pontozási könyvtárában code_configuration.code.path található Python-fájl. Ennek a Python-kódnak rendelkeznie kell egy init() függvénnyel és egy run() függvénnyel. A rendszer meghívja a függvényt init() a modell létrehozása vagy frissítése után (használhatja például a modell gyorsítótárazására a memóriában). A run() függvényt a rendszer a végpont minden hívásánál meghívja, hogy elvégezhesse a tényleges pontozást és előrejelzést. |
environment |
A modell és a kód üzemeltetéséhez szükséges környezet adatait tartalmazza. Ebben a példában beágyazott definíciókkal rendelkezünk, amelyek tartalmazzák a következőtpath . A rendszerképet használjuk environment.docker.image . A conda_file függőségek a rendszerkép tetején lesznek telepítve. További információért tekintse meg a következő szakaszban található tippet. |
instance_type |
Az üzembehelyezési példányokat üzemeltető virtuálisgép-termékváltozat. További információ: Felügyelt online végpontok által támogatott virtuálisgép-termékváltozatok. |
instance_count |
Az üzemelő példányok száma. Alapozza az értéket a várt számítási feladatra. A magas rendelkezésre állás érdekében javasoljuk, hogy állítsa be legalább 3 a értéketinstance_count . A frissítések végrehajtásához további 20%-ot foglalunk le. További információ: Felügyelt online végpontkvóták. |
Az üzembe helyezés során a rendszer feltölti a helyi fájlokat, például a pontozási modell Python-forrását a fejlesztési környezetből.
A YAML-sémával kapcsolatos további információkért lásd az online végpont YAML-referenciáját.
Megjegyzés
Kubernetes használata felügyelt végpontok helyett számítási célként:
- Hozza létre és csatolja a Kubernetes-fürtöt számítási célként az Azure Machine Learning-munkaterülethez a Azure Machine Learning stúdió használatával.
- Használja a YAML végpontot a Kubernetes célként való megcélzásához a felügyelt YAML-végpont helyett. Szerkesztenie kell a YAML-et, hogy az értékét
target
a regisztrált számítási cél nevére módosítsa. Ezt a deployment.yaml fájlt használhatja, amely további tulajdonságokkal rendelkezik a Kubernetes üzembe helyezéséhez.
A cikkben használt összes parancs (kivéve az opcionális SLA-monitorozást és az Azure Log Analytics-integrációt) használható felügyelt végpontokkal vagy Kubernetes-végpontokkal.
Modell és környezet külön regisztrálása
Ebben a példában a (fájlok feltöltésének path
helyét) beágyazottként adhatja meg. A parancssori felület automatikusan feltölti a fájlokat, és regisztrálja a modellt és a környezetet. Az éles környezetben ajánlott eljárásként regisztrálnia kell a modellt és a környezetet, és külön kell megadnia a regisztrált nevet és verziót a YAML-ben. Használja az űrlapot vagy environment: azureml:my-env:1
a következőtmodel: azureml:my-model:1
: .
Regisztrációhoz kinyerheti a YAML-definíciókat model
a és environment
a fájlból külön YAML-fájlokba, és használhatja a és az ml environment create
a parancsokataz ml model create
. Ha többet szeretne megtudni ezekről a parancsokról, futtassa a és az ml environment create -h
a parancsotaz ml model create -h
.
Különböző CPU- és GPU-példánytípusok használata
Az előző YAML egy általános célú típust (Standard_DS2_v2
) és egy nem GPU-alapú Docker-képet használ (a YAML-ben lásd az image
attribútumot). GPU-számítás esetén válassza ki a GPU számítási típus termékváltozatát és a GPU Docker-rendszerképet.
A támogatott általános célú és GPU-példánytípusokért lásd: Felügyelt online végpontok által támogatott virtuálisgép-termékváltozatok. Az Azure Machine Learning CPU- és GPU-alaprendszerképeinek listáját az Azure Machine Learning alaprendszerképei című témakörben találja.
Megjegyzés
Ha a Kubernetes-t szeretné használni a felügyelt végpontok helyett számítási célként, olvassa el a Kubernetes számítási cél bemutatása című témakört.
Több modell használata
Jelenleg üzembe helyezésenként csak egy modellt adhat meg a YAML-ben. Ha több modellel rendelkezik, a modell regisztrálásakor másolja az összes modellt fájlként vagy alkönyvtárként egy, a regisztrációhoz használt mappába. A pontozószkriptben használja az AZUREML_MODEL_DIR
környezeti változót a modellgyökérmappa útvonalának lekéréséhez. A mögöttes könyvtárstruktúra megmarad. Ha több modellt szeretne üzembe helyezni egy üzemelő példányban, olvassa el a Több modell üzembe helyezése egy üzembe helyezéshez című témakört.
A pontozási szkript ismertetése
Tipp
Az online végpontok pontozási szkriptjének formátuma megegyezik a CLI előző verziójában és a Python SDK-ban használt formátummal.
Ahogy korábban említettük, a megadott code_configuration.scoring_script
szkriptnek egy függvénysel init()
és egy függvénnyel kell rendelkeznie run()
.
Ez a példa a score.py fájlt használja: score.py
import os
import logging
import json
import numpy
import joblib
def init():
"""
This function is called when the container is initialized/started, typically after create/update of the deployment.
You can write the logic here to perform init operations like caching the model in memory
"""
global model
# AZUREML_MODEL_DIR is an environment variable created during deployment.
# It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
# Please provide your model's folder name if there is one
model_path = os.path.join(
os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
)
# deserialize the model file back into a sklearn model
model = joblib.load(model_path)
logging.info("Init complete")
def run(raw_data):
"""
This function is called for every invocation of the endpoint to perform the actual scoring/prediction.
In the example we extract the data from the json input and call the scikit-learn model's predict()
method and return the result back
"""
logging.info("model 1: request received")
data = json.loads(raw_data)["data"]
data = numpy.array(data)
result = model.predict(data)
logging.info("Request processed")
return result.tolist()
A init()
függvény a tároló inicializálása vagy elindításakor lesz meghívva. Az inicializálás általában röviddel az üzembe helyezés létrehozása vagy frissítése után történik. Ide írhatja a logikát a globális inicializálási műveletekhez, például a modell gyorsítótárazásához a memóriában (ahogy ebben a példában is). A run()
függvény a végpont minden hívásához meghívható, és a tényleges pontozást és előrejelzést kell elvégeznie. A példában kinyerjük az adatokat a JSON-bemenetből, meghívjuk a scikit-learn modell metódusát predict()
, majd visszaadjuk az eredményt.
Helyi végpontok használatával történő helyi üzembe helyezés és hibakeresés
A hibakeresés időt takaríthat meg, ezért javasoljuk , hogy helyileg tesztelje a végpontot. További információ: Online végpontok helyi hibakeresése a Visual Studio Code-ban.
Megjegyzés
- A helyi üzembe helyezéshez telepíteni kell a Docker Engine-t .
- A Docker-motornak futnia kell. A Docker Engine általában a számítógép indításakor indul el. Ha nem, hibaelhárítást végezhet a Docker Engine-ben.
Fontos
A helyi végpont üzembe helyezésének célja a kód és a konfiguráció ellenőrzése és hibakeresése az Azure-ban való üzembe helyezés előtt. A helyi üzemelő példányra az alábbi korlátozások vonatkoznak:
- A helyi végpontok nem támogatják a forgalmi szabályokat, a hitelesítést és a mintavételi beállításokat.
- A helyi végpontok végpontonként csak egy üzemelő példányt támogatnak.
Tipp
Az Azure Machine Learning-következtetés HTTP-kiszolgáló Python-csomagjával helyileg, Docker Engine nélkül is hibakeresést végezhet a pontozási szkriptben. A következtetési kiszolgálóval végzett hibakeresés segít a pontozási szkript hibakeresésében, mielőtt üzembe helyezené a helyi végpontokon, hogy a hibakeresést az üzembehelyezési tároló konfigurációi ne befolyásolják.
A modell helyi üzembe helyezése
Először hozzon létre egy végpontot. Helyi végpont esetén kihagyhatja ezt a lépést, és közvetlenül létrehozhatja az üzembe helyezést (következő lépés), amely létrehozza a szükséges metaadatokat. A modellek helyi üzembe helyezése fejlesztési és tesztelési célokra hasznos.
az ml online-endpoint create --local -n $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
Most hozzon létre egy üzembe helyezést a végpont alatt.blue
az ml online-deployment create --local -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml
A --local
jelző arra utasítja a parancssori felületet, hogy helyezze üzembe a végpontot a Docker-környezetben.
Tipp
A végpontok helyi teszteléséhez és hibakereséséhez használja a Visual Studio Code-ot. További információ: Online végpontok helyi hibakeresése a Visual Studio Code-ban.
A helyi üzembe helyezés sikerességének ellenőrzése
Ellenőrizze az állapotot annak ellenőrzéséhez, hogy a modell hiba nélkül lett-e üzembe helyezve:
az ml online-endpoint show -n $ENDPOINT_NAME --local
A kimenetnek az alábbi JSON-hoz hasonlónak kell lennie. A provisioning_state
a következő: Succeeded
.
{
"auth_mode": "key",
"location": "local",
"name": "docs-endpoint",
"properties": {},
"provisioning_state": "Succeeded",
"scoring_uri": "http://localhost:49158/score",
"tags": {},
"traffic": {}
}
A következő táblázat a lehetséges értékeket tartalmazza:provisioning_state
Állam | Leírás |
---|---|
Létrehozás | Az erőforrás létrehozása folyamatban van. |
Frissítés | Az erőforrás frissítése folyamatban van. |
Törlés | Az erőforrás törlése folyamatban van. |
Sikeres | A létrehozási/frissítési művelet sikeres volt. |
Sikertelen | A létrehozási/frissítési/törlési művelet nem sikerült. |
A helyi végpont meghívása az adatok pontozásához a modell használatával
Hívja meg a végpontot a modell pontozásához a kényelem parancs használatával invoke
, és adja át a JSON-fájlban tárolt lekérdezési paramétereket:
az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
Ha REST-ügyfelet (például curl) szeretne használni, rendelkeznie kell a pontozási URI-vel. A pontozási URI lekéréséhez futtassa a parancsot az ml online-endpoint show --local -n $ENDPOINT_NAME
. A visszaadott adatok között keresse meg az scoring_uri
attribútumot. A curl-alapú mintaparancsok a jelen dokumentum későbbi részében érhetők el.
Tekintse át a naplókat a meghívási művelet kimenetének megtekintéséhez
A példában score.py fájlban a run()
metódus naplózza a kimenetet a konzolon.
Ezt a kimenetet a get-logs
következő paranccsal tekintheti meg:
az ml online-deployment get-logs --local -n blue --endpoint $ENDPOINT_NAME
Az online végpont üzembe helyezése az Azure-ban
Ezután helyezze üzembe az online végpontot az Azure-ban.
Üzembe helyezés az Azure-ban
A végpont felhőben való létrehozásához futtassa a következő kódot:
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
A végpont alatt elnevezett blue
üzemelő példány létrehozásához futtassa a következő kódot:
az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic
Az üzembe helyezés akár 15 percet is igénybe vehet attól függően, hogy az alapul szolgáló környezet vagy rendszerkép első létrehozása folyamatban van-e. Az ugyanazt a környezetet használó későbbi üzemelő példányok gyorsabban befejezik a feldolgozást.
Tipp
- Ha nem szeretné letiltani a CLI-konzolt, hozzáadhatja a jelzőt
--no-wait
a parancshoz. Ez azonban leállítja az üzembe helyezés állapotának interaktív megjelenítését.
Fontos
A --all-traffic
fenti az ml online-deployment create
jelölő az újonnan létrehozott üzemelő példány felé a végpont felé menő forgalom 100%-át foglalja le. Bár ez fejlesztési és tesztelési célokra hasznos, éles környezetben érdemes lehet egy explicit paranccsal megnyitni az új üzembe helyezés felé irányuló forgalmat. Például: az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100"
Tipp
- A hibák elhárításához használja az online végpontok üzembe helyezésének hibaelhárítását .
A végpont állapotának ellenőrzése
A show
parancs a végpont és az üzembe helyezés adatait provisioning_status
tartalmazza:
az ml online-endpoint show -n $ENDPOINT_NAME
A munkaterület összes végpontját táblázatos formátumban listázhatja a list
következő paranccsal:
az ml online-endpoint list --output table
Az online üzembe helyezés állapotának ellenőrzése
Ellenőrizze a naplókat, hogy a modell hiba nélkül lett-e üzembe helyezve:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Alapértelmezés szerint a naplókat a rendszer a következtetési kiszolgálóról kéri le. A storage-initializer naplóinak megtekintéséhez (például modellhez és kódhoz hasonló eszközöket csatlakoztat a tárolóhoz), adja hozzá a jelzőt --container storage-initializer
.
Az üzembehelyezési naplókkal kapcsolatos további információkért lásd: Tárolónaplók lekérése.
A végpont meghívása az adatok pontozásához a modell használatával
A végpont meghívásához és néhány adat pontozásához használhatja a invoke
parancsot vagy egy tetszőleges REST-ügyfelet:
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
Az alábbi példa bemutatja, hogyan szerezheti be a végponton való hitelesítéshez használt kulcsot:
Tipp
Szabályozhatja, hogy mely Azure Active Directory-rendszerbiztonsági tagok kaphatják meg a hitelesítési kulcsot, ha hozzárendeli őket egy egyéni szerepkörhöz, amely lehetővé teszi Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action
a és Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
a használatát. További információ: Azure Machine Learning-munkaterülethez való hozzáférés kezelése.
ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
Ezután használja a curl-t az adatok pontozásához.
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json
Figyelje meg, hogy a és get-credentials
a parancsokkal szerezzük show
be a hitelesítési hitelesítő adatokat. Figyelje meg azt is, hogy a --query
jelzővel az attribútumokat csak arra szűrjük, amire szükségünk van. További információ: --query
Az Azure CLI-parancs kimenetének lekérdezése.
A hívási naplók megtekintéséhez futtassa újra a parancsot get-logs
.
A jogkivonatok használatával történő hitelesítéssel kapcsolatos információkért lásd: Hitelesítés online végpontokon.
(Nem kötelező) Az üzemelő példány frissítése
Ha frissíteni szeretné a kódot, a modellt vagy a környezetet, frissítse a YAML-fájlt, majd futtassa a az ml online-endpoint update
parancsot.
Megjegyzés
Ha egyetlen update
parancsban frissíti a példányok számát és más modellbeállításokkal (kód, modell vagy környezet) együtt: először a skálázási művelet lesz végrehajtva, majd a többi frissítés lesz alkalmazva. Éles környezetben ajánlott ezeket a műveleteket külön végrehajtani.
A működés update
megértése:
Nyissa meg az online/model-1/onlinescoring/score.py fájlt.
Módosítsa a függvény utolsó sorát
init()
: Afterlogging.info("Init complete")
, add .logging.info("Updated successfully")
Mentse a fájlt.
Futtassa ezt a parancsot:
az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml
Megjegyzés
A YAML használatával történő frissítés deklaratív. Ez azt jelzi, hogy a YAML változásai megjelennek a mögöttes Azure-Resource Manager-erőforrásokban (végpontokban és üzemelő példányokban). A deklaratív megközelítés megkönnyíti a GitOps használatát: A végpontok és üzemelő példányok (sőt
instance_count
) minden módosítása a YAML-en megy keresztül.Tipp
update
A paranccsal az--set
Azure CLI paraméterével felülbírálhatja a YAML-attribútumokat, vagy beállíthat bizonyos attribútumokat a YAML-fájl átadása nélkül. Az önálló attribútumok használata--set
különösen hasznos fejlesztési és tesztelési forgatókönyvekben. Az első üzembe helyezés értékénekinstance_count
vertikális felskálázásához például használhatja a jelzőt--set instance_count=2
. Mivel azonban a YAML nem frissül, ez a technika nem teszi lehetővé a GitOps használatát.Mivel módosította a
init()
függvényt (init()
a végpont létrehozásakor vagy frissítésekor fut), az üzenetUpdated successfully
a naplókban lesz. Kérje le a naplókat a következő futtatásával:az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
A update
parancs helyi üzemelő példányokkal is működik. Használja ugyanazt az ml online-deployment update
a parancsot a --local
jelölővel.
Megjegyzés
A fenti példa a működés közbeni frissítésre.
- Felügyelt online végpont esetén ugyanaz az üzembe helyezés frissül az új konfigurációval, egyszerre 20%-os csomópontokkal, azaz ha az üzemelő példány 10 csomóponttal rendelkezik, akkor egyszerre 2 csomópont lesz frissítve.
- A Kubernetes online végpontja esetében a rendszer iterációslag létrehoz egy új üzembehelyezési példányt az új konfigurációval, és törli a régit.
- Éles környezetben érdemes megfontolni a kék-zöld üzembe helyezést, amely biztonságosabb alternatívát kínál.
(Nem kötelező) Automatikus skálázás konfigurálása
Az automatikus skálázás automatikusan a megfelelő mennyiségű erőforrást futtatja az alkalmazásra háruló terhelés kezeléséhez. A felügyelt online végpontok támogatják az automatikus skálázást az Azure Monitor automatikus skálázási funkciójával való integrációval. Az automatikus skálázás konfigurálásához lásd: Online végpontok automatikus skálázása.
(Nem kötelező) SLA monitorozása az Azure Monitor használatával
Ha meg szeretné tekinteni a metrikákat, és riasztásokat szeretne beállítani az SLA alapján, hajtsa végre az online végpontok monitorozása című cikkben leírt lépéseket.
(Nem kötelező) Integrálás a Log Analyticsszel
A get-logs
PARANCSSOR parancsa vagy az get_logs
SDK metódusa csak az utolsó néhány száz naplósort biztosítja egy automatikusan kiválasztott példányból. A Log Analytics azonban lehetővé teszi a naplók tartós tárolását és elemzését. További információ a naplózás használatáról: Online végpontok monitorozása
E-mailek konfigurálása a studióban
Ha el szeretné kezdeni az e-mailek fogadását, amikor a feladat, az online végpont vagy a kötegelt végpont befejeződött, vagy ha probléma merült fel (sikertelen, megszakítva), kövesse az alábbi lépéseket:
- Az Azure ML Studióban a fogaskerék ikonra kattintva nyissa meg a beállításokat.
- Válassza a Email értesítések lapot.
- Váltás egy adott esemény e-mail-értesítéseinek engedélyezésére vagy letiltására.
A végpont és az üzembe helyezés törlése
Ha nem használja az üzemelő példányt, törölje a következő kód futtatásával (törli a végpontot és az összes mögöttes üzembe helyezést):
az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait
Következő lépések
Próbálja ki a modellek biztonságos üzembe helyezése a következő lépésként:
További információért tekintse át az alábbi cikkeket:
- Modellek üzembe helyezése REST használatával
- Online végpontok létrehozása és használata a studióban
- Felügyelt online végpontok automatikus skálázása
- Kötegelt végpontok használata kötegelt pontozáshoz
- Azure-erőforrások elérése egy felügyelt identitással rendelkező online végpontról
- Online végpontok üzembe helyezésének hibaelhárítása
- Hálózatelkülönítés engedélyezése felügyelt online végpontokkal
- Az Azure Machine Learning által felügyelt online végpont költségeinek megtekintése