Gépi tanulási modell üzembe helyezése és pontszáma online végpont használatával

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

Ebből a cikkből megtudhatja, hogyan helyezheti üzembe a modellt egy online végponton valós idejű következtetés céljából. Először üzembe kell helyeznie egy modellt a helyi gépen a hibák hibakereséséhez. Ezután üzembe helyezheti és tesztelheti a modellt az Azure-ban, megtekintheti az üzembehelyezési naplókat, és figyelheti a szolgáltatásiszint-szerződést (SLA). A cikk végére egy méretezhető HTTPS/REST-végponttal rendelkezik, amelyet valós idejű következtetéshez használhat.

Az online végpontok valós idejű következtetéshez használt végpontok. Kétféle online végpontot különböztetünk meg: felügyelt online végpontokat és Kubernetes online végpontokat. További információ a végpontokról és a felügyelt online végpontok és a Kubernetes online végpontok közötti különbségekről: Mik azok az Azure Machine Tanulás végpontok?

A felügyelt online végpontok segítségével azonnal üzembe helyezheti a használatra kész gépi tanulási 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 dokumentum azon jegyzeteit, amelyek beágyazottak a felügyelt online végponttal kapcsolatos vitafórumba.

Előfeltételek

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

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:

  • Az Azure-beli szerepköralapú hozzáférés-vezérlések (Azure RBAC) az Azure gépi tanulás műveleteihez való hozzáférést biztosítják. A cikkben ismertetett lépések végrehajtásához a felhasználói fiókjához hozzá kell rendelni az Azure Machine Tanulás munkaterület tulajdonosi vagy közreműködői szerepkörét, vagy egy egyéni szerepkört, amely lehetővé tesziMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/*. Ha a studióval hoz létre/kezel online végpontokat/üzembe helyezéseket, akkor az erőforráscsoport tulajdonosától további "Microsoft.Resources/deployments/write" engedélyre lesz szüksége. További információ: Azure Machine-Tanulás-munkaterülethez való hozzáférés kezelése.

  • (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 hibakeresést végezni.

  • Győződjön meg arról, hogy elegendő virtuálisgép-kvóta van lefoglalva az üzembe helyezéshez. Az Azure Machine Tanulás a számítási erőforrások 20%-át fenntartja bizonyos virtuálisgép-termékváltozatok frissítéséhez. Ha például 10 példányt kér egy üzembe helyezéshez, a virtuálisgép-termékváltozat minden egyes magjára vonatkozóan 12-es kvótával kell rendelkeznie. Ha nem veszi figyelembe a további számítási erőforrásokat, az hibát eredményez. Vannak olyan virtuálisgép-termékváltozatok, amelyek mentesülnek a többletkvóta-foglalás alól. A kvótakiosztással kapcsolatos további információkért tekintse meg az üzembe helyezéshez szükséges virtuálisgép-kvótafoglalást.

  • Másik lehetőségként az Azure Machine Tanulás megosztott kvótakészletéből származó kvótát is használhatja korlátozott ideig. A felhasználók korlátozott ideig férhetnek hozzá a készlet kvótáihoz a tesztelés elvégzéséhez. Ha a studiót a Llama-2, a Phi, a Nemotron, a Mistral, a Dolly és a Deci-Deci-DeciLM modellek üzembe helyezésére használja a modellkatalógusból egy felügyelt online végpontra, az Azure Machine Tanulás lehetővé teszi a megosztott kvótakészlet rövid ideig való elérését, hogy elvégezhesse a tesztelést. A megosztott kvótakészletről további információt az Azure Machine Tanulás megosztott kvótával kapcsolatban talál.

A rendszer előkészítése

Környezeti változók beállítása

Ha még nem állította be az Azure CLI alapértelmezett beállításait, 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 ezt a kódot:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

A példák adattárának klónozása

A cikk követéséhez először klónozza a példák adattárát (azureml-examples). Ezután futtassa a következő kódot az adattár könyvtárához cli/ való ugráshoz:

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli

Tipp.

Csak a legújabb véglegesítés klónozására használható --depth 1 az adattárban, ami csökkenti a művelet befejezéséhez szükséges időt.

Az oktatóanyag parancsai a fájlokban deploy-local-endpoint.sh és deploy-managed-online-endpoint.sh a cli könyvtárban találhatók, a YAML konfigurációs fájljai pedig az endpoints/online/managed/sample/ alkönyvtárban találhatók.

Feljegyzés

Az online Kubernetes-végpontok YAML-konfigurációs fájljai az endpoints/online/kubernetes/ alkönyvtárban találhatók.

A végpont definiálása

Online végpont definiálásához adja meg a végpont nevét és a hitelesítési módot. A felügyelt online végpontokról további információt az Online végpontok című témakörben talál.

Végpontnév 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 az Azure-régióban egyedi névre. Az elnevezési szabályokkal kapcsolatos további információkért tekintse meg a végpontkorlátokat.

Linux esetén futtassa a következő parancsot:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

A végpont konfigurálása

Az alábbi kódrészlet a végpontokat/online/felügyelt/minta/endpoint.yml fájlt jeleníti meg:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key

A végpont YAML-formátumára vonatkozó hivatkozást az alábbi táblázat ismerteti. Az attribútumok megadásának módjáról az online végpont YAML-hivatkozásában olvashat. A felügyelt végpontokkal kapcsolatos korlátokról az online végpontokra vonatkozó korlátokat ismertető cikkben olvashat.

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ő kódrészletben tekintheti meg egy böngészőben.
name A végpont neve.
auth_mode Kulcsalapú hitelesítéshez használható key .
Azure Machine-Tanulás jogkivonatalapú hitelesítéshez használhatóaml_token.
A Microsoft Entra tokenalapú hitelesítéshez (előzetes verzió) használható aad_token .
A hitelesítésről további információt az ügyfelek hitelesítése az online végpontok esetében című témakörben talál.

Az üzembe helyezés definiálása

Az üzembe helyezés a tényleges következtetést okozó modell üzemeltetéséhez szükséges erőforrások készlete. Ebben a példában egy scikit-learn modellt helyez üzembe, amely regressziót végez, és egy pontozószkripttel score.py végrehajtja a modellt egy adott bemeneti kérelem alapján.

Az üzembe helyezés fő attribútumairól az online központi telepítések című témakörben olvashat.

Üzembe helyezés konfigurálása

Az üzembe helyezési konfiguráció a telepíteni kívánt modell helyét használja.

Az alábbi kódrészlet a végpontokat/online/felügyelt/minta/blue-deployment.yml fájlt jeleníti meg, az üzembe helyezés konfigurálásához szükséges összes bemenettel:

blue-deployment.yml

$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.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

A blue-deployment.yml fájl a következő üzembehelyezési attribútumokat adja meg:

  • model - megadja a modell tulajdonságait a beágyazottban a path (fájlok feltöltésének helye) használatával. A parancssori felület automatikusan feltölti a modellfájlokat, és automatikusan létrehozott névvel regisztrálja a modellt.
  • environment - beágyazott definíciók használatával, amelyek tartalmazzák a fájlok feltöltésének helyét, a parancssori felület automatikusan feltölti a conda.yaml fájlt, és regisztrálja a környezetet. Később a környezet létrehozásához az üzembe helyezés az image alaprendszerképhez használja (ebben a példában mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest) a függőségeket, és a conda_file függőségek az alaprendszerképre vannak telepítve.
  • code_configuration - 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 tekintse meg a YAML online végpontjának hivatkozását.

Feljegyzés

Kubernetes-végpontok használata felügyelt online végpontok helyett számítási célként:

  1. Hozza létre és csatolja a Kubernetes-fürtöt számítási célként az Azure Machine Tanulás-munkaterülethez az Azure Machine Tanulás Studio használatával.
  2. A YAML végpont használatával a felügyelt YAML-végpont helyett a Kubernetes-t célozza meg. A YAML-et úgy kell szerkesztenie, hogy az értékét compute a regisztrált számítási cél nevére módosítsa. Ezt a deployment.yaml parancsot használhatja, amely további tulajdonságokkal rendelkezik a Kubernetes-üzemelő példányokra.

A cikkben felügyelt online végpontokhoz használt összes parancs a Kubernetes-végpontokra is vonatkozik, kivéve az alábbi képességeket, amelyek nem vonatkoznak a Kubernetes-végpontokra:

A pontozási szkript ismertetése

Tipp.

Az online végpontok pontozási szkriptjének formátuma megegyezik a PARANCSSOR előző verziójában és a Python SDK-ban használt formátummal.

A megadott code_configuration.scoring_script pontozási 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 meghívása a tároló inicializálása vagy elindításakor történik. Az inicializálás általában röviddel az üzembe helyezés létrehozása vagy frissítése után történik. A init függvény a globális inicializálási műveletek logikájának írási helye, például a modell gyorsítótárazása a memóriában (ahogy az ebben a score.py fájlban látható).

A run() függvény minden alkalommal meghívódik, amikor a végpontot meghívják, és elvégzi a tényleges pontozást és előrejelzést. Ebben a score.py fájlban a run() függvény adatokat nyer ki egy JSON-bemenetből, meghívja a scikit-learn modell metódusát predict() , majd visszaadja az előrejelzési eredményt.

Helyi végpont használatával történő helyi üzembe helyezés és hibakeresés

Javasoljuk, hogy az Azure-ban való üzembe helyezés előtt tesztelje helyileg a végpontot a kód és a konfiguráció ellenőrzéséhez és hibakereséséhez. Az Azure CLI és a Python SDK támogatja a helyi végpontokat és üzembe helyezéseket, míg az Azure Machine Tanulás studio- és ARM-sablon nem.

A helyi üzembe helyezéshez a Docker Engine-t telepíteni és futtatni kell. A Docker Engine általában a számítógép indításakor indul el. Ha nem, a Docker Engine hibaelhárítását is elvégezheti.

Tipp.

Az Azure Machine Tanulás következtetési HTTP-kiszolgáló Python-csomagjával helyileg, Docker Engine nélkül is hibakeresést végezhet a pontozószkriptben. A következtetési kiszolgálóval végzett hibakeresés segít a pontozószkript hibakeresésében, mielőtt üzembe helyeznénk a helyi végpontokon, hogy az üzembehelyezési tároló konfigurációi ne befolyásolhassák a hibakeresést.

További információ az online végpontok helyi hibakereséséről az Azure-ban való üzembe helyezés előtt: Online végpontok hibakeresése.

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 viszont 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 blue a végpont alatt.

az ml online-deployment create --local -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml

A --local jelző a parancssori felületre irányítja a végpont Docker-környezetben való üzembe helyezését.

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.

Ellenőrizze, hogy a helyi üzembe helyezés sikeres volt-e

Ellenőrizze az üzembe helyezés állapotát, hogy a modell hiba nélkül lett-e üzembe helyezve:

az ml online-endpoint show -n $ENDPOINT_NAME --local

A kimenetnek a következő JSON-hoz hasonlóan kell megjelennie. Az provisioning_state is Succeeded.

{
  "auth_mode": "key",
  "location": "local",
  "name": "docs-endpoint",
  "properties": {},
  "provisioning_state": "Succeeded",
  "scoring_uri": "http://localhost:49158/score",
  "tags": {},
  "traffic": {}
}

Az alábbi táblázat a következő lehetséges értékeket provisioning_statetartalmazza:

Érték Leírás
Létrehozása Az erőforrás létrehozása folyamatban van.
Frissítése Az erőforrás frissítése folyamatban van.
Törlés Az erőforrás törlése folyamatban van.
Sikerült 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 adatok pontozásához a modell használatával

A végpont meghívása a modell pontozásához a parancs használatával és a invoke JSON-fájlban tárolt lekérdezési paraméterek átadásával:

az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json

Ha REST-ügyfelet szeretne használni (például curl), akkor rendelkeznie kell a pontozási URI-val. A pontozási URI lekéréséhez futtassa a következőt az ml online-endpoint show --local -n $ENDPOINT_NAME: . A visszaadott adatok között keresse meg az scoring_uri attribútumot.

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. Az éles környezetben ajánlott eljárásként javasoljuk, hogy regisztrálja az üzembe helyezés során használni kívánt modellt és környezetet.

Modell és környezet regisztrálása

Javasoljuk, hogy az Azure-ban való üzembe helyezés előtt regisztrálja a modellt és a környezetet, hogy az üzembe helyezés során meg tudja adni a regisztrált nevüket és verzióikat. Az eszközök regisztrálásával anélkül használhatja fel őket, hogy minden üzembe helyezéskor fel kellene töltenie őket, ezáltal növelve a reprodukálhatóságot és a nyomon követhetőséget.

Feljegyzés

Az Azure-ban történő üzembe helyezéstől eltérően a helyi üzembe helyezés nem támogatja a regisztrált modellek és környezetek használatát. A helyi üzembe helyezés inkább helyi modellfájlokat használ, és csak helyi fájlokat tartalmazó környezeteket használ. Az Azure-ba való üzembe helyezéshez használhat helyi vagy regisztrált eszközöket (modelleket és környezeteket). A cikk jelen szakaszában az Azure-ba történő üzembe helyezés regisztrált eszközöket használ, de ehelyett lehetősége van helyi eszközök használatára. Példa egy olyan üzembehelyezési konfigurációra, amely feltölti a helyi üzembe helyezéshez használandó helyi fájlokat, tekintse meg az üzembe helyezés konfigurálása című témakört.

A modell és a környezet regisztrálásához használja az űrlapot model: azureml:my-model:1 vagy environment: azureml:my-env:1a . A regisztrációhoz kinyerheti a YAML-definíciókat model és environment külön YAML-fájlokba, és használhatja a parancsokat az ml model create és az ml environment createa . Ha többet szeretne megtudni ezekről a parancsokról, futtassa és az ml environment create -h.az ml model create -h

  1. Hozzon létre egy YAML-definíciót a modellhez:

    $schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
    name: my-model
    path: ../../model-1/model/
    
  2. A modell regisztrálása:

    az ml model create -n my-model -v 1 -f ./model.yaml
    
  3. Hozzon létre egy YAML-definíciót a környezethez:

    $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
    name: my-env
    image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
    conda_file: ../../model-1/environment/conda.yaml
    
  4. A környezet regisztrálása:

    az ml environment create -n my-env -v 1 -f ./environment.yaml
    

A modell eszközként való regisztrálásával kapcsolatos további információkért lásd: A modell regisztrálása eszközként a Gépi Tanulás a parancssori felület használatával. További információ a környezetek létrehozásáról: Azure Machine Tanulás környezetek kezelése a CLI &SDK-val (v2).

Regisztrált eszközöket használó üzembe helyezés konfigurálása

Az üzembe helyezési konfiguráció a telepíteni kívánt regisztrált modellt és a regisztrált környezetet használja.

Használja a regisztrált eszközöket (modellt és környezetet) az üzembehelyezési definícióban. Az alábbi kódrészlet a endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml fájlt jeleníti meg, az üzembe helyezés konfigurálásához szükséges összes bemenettel:

blue-deployment-with-registered-assets.yml

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model: azureml:my-model:1
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: azureml:my-env:1
instance_type: Standard_DS3_v2
instance_count: 1

Különböző PROCESSZOR- és GPU-példánytípusok és -rendszerképek használata

Az üzembehelyezési definícióban megadhatja a cpu- vagy GPU-példánytípusokat és -lemezképeket a helyi üzembe helyezéshez és az Azure-ba való üzembe helyezéshez.

A blue-deployment-with-registered-assets.yml fájl üzembehelyezési definíciója egy általános célú típuspéldányt Standard_DS3_v2 és egy nem GPU-alapú Docker-lemezképet mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latesthasznált. GPU-számításhoz válasszon gpu-számítási típusú termékváltozatot és 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 Tanulás CPU- és GPU-alaprendszerképeinek listáját az Azure Machine Tanulás alaprendszerképei között találja.

Feljegyzés

A Kubernetes felügyelt végpontok helyett számítási célként való használatához lásd a Kubernetes számítási cél bemutatása című témakört.

Ezután helyezze üzembe az online végpontot az Azure-ban.

Üzembe helyezés az Azure-ban

  1. Hozza létre a végpontot az Azure-felhőben.

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    
  2. Hozza létre a végpont alatt elnevezett blue üzembe helyezést.

    az ml online-deployment create -name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml --all-traffic
    

    Az üzembe helyezés létrehozása 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 üzembe helyezéseket gyorsabban dolgozza fel a rendszer.

    Tipp.

    • Ha nem szeretné letiltani a CLI-konzolt, hozzáadhatja a jelölőt --no-wait a parancshoz. Ez a beállítás azonban leállítja az üzembe helyezési állapot interaktív megjelenítését.

    Fontos

    Az --all-traffic üzembe helyezés létrehozásához használt kód az ml online-deployment create jelölője a végpont forgalmának 100%-át az újonnan létrehozott kék üzembe helyezéshez rendeli. Bár ez fejlesztési és tesztelési célokra hasznos, éles környezetben célszerű a forgalmat egy explicit paranccsal átirányítani az új üzembe helyezéshez. Például: az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".

Az üzembe helyezés hibáinak hibakereséséhez tekintse meg az online végpontok üzembe helyezésének hibaelhárítását.

A végpont állapotának ellenőrzése

  1. show A parancs használatával megjelenítheti a végpont és az provisioning_state üzembe helyezés adatait:

    az ml online-endpoint show -n $ENDPOINT_NAME
    
  2. A parancs használatával táblázatos formátumban listázhatja a munkaterület összes végpontjait list :

    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.

  1. A tároló naplókimenetének megtekintéséhez használja a következő PARANCSSOR-parancsot:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

    Alapértelmezés szerint a rendszer lekérte a naplókat a következtetési kiszolgáló tárolójából. A tároló inicializáló tárolójának naplóinak megtekintéséhez 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 adatok pontozásához a modell használatával

  1. A végpont meghívásához és néhány adat pontozásához használja az invoke Ön által választott parancsot vagy REST-ügyfelet:

    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
    
  2. A végponton való hitelesítéshez használt kulcs lekérése:

    Tipp.

    Szabályozhatja, hogy mely Microsoft Entra biztonsági tagok szerezhetik be a hitelesítési kulcsot, ha hozzárendeli őket egy egyéni szerepkörhöz, amely lehetővé teszi és Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/actionlehetővé tesziMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/token/action. A munkaterületek engedélyezésének kezeléséről további információt az Azure Machine Tanulás-munkaterülethez való hozzáférés kezelése című témakörben talál.

    ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
    
  3. A curl használatával pontozza az adatokat.

    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 hitelesítési hitelesítő adatok és get-credentials a parancsok használatával show kéri le a hitelesítő adatokat. Azt is figyelje meg, hogy a --query jelölővel csak a szükséges attribútumokat szűri. A jelzővel kapcsolatos további információkért tekintse meg az --query Azure CLI-parancskimenet lekérdezését.

  4. A meghívási naplók megtekintéséhez futtassa get-logs újra.

(Nem kötelező) Az üzembe helyezés 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.

Feljegyzés

Ha egyetlen update parancsban frissíti a példányok számát (az üzembe helyezés skálázásához) más modellbeállításokkal (például kód, modell vagy környezet) együtt, először a skálázási műveletet hajtja végre, majd a többi frissítés lesz alkalmazva. Célszerű ezeket a műveleteket éles környezetben külön végrehajtani.

A működés ismertetése update :

  1. Nyissa meg a fájlt online/model-1/onlinescoring/score.py.

  2. Módosítsa a függvény utolsó sorát init() : After logging.info("Init complete"), add logging.info("Updated successfully").

  3. Mentse a fájlt.

  4. Futtassa ezt a parancsot:

    az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml
    

    Feljegyzé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 az üzemelő példányok (sőtinstance_count) minden módosítása a YAML-ben megy keresztül.

    Tipp.

    • Általános frissítési paramétereket, például a paramétert használhatja a --set CLI update paranccsal a YAML-attribútumok felülbírálására, vagy adott attribútumok beállítására anélkül, hogy átadta volna őket a YAML-fájlban. Az önálló attribútumok használata --set különösen hasznos fejlesztési és tesztelési forgatókönyvekben. Például az első üzembe helyezés értékének instance_count felskálázásához használhatja a jelölőt --set instance_count=2 . Mivel azonban a YAML nem frissül, ez a technika nem segíti elő a GitOpst.
    • A YAML-fájl megadása NEM kötelező. Ha például különböző egyidejűségi beállításokat szeretne tesztelni egy adott üzembe helyezéshez, próbálkozzon valami hasonlóval az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4. Ez megtartja az összes meglévő konfigurációt, de csak a megadott paramétereket frissíti.
  5. Mivel módosította a init() függvényt, amely a végpont létrehozásakor vagy frissítésekor fut, az üzenet Updated successfully a naplókban lesz. A naplók lekérése a következő futtatásával:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

A update parancs helyi központi telepítésekkel is működik. Használja ugyanazt az ml online-deployment update a parancsot a --local jelölővel.

Az ebben a szakaszban található központi telepítés frissítése példa egy helyben üzemelő frissítésre.

  • Felügyelt online végpont esetén az üzembe helyezés az új konfigurációra frissül, egyszerre 20%-os csomópontokkal. Ez azt jelzi, hogy ha az üzembe helyezés 10 csomópontból áll, akkor egyszerre 2 csomópont frissül.
  • Kubernetes online végpont esetén a rendszer iteratív módon létrehoz egy új üzembehelyezési példányt az új konfigurációval, és törli a régit.
  • Éles használat esetén érdemes megfontolni a kék-zöld üzembe helyezést, amely biztonságosabb alternatívát kínál egy webszolgáltatás frissítéséhez.

(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 tekintse meg az online végpontok automatikus méretezését ismertető cikket.

(Nem kötelező) SLA monitorozása az Azure Monitor használatával

A metrikák megtekintéséhez és a riasztások SLA-n alapuló beállításához hajtsa végre az online végpontok monitorozásával kapcsolatos lépéseket.

(Nem kötelező) Integrálás a Log Analyticsszel

A get-logs parancssori felület parancsa vagy az get_logs SDK metódusa csak az utolsó néhány száz sornyi naplót 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. A naplózás használatáról további információt az online végpontok figyelése című témakörben talál.

A végpont és az üzembe helyezés törlése

Törölje a végpontot és annak összes mögöttes üzemelő példányát:

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait