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 Learning-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.
A jelen 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.
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ó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ört, amely lehetővé teszi Microsoft.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 Learning-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.
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:
Egy Azure Machine Learning-munkaterület. Ha nincs ilyenje, a gyorsútmutató lépéseit követve hozzon létre egyet a munkaterület erőforrásainak létrehozása című cikkben.
A Python SDK v2 telepítéséhez használja a következő parancsot:
pip install azure-ai-ml azure-identity
Ha frissíteni szeretné az SDK meglévő telepítését a legújabb verzióra, használja a következő parancsot:
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ó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ö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.
(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.
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.
Egy Azure Machine Learning-munkaterület és egy számítási példány. Ha nem rendelkezik ezekkel az erőforrásokkal, és létre szeretné hozni őket, kövesse a munkaterület erőforrásainak létrehozása című rövid útmutató lépéseit.
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ó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ö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.
Feljegyzés
Bár a gépi tanuláshoz használt Azure CLI és CLI bővítményt ezek a lépések használják, nem ezek a fő hangsúly. segédprogramként használják őket, sablonokat adnak át az Azure-nak, és ellenőrzik a sablontelepítések állapotát.
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:
A jelen 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.
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ó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ö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.
Győződjön meg arról, hogy elegendő virtuálisgép-kvóta van lefoglalva az üzembe helyezéshez. Az Azure Machine Learning a számítási erőforrások 20%-át lefoglalja egyes 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.
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.
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 példák adattárának klónozása
A betanítási példák futtatásához először klónozza a példák adattárát (azureml-examples), és váltson a azureml-examples/sdk/python/endpoints/online/managed könyvtárra:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/sdk/python/endpoints/online/managed
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.
A cikkben szereplő információk az online-endpoints-simple-deployment.ipynb jegyzetfüzeten alapulnak. Ugyanazt a tartalmat tartalmazza, mint ez a cikk, bár a kódok sorrendje kissé eltérő.
Csatlakozás az Azure Machine Learning-munkaterülethez
A munkaterület az Azure Machine Learning legfelső szintű erőforrása, amely központosított helyet biztosít az Azure Machine Learning használatakor létrehozott összes összetevővel való munkához. Ebben a szakaszban ahhoz a munkaterülethez csatlakozik, amelyben üzembe helyezési feladatokat fog végrehajtani. A folytatáshoz nyissa meg a jegyzetfüzetet online-endpoints-simple-deployment.ipynb .
Importálja a szükséges kódtárakat:
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Feljegyzés
Ha a Kubernetes online végpontját használja, importálja az és KubernetesOnlineDeployment az osztályt KubernetesOnlineEndpoint a azure.ai.ml.entities tárból.
Konfigurálja a munkaterület részleteit, és szerezze be a munkaterülethez a leírót:
A munkaterülethez való csatlakozáshoz azonosító paraméterekre van szükség – előfizetésre, erőforráscsoportra és munkaterület nevére. Ezeket az adatokat a MLClient forrásban azure.ai.ml használva lekérheti a szükséges Azure Machine Learning-munkaterületet. Ez a példa az alapértelmezett Azure-hitelesítést használja.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Ha telepítve van a Git a helyi gépen, az utasításokat követve klónozhatja a példák adattárát. Ellenkező esetben kövesse az utasításokat, hogy fájlokat töltsön le a példák adattárából.
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), majd váltson a azureml-examples/cli/endpoints/online/model-1 könyvtárra.
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/cli/endpoints/online/model-1
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.
Fájlok letöltése a példák adattárából
Ha klónozta a példák adattárát, a helyi gép már rendelkezik a példához tartozó fájlok másolatával, és továbbléphet a következő szakaszra. Ha nem klónozta az adattárat, letöltheti a helyi gépére.
Nyissa meg a <> lap Kód gombját, majd válassza a Zip letöltése lehetőséget a Helyi lapon.
Keresse meg a mappát /cli/endpoints/online/model-1/model és a fájlt /cli/endpoints/online/model-1/onlinescoring/score.py.
Környezeti változók beállítása
Állítsa be a következő környezeti változókat a cikkben szereplő példákban használt módon. Cserélje le az értékeket az Azure-előfizetés azonosítóra, a munkaterületet tartalmazó Azure-régióra, a munkaterületet tartalmazó erőforráscsoportra és a munkaterület nevére:
export SUBSCRIPTION_ID="your Azure subscription ID"
export LOCATION="Azure region where your workspace is located"
export RESOURCE_GROUP="Azure resource group that contains your workspace"
export WORKSPACE="Azure Machine Learning workspace name"
Néhány példasablon esetében fájlokat kell feltöltenie az Azure Blob Store-ba a munkaterülethez. Az alábbi lépések lekérdezik a munkaterületet, és ezeket az információkat a példákban használt környezeti változókban tárolják:
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 a példák könyvtárához való ugráshoz:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
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.
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.
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:
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 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.
Végpont konfigurálása
Először adja meg az online végpont nevét, majd konfigurálja a végpontot.
A végpont nevének egyedinek kell lennie az Azure-régióban. Az elnevezési szabályokkal kapcsolatos további információkért tekintse meg a végpontkorlátokat.
# Define an endpoint name
endpoint_name = "my-endpoint"
# Example way to define a random name
import datetime
endpoint_name = "endpt-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name = endpoint_name,
description="this is a sample endpoint",
auth_mode="key"
)
Az előző kód kulcsalapú hitelesítéshez használható key . Az Azure Machine Learning tokenalapú hitelesítésének használatához használja a következőt aml_token: . A Microsoft Entra tokenalapú hitelesítés (előzetes verzió) használatához használja a következőt 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.
Végpont konfigurálása
Amikor a stúdióból telepíti az Azure-ban, létre fog hozni egy végpontot és egy üzembe helyezést, hogy hozzáadja azt. Ekkor a rendszer kérni fogja, hogy adja meg a végpont és az üzembe helyezés nevét.
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=endpoint-`echo $RANDOM`
A végpont konfigurálása
A végpont és az üzembe helyezés meghatározásához ez a cikk az Azure Resource Manager-sablonokat online-endpoint.json és online-endpoint-deployment.json használja. Az online végpontok és üzembe helyezés definiálásához használt sablonokat az Üzembe helyezés az Azure-ban című szakaszban találja.
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 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:
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.
Kubernetes-végpontok használata felügyelt online 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 az Azure Machine Learning Studióval.
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:
Model - megadja a modell tulajdonságait a beágyazottban a path (fájlok feltöltésének helye) használatával. Az SDK 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, az SDK 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.
CodeConfiguration - 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.
Az online üzembe helyezés definíciójáról további információt az OnlineDeployment osztályban talál.
Üzembe helyezés konfigurálása
Az Azure-ban történő üzembe helyezéskor létre fog hozni egy végpontot és egy üzembe helyezést, hogy hozzáadja azt. Ekkor a rendszer kérni fogja, hogy adja meg a végpont és az üzembe helyezés nevét.
A telepítés konfigurálása
A végpont és az üzembe helyezés meghatározásához ez a cikk az Azure Resource Manager-sablonokat online-endpoint.json és online-endpoint-deployment.json használja. Az online végpontok és üzembe helyezés definiálásához használt sablonokat az Üzembe helyezés az Azure-ban című szakaszban találja.
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.
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 Learning Studio és az 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 Learning következtetési 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 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.
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.
Hívja meg a végpontot a modell pontozásához a invoke parancs használatával, és adja át a JSON-fájlban tárolt lekérdezési paramétereket.
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ő kódot. A visszaadott adatok között keresse meg az scoring_uri attribútumot.
A stúdió nem támogatja a helyi végpontokat. A végpont helyi tesztelésének lépéseit az Azure CLI vagy a Python lapon találja.
A sablon nem támogatja a helyi végpontokat. A végpont helyi tesztelésének lépéseit az Azure CLI vagy a Python lapon találja.
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
from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes
file_model = Model(
path="../../model-1/model/",
type=AssetTypes.CUSTOM_MODEL,
name="my-model",
description="Model created from local file.",
)
ml_client.models.create_or_update(file_model)
A környezet regisztrálása:
from azure.ai.ml.entities import Environment
env_docker_conda = Environment(
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
conda_file="../../model-1/environment/conda.yaml",
name="my-env",
description="Environment created from a Docker image plus Conda environment.",
)
ml_client.environments.create_or_update(env_docker_conda)
A modellregisztráció egy logikai entitás a munkaterületen, amely egyetlen modellfájlt vagy több fájlból álló könyvtárat tartalmazhat. Az éles környezetben ajánlott eljárásként regisztrálnia kell a modellt és a környezetet. A végpont és az üzembe helyezés ebben a cikkben való létrehozása előtt regisztrálnia kell a modellt tartalmazó modellmappát .
A példamodell regisztrálásához kövesse az alábbi lépéseket:
A bal oldali navigációs sávon válassza a Modellek lapot.
Válassza a Regisztráció, majd a Helyi fájlok lehetőséget.
Válassza a Modelltípus nem megadott típusát.
Válassza a Tallózás lehetőséget, majd a Tallózás mappát.
Válassza ki a \azureml-examples\cli\endpoints\online\model-1\model mappát a korábban klónozott vagy letöltött adattár helyi másolatából. Amikor a rendszer kéri, válassza a Feltöltés lehetőséget, és várja meg, amíg a feltöltés befejeződik.
A mappafeltöltés befejezése után válassza a Tovább gombot.
Adjon meg egy rövid nevet a modellnek. A cikkben szereplő lépések feltételezik, hogy a modell neve model-1.
Válassza a Tovább lehetőséget, majd a Regisztráció lehetőséget a regisztráció befejezéséhez.
A regisztrált modellek használatával kapcsolatos további információkért lásd: Regisztráció és modellek használata.
A környezet létrehozása és regisztrálása
A bal oldali navigációs sávon válassza a Környezetek lapot.
Válassza a Létrehozás lehetőséget.
A "Beállítások" lapon adjon meg egy nevet, például my-env a környezetnek.
A "Környezeti forrás kiválasztása" beállításnál válassza a Meglévő Docker-rendszerkép használata opcionális Conda-forrással lehetőséget.
A Tovább gombra kattintva lépjen a "Testreszabás" lapra.
Másolja a \azureml-examples\cli\endpoints\online\model-1\environment\conda.yaml fájl tartalmát a korábban klónozott vagy letöltött adattár helyi másolatából.
Illessze be a tartalmat a szövegmezőbe.
Válassza a Tovább lehetőséget, amíg el nem ér a "Véleményezés" lapra.
Ha sablonnal szeretné regisztrálni a modellt, először fel kell töltenie a modellfájlt egy Azure Blob Store-ba. Az alábbi példa a az storage blob upload-batch parancs használatával tölt fel egy fájlt a munkaterület alapértelmezett tárolójához:
az storage blob upload-batch -d $AZUREML_DEFAULT_CONTAINER/model -s cli/endpoints/online/model-1/model --account-name $AZURE_STORAGE_ACCOUNT
A fájl feltöltése után a sablon használatával hozzon létre egy modellregisztrációt. A következő példában a modelUri paraméter a modell elérési útját tartalmazza:
az deployment group create -g $RESOURCE_GROUP \
--template-file arm-templates/model-version.json \
--parameters \
workspaceName=$WORKSPACE \
modelAssetName="sklearn" \
modelUri="azureml://subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/workspaces/$WORKSPACE/datastores/$AZUREML_DEFAULT_DATASTORE/paths/model/sklearn_regression_model.pkl"
A környezet része egy conda-fájl, amely meghatározza a modell üzemeltetéséhez szükséges modellfüggőségeket. Az alábbi példa bemutatja, hogyan olvashatja be a conda-fájl tartalmát környezeti változókba:
Az alábbi példa bemutatja, hogyan használhatja a sablont a környezet regisztrálásához. Az előző lépésből származó conda-fájl tartalma a következő paraméterrel továbbítja a sablonnak condaFile :
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:
A studióból történő üzembe helyezéskor létre fog hozni egy végpontot és egy üzembe helyezést, amely hozzá lesz telepítve. Ekkor a rendszer kérni fogja, hogy adja meg a végpont és az üzembe helyezés nevét.
A végpont és az üzembe helyezés meghatározásához ez a cikk az Azure Resource Manager-sablonokat online-endpoint.json és online-endpoint-deployment.json használja. Az online végpontok és üzembe helyezés definiálásához használt sablonokat az Üzembe helyezés az Azure-ban című szakaszban találja.
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.
Az üzembe helyezési konfigurá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.
Korábban konfigurált egy általános célú típusú Standard_DS3_v2 példányt és egy nem GPU-alapú Docker-lemezképet mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latesthasználó üzembe helyezést. GPU-számításhoz válasszon gpu-számítási típusú termékváltozatot és GPU Docker-rendszerképet.
Amikor a stúdiót használja az Azure-ban való üzembe helyezéshez, a rendszer kérni fogja, hogy adja meg az üzembe helyezéshez használni kívánt számítási tulajdonságokat (példánytípust és példányszámot) és környezetet.
A környezet előző regisztrációja egy nem GPU-alapú Docker-rendszerképet mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04 határoz meg úgy, hogy a paraméterrel átadja az értéket a environment-version.jsondockerImage sablonnak. GPU-számítás esetén adjon meg egy értéket a GPU Docker-rendszerképhez a sablonnak (a dockerImage paraméter használatával), és adjon meg egy GPU számítási típusú termékváltozatot a online-endpoint-deployment.json sablonnak (a skuName paraméter használatával).
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
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".
Hozza létre a végpontot:
endpoint A korábban definiált és a MLClient korábban létrehozott végpont használatával most már létrehozhatja a végpontot a munkaterületen. Ez a parancs elindítja a végpont létrehozását, és egy megerősítést kérő választ ad vissza, amíg a végpont létrehozása folytatódik.
blue_deployment_with_registered_assets A korábban definiált és a MLClient korábban létrehozottak használatával most már létrehozhatja az üzembe helyezést a munkaterületen. Ez a parancs elindítja az üzembe helyezés létrehozását, és egy megerősítést kérő választ ad vissza, amíg a telepítés létrehozása folytatódik.
Ha nem szeretné letiltani a Python-konzolt, hozzáadhatja a jelölőt no_wait=True a paraméterekhez. Ez a beállítás azonban leállítja az üzembe helyezési állapot interaktív megjelenítését.
Felügyelt online végpont és üzembe helyezés létrehozása
A stúdióval közvetlenül a böngészőben hozhat létre felügyelt online végpontot. Amikor felügyelt online végpontot hoz létre a studióban, meg kell határoznia egy kezdeti üzembe helyezést. Üres felügyelt online végpont nem hozható létre.
A felügyelt online végpontok stúdióban való létrehozásának egyik módja a Modellek lap. Ez a módszer egy egyszerű módszert is kínál modell hozzáadására egy meglévő felügyelt online üzembe helyezéshez. A modell és a környezet regisztrálása szakaszban korábban regisztrált modell model-1 üzembe helyezéséhez:
A bal oldali navigációs sávon válassza a Modellek lapot.
A neve melletti kör ellenőrzésével jelölje ki a modell nevét model-1 .
Válassza a Valós idejű végpont üzembe helyezése>lehetőséget.
Ez a művelet megnyit egy ablakot, ahol megadhatja a végpont részleteit.
Adjon meg egy , az Azure-régióban egyedi végpontnevet . Az elnevezési szabályokkal kapcsolatos további információkért tekintse meg a végpontkorlátokat.
Az alapértelmezett beállítás megtartása: a számítási típushoz felügyelt .
Tartsa meg az alapértelmezett beállítást: kulcsalapú hitelesítés a hitelesítési típushoz. 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.
Válassza a Tovább lehetőséget, amíg el nem ér az "Üzembe helyezés" oldalra. Itt kapcsolja be az Application Insights diagnosztikát engedélyezve, hogy később megtekintheti a végpont tevékenységeinek grafikonjait a studióban, és elemezheti a metrikákat és naplókat az Application Insights használatával.
A Tovább gombra kattintva lépjen a "Kód + környezet" lapra. Itt válassza ki a következő beállításokat:
Válasszon ki egy pontozószkriptet a következtetéshez: Tallózással és a korábban klónozott vagy letöltött adattárból válassza ki a \azureml-examples\cli\endpoints\online\model-1\onlinescoring\score.py fájlt.
Környezeti szakasz kiválasztása: Válassza ki az egyéni környezeteket , majd válassza ki a korábban létrehozott saját-env:1 környezetet.
Válassza a Tovább lehetőséget, és fogadja el az alapértelmezett beállításokat, amíg a rendszer nem kéri az üzembe helyezés létrehozását.
Tekintse át az üzembehelyezési beállításokat, és válassza a Létrehozás gombot.
Másik lehetőségként létrehozhat egy felügyelt online végpontot a stúdió Végpontok lapján.
A bal oldali navigációs sávon válassza a Végpontok lapot.
Válassza a +Létrehozás lehetőséget.
Ez a művelet megnyit egy ablakot a modell kiválasztásához, valamint a végpont és az üzembe helyezés részleteinek megadásához. Adja meg a végpont és az üzembe helyezés beállításait a korábban leírtak szerint, majd hozza létre az üzembe helyezést.
A sablon használatával hozzon létre egy online végpontot:
A munkaterület összes végpontjának táblázatos felsorolása a list következő módszerrel:
for endpoint in ml_client.online_endpoints.list():
print(endpoint.name)
A metódus entitások listáját (iterátorát ManagedOnlineEndpoint ) adja vissza.
További információt további paraméterek megadásával kaphat. Adja ki például a végpontok listáját, például egy táblát:
print("Kind\tLocation\tName")
print("-------\t----------\t------------------------")
for endpoint in ml_client.online_endpoints.list():
print(f"{endpoint.kind}\t{endpoint.location}\t{endpoint.name}")
Felügyelt online végpontok megtekintése
Az összes felügyelt online végpontot megtekintheti a Végpontok lapon. Lépjen a végpont Részletek lapjára, és keresse meg a kritikus információkat, például a végpont URI-ját, állapotát, tesztelési eszközeit, tevékenységfigyelőit, üzembehelyezési naplóit és mintahasználati kódját:
A bal oldali navigációs sávon válassza a Végpontok lehetőséget. Itt láthatja a munkaterület összes végpontjának listáját.
(Nem kötelező) Hozzon létre egy szűrőt a számítástípuson, hogy csak a felügyelt számítási típusok jelenjenek meg.
Válassza ki a végpont nevét a végpont Részletek lapjának megtekintéséhez.
Tipp.
Bár a sablonok hasznosak az erőforrások üzembe helyezéséhez, nem használhatók erőforrások listázására, megjelenítésére és meghívására. A műveletek végrehajtásához használja az Azure CLI-t, a Python SDK-t vagy a studiót. Az alábbi kód az Azure CLI-t használja.
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
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 naplókimenetet a get_logs következő módszerrel tekintheti meg:
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 container_type="storage-initializer" lehetőséget. Az üzembehelyezési naplókkal kapcsolatos további információkért lásd : Tárolónaplók lekérése.
A naplókimenet megtekintéséhez válassza a Naplók lapot a végpont oldalán. Ha több üzembe helyezés is van a végponton, a legördülő menüben válassza ki azt az üzemelő példányt, amelynek naplóját látni szeretné.
Alapértelmezés szerint a rendszer lekérte a naplókat a következtetési kiszolgálóról. A tároló inicializáló tárolójának naplóinak megtekintéséhez használja az Azure CLI-t vagy a Python SDK-t (a részletekért tekintse meg az egyes lapokat). A tároló inicializáló tárolójának naplói információt nyújtanak arról, hogy a kód- és modelladatok sikeresen le lettek-e töltve a tárolóba. Az üzembehelyezési naplókkal kapcsolatos további információkért lásd : Tárolónaplók lekérése.
Tipp.
Bár a sablonok hasznosak az erőforrások üzembe helyezéséhez, nem használhatók erőforrások listázására, megjelenítésére és meghívására. A műveletek végrehajtásához használja az Azure CLI-t, a Python SDK-t vagy a studiót. Az alábbi kód az Azure CLI-t használja.
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
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
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é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)
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.
A meghívási naplók megtekintéséhez futtassa get-logs újra.
MLClient A korábban létrehozottak használatával lekérhet egy leírót a végponthoz. A végpont ezután meghívható a invoke következő paraméterekkel rendelkező paranccsal:
endpoint_name - A végpont neve
request_file - Kérelemadatokkal rendelkező fájl
deployment_name – A végponton tesztelni kívánt adott üzembe helyezés neve
Küldjön egy mintakérelmet egy json-fájl használatával.
# test the blue deployment with some sample data
ml_client.online_endpoints.invoke(
endpoint_name=endpoint_name,
deployment_name="blue",
request_file="../model-1/sample-request.json",
)
A felügyelt online üzemelő példány teszteléséhez használja a végpont részletes lapjának Teszt lapját. Adja meg a mintabemenetet, és tekintse meg az eredményeket.
Válassza a Teszt fület a végpont részletes lapján.
A legördülő menüben válassza ki a tesztelni kívánt üzembe helyezést.
Bár a sablonok hasznosak az erőforrások üzembe helyezéséhez, nem használhatók erőforrások listázására, megjelenítésére és meghívására. A műveletek végrehajtásához használja az Azure CLI-t, a Python SDK-t vagy a studiót. Az alábbi kód az Azure CLI-t használja.
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 cli/endpoints/online/model-1/sample-request.json
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 :
Nyissa meg a fájlt online/model-1/onlinescoring/score.py.
Módosítsa a függvény utolsó sorát init() : After logging.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-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.
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.
Ha frissíteni szeretné a kódot, a modellt vagy a környezetet, frissítse a konfigurációt, majd futtassa a metódust online_deployments.begin_create_or_update az MLClientüzembe helyezés létrehozásához vagy frissítéséhez.
Feljegyzés
Ha egyetlen begin_create_or_update módszerrel 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 begin_create_or_update :
Nyissa meg a fájlt online/model-1/onlinescoring/score.py.
Módosítsa a függvény utolsó sorát init() : After logging.info("Init complete"), add logging.info("Updated successfully").
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:
A begin_create_or_update módszer helyi üzembe helyezésekkel is működik. Használja ugyanazt a metódust a local=True jelölővel.
A stúdió jelenleg csak az üzemelő példányok számának frissítését teszi lehetővé. A példányok számának módosításával az alábbi utasításokat követve skálázhatja fel vagy le az egyes üzemelő példányokat:
Nyissa meg a végpont Részletek lapját, és keresse meg a frissíteni kívánt üzembe helyezés kártyáját.
Válassza a szerkesztés ikont (ceruza ikon) az üzembe helyezés neve mellett.
Frissítse az üzembe helyezéshez társított példányok számát. Választhat az alapértelmezett vagy a célkihasználtság között az "Üzembe helyezési skálázás típusa" beállításnál.
Ha az Alapértelmezett lehetőséget választja, a példányszám numerikus értékét is meg kell adnia.
Ha a Célkihasználtság lehetőséget választja, megadhatja a paraméterekhez használandó értékeket az üzembe helyezés automatikus skálázása során.
A Frissítés gombra kattintva befejezheti az üzembe helyezés példányszámának frissítését.
Jelenleg nincs lehetőség az üzembe helyezés ARM-sablonnal történő frissítésére.
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%-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.