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


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égpont létezik: felügyelt online végpontok és Kubernetes online végpontok. A különbségekkel kapcsolatos további információkért lásd: Felügyelt online végpontok és Kubernetes online 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, biztonságáról és monitorozásáról. Ez a segítség megszabadít a mögöttes infrastruktúra beállításának és kezelésének többletterhelésétől.

A cikk 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

A KÖVETKEZŐRE VONATKOZIK: Azure CLI ml-bővítmény v2 (aktuális)

  • 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 engedélyezésére szolgál. A cikkben ismertetett lépések végrehajtásához a felhasználói fiókhoz hozzá kell rendelni az Azure Machine Learning-munkaterület tulajdonosi vagy közreműködői szerepkörét, vagy egy egyéni szerepkörnek engedélyeznie Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*kell. Ha az Azure Machine Learning Studiót használja online végpontok vagy üzemelő példányok létrehozásához és kezeléséhez, az erőforráscsoport tulajdonosának további engedélyére Microsoft.Resources/deployments/write van szüksége. További információ: Az Azure Machine Learning-munkaterületekhez 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, ami megkönnyíti a hibák hibakeresését.

  • Győződjön meg arról, hogy elegendő virtuálisgép-kvóta van lefoglalva az üzembe helyezéshez. Az Azure Machine Learning 20% számítási erőforrást lefoglal az ön erőforrásaiból, hogy bizonyos virtuális gép verziók frissítését elvégezze. Ha például 10 példányt kér egy üzembe helyezéshez, a virtuálisgép-verzió 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. Egyes virtuálisgép-verziók mentesülnek a többletkvóta-foglalás alól. A kvótakiosztással kapcsolatos további információkért tekintse meg a virtuális gépek központi telepítésre vonatkozó kvótafoglalását.

  • Azt is megteheti, hogy korlátozott ideig az Azure Machine Learning megosztott kvótakészletéből származó kvótát használja. Az Azure Machine Learning egy megosztott kvótakészletet biztosít, amelyből a különböző régiók felhasználói a rendelkezésre állástól függően korlátozott ideig férhetnek hozzá a kvótához. 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 Learning 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 Learning megosztott kvótája című témakörben 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 az azureml-examples adattárat, majd váltson az adattár azureml-examples/cli könyvtárára:

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

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ének idejét.

Az oktatóanyagban szereplő parancsok az cli könyvtárban lévő deploy-local-endpoint.sh és deploy-managed-online-endpoint.sh fájlokban találhatók. A YAML-konfigurációs fájlok a végpontokban/online/felügyelt/minta/ alkönyvtárban találhatók.

Feljegyzés

Az online Kubernetes-végpontok YAML-konfigurációs fájljai a végpontok/online/kubernetes/ alkönyvtárakban 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 lásd: Végpontkorlátok.

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átozásokról az Azure Machine Learning online végpontjai és a kötegelt végpontok című témakörben 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 Learning-jogkivonat-alapú 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 olyan modellt telepít, amely regressziót végez, és egy score.py nevű értékelő szkriptet használ a modell futtatásához egy adott bemeneti kérelem eseté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ó az üzembe helyezni 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:

$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-ubuntu22.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 beágyazott tulajdonságait a path paraméterrel (ahonnan fájlokat tölthet fel). 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ókat használ, 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ép paraméterét használja. Ebben a példában ez mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest. A conda_file függőségek az alaprendszerkép tetején vannak telepítve.
  • code_configuration: Feltölti a helyi fájlokat, például a pontozási modell Python-forrását a fejlesztési környezetből az üzembe helyezés során.

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 Learning-munkaterülethez az Azure Machine Learning Studióval.
  2. A YAML végpont használatával a kuberneteket célozza meg a felügyelt YAML-végpont helyett. 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 más, a Kubernetes-üzemelő példányokra vonatkozó tulajdonságokkal rendelkezik.

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

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 korábban klónozott vagy letöltött adattárból származó score.py fájlt használja:

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. 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 a végpont helyi futtatását 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, de az Azure Machine Learning Studio és az ARM-sablonok 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.

Az Azure Machine Learning-következtetés HTTP-kiszolgálói 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 lehetővé teszi a pontozási szkript hibakeresését, mielőtt üzembe helyezné a lokális végpontokhoz, hogy az üzembe helyezési tároló konfigurációi ne befolyásoljá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. Az üzembe helyezést közvetlenül (a következő lépésben) is létrehozhatja, 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 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. A provisioning_state paraméter a következő 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
Creating Az erőforrás létrehozása folyamatban van.
Updating Az erőforrás frissítése folyamatban van.
Deleting Az erőforrás törlése folyamatban van.
Succeeded A létrehozási vagy frissítési művelet sikeres volt.
Failed A létrehozási, frissítési vagy 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ált 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ása után újra felhasználhatja őket anélkül, hogy minden üzembe helyezéskor fel kellene töltenie őket. Ez a gyakorlat növeli a reprodukálhatóságot és a nyomon követhetőséget.

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. Ehelyett a helyi üzembe helyezés 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 a végpontok/online/felügyelt/minták mappába, és használja a az ml model create és az ml environment create parancsokat. Ha többet szeretne megtudni ezekről a parancsokról, futtassa és az ml model create -h.az ml environment create -h

  1. Hozzon létre egy YAML-definíciót a modellhez. Nevezze el a fájlt model.yml:

    $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 endpoints/online/managed/sample/model.yml
    
  3. Hozzon létre egy YAML-definíciót a környezethez. Nevezze el a fájlt environment.yml:

    $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 endpoints/online/managed/sample/environment.yml
    

A modell eszközként való regisztrálásával kapcsolatos további információkért lásd: Modell regisztrálása az Azure CLI vagy a Python SDK használatával. További információ a környezet létrehozásáról: Egyéni környezet létrehozása.

Fontos

Amikor egyéni környezetet határoz meg az üzembe helyezéshez, győződjön meg arról, hogy a azureml-inference-server-http csomag szerepel a conda fájlban. Ez a csomag elengedhetetlen ahhoz, hogy a következtetési kiszolgáló megfelelően működjön. Ha nem ismeri, hogyan hozhatja létre saját egyéni környezetét, használja az egyik válogatott környezetünket, például minimal-py-inference (az egyéni modellekhez, amelyek nem használják mlflow) vagy mlflow-py-inference (azokhoz a modellekhez, amelyek használják mlflow). Ezeket a válogatott környezeteket az Azure Machine Learning Studio példányának Környezetek lapján találja.

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 példa a végpontokat/online/felügyelt/minta/blue-deployment-with-registered-assets.yml fájlt mutatja be, amely tartalmazza az üzembe helyezés konfigurálásához szükséges minden bemenetet.

$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 a 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ípusverziót és GPU Docker-rendszerképet.

A támogatott általános célú és GPU-példánytípusokról lásd a felügyelt online végpontok termékváltozatainak listáját. Az Azure Machine Learning CPU- és GPU-alaprendszerképeinek listáját az Azure Machine Learning alaprendszerképei között találja.

Feljegyzés

Ha a Kubernetes-t a felügyelt végpontok helyett számítási célként szeretné használni, olvassa el 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 blue nevű üzembe helyezést az végpontnál:

    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.

    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és állapotának interaktív megjelenítését.

    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. Ennek a jelzőnek a használata fejlesztési és tesztelési célokra hasznos, de éles környezetben előfordulhat, hogy egy explicit parancson keresztül szeretné átirányítani a forgalmat az új üzembe helyezéshez. Használja például a 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.

Az online 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.

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:

    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/token/actionlehetővé tesziMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action. A munkaterületek engedélyezésének kezelésével kapcsolatos további információkért tekintse meg az Azure Machine Learning-munkaterületekhez való hozzáférés kezelését ismertető témakört.

    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
    

    Figyeljen arra, hogy show és get-credentials parancsokat használ a hitelesítési hitelesítő adatok lekéréséhez. Figyeljen arra is, hogy a --query zászlóval csak a szükséges attribútumokat szűrje. 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. Ezután futtassa a az ml online-endpoint update parancsot.

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. A többi frissítés a következő lépésben 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
    

    A YAML használatával történő frissítés deklaratív. Ez azt jelzi, hogy a YAML változásai az alapul szolgáló Resource Manager-erőforrásokban (végpontokban és üzemelő példányokban) jelennek meg. A deklaratív megközelítés megkönnyíti a GitOps használatát: módosítása a YAML-ben megy keresztül.

    Á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, kipróbálhatja a következőt 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 a megközelítés megtartja az összes meglévő konfigurációt, de csak a megadott paramétereket frissíti.

  5. Mivel módosította a init() végpont létrehozásakor vagy frissítésekor futó függvényt, az üzenet Updated successfully megjelenik a naplókban. 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.

Feljegyzés

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% csomóponttal. 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 fontolja meg 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 skálázását.

(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 kövesse 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 naplósort adja meg 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 a Naplók használata című témakörben talál.

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

A végpont és annak összes mögöttes központi telepítése az alábbi paranccsal törölhető:

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