Folyamatok üzembe helyezése kötegelt végpontokkal

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

A folyamatösszetevőket egy kötegvégponton helyezheti üzembe, így kényelmesen üzembe helyezheti őket az Azure Machine Tanulás. Ebből a cikkből megtudhatja, hogyan hozhat létre egy egyszerű folyamatot tartalmazó kötegelt üzembe helyezést. A következőket fogja elsajátítani:

  • Folyamatösszetevő létrehozása és regisztrálása
  • Batch-végpont létrehozása és folyamatösszetevő üzembe helyezése
  • Az üzemelő példány tesztelése

A példa ismertetése

Ebben a példában egy egyszerű parancsfeladatból álló folyamatösszetevőt fogunk üzembe helyezni, amely a "hello world!" szöveget nyomtatja. Ez az összetevő nem igényel bemeneteket vagy kimeneteket, és ez a legegyszerűbb folyamattelepítési forgatókönyv.

A cikkben szereplő példa az azureml-examples adattárban található kódmintákon alapul. Ha helyileg szeretné futtatni a parancsokat a YAML és más fájlok másolása/beillesztése nélkül, először klónozza az adattárat, majd módosítsa a könyvtárakat a mappára:

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

A példában szereplő fájlok a következők:

cd endpoints/batch/deploy-pipelines/hello-batch

Követés a Jupyter-jegyzetfüzetekben

A példa Python SDK-verziójával együtt követheti az sdk-deploy-and-test.ipynb jegyzetfüzetet a klónozott adattárban.

Előfeltételek

A cikkben ismertetett lépések végrehajtása előtt győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:

  • Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki az Azure Machine Tanulás ingyenes vagy fizetős verzióját.

  • Egy Azure Machine Learning-munkaterület. Ha nincs ilyenje, az Azure Machine Tanulás-munkaterületek kezelése című cikk lépéseit követve hozzon létre egyet.

  • Győződjön meg arról, hogy rendelkezik a következő engedélyekkel a munkaterületen:

    • Batch-végpontok és -üzemelő példányok létrehozása vagy kezelése: Használjon tulajdonosi, közreműködői vagy egyéni szerepkört, amely lehetővé teszi Microsoft.MachineLearningServices/workspaces/batchEndpoints/*.

    • ARM-üzemelő példányok létrehozása a munkaterület erőforráscsoportjában: Használjon tulajdonosi, közreműködői vagy egyéni szerepkört, amely lehetővé teszi Microsoft.Resources/deployments/write abban az erőforráscsoportban, amelyben a munkaterület telepítve van.

  • Az Azure Machine Tanulás használatához telepítenie kell a következő szoftvert:

    Az Azure CLI és az mlAzure Machine Tanulás bővítménye.

    az extension add -n ml
    

    Feljegyzés

    A Batch-végpontok folyamatösszetevő-üzembe helyezését az ml Azure CLI bővítményének 2.7-es verziójában vezettük be. Az utolsó verzió lekérésére használható az extension update --name ml .

Csatlakozás a munkaterülethez

A munkaterület az Azure Machine Learning legfelső szintű erőforrása, amely egy központi helyet biztosít az Azure Machine Learning használata során létrehozott összetevőkkel való munkához. Ebben a szakaszban ahhoz a munkaterülethez csatlakozunk, amelyben üzembe helyezési feladatokat fog végrehajtani.

Adja meg az előfizetés azonosítójának, munkaterületének, helyének és erőforráscsoportjának értékeit a következő kódban:

az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

A folyamat összetevőjének létrehozása

A Batch-végpontok modelleket vagy folyamatösszetevőket is üzembe helyezhetnek. A folyamatösszetevők újrafelhasználhatók, és egyszerűbbé teheti az MLOps-gyakorlatot , ha megosztott regisztrációs adatbázisokkal helyezi át ezeket az összetevőket egyik munkaterületről a másikra.

A példában szereplő folyamatösszetevő egyetlen lépést tartalmaz, amely csak egy "hello world" üzenetet nyomtat ki a naplókban. Nincs szükség bemenetre vagy kimenetre.

A hello-component/hello.yml fájl tartalmazza a folyamat összetevőjének konfigurációját:

hello-component/hello.yml

$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponent.schema.json
name: hello_batch
display_name: Hello Batch component
version: 1
type: pipeline
jobs:
  main_job:
    type: command
    component:
      code: src
      environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
      command: >-
        python hello.py

Az összetevő regisztrálása:

az ml component create -f hello-component/hello.yml

Batch-végpont létrehozása

  1. Adja meg a végpont nevét. A kötegvégpont nevének minden régióban egyedinek kell lennie, mivel a név a hívási URI létrehozásához használatos. Az egyediség biztosításához fűzze hozzá a záró karaktereket az alábbi kódban megadott névhez.

    ENDPOINT_NAME="hello-batch"
    
  2. A végpont konfigurálása:

    A endpoint.yml fájl tartalmazza a végpont konfigurációját.

    endpoint.yml

    $schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
    name: hello-batch
    description: A hello world endpoint for component deployments.
    auth_mode: aad_token
    
  3. Hozza létre a végpontot:

    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. A végpont URI-jának lekérdezése:

    az ml batch-endpoint show --name $ENDPOINT_NAME
    

A folyamat összetevőjének üzembe helyezése

A folyamatösszetevő üzembe helyezéséhez kötegtelepítést kell létrehoznunk. Az üzembe helyezés az eszköz üzemeltetéséhez szükséges erőforrások készlete, amely elvégzi a tényleges munkát.

  1. Hozzon létre egy számítási fürtöt. A Batch-végpontok és az üzemelő példányok számítási fürtökön futnak. Bármely Olyan Azure Machine-Tanulás számítási fürtön futtathatók, amely már létezik a munkaterületen. Ezért több kötegtelepítés is ugyanazt a számítási infrastruktúrát használhatja. Ebben a példában egy Azure Machine Tanulás nevű batch-clusterszámítási fürtön fogunk dolgozni. Ellenőrizzük, hogy a számítási feladat létezik-e a munkaterületen, vagy hozzuk létre másként.

    az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
    
  2. Konfigurálja az üzembe helyezést:

    A deployment.yml fájl tartalmazza az üzembe helyezés konfigurációját. További tulajdonságokat a teljes kötegelt végpont YAML-sémája is ellenőrizhet.

    deployment.yml

    $schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
    name: hello-batch-dpl
    endpoint_name: hello-pipeline-batch
    type: pipeline
    component: azureml:hello_batch@latest
    settings:
        default_compute: batch-cluster
    
  3. Hozza létre az üzembe helyezést:

    Futtassa a következő kódot egy batch-üzembe helyezés létrehozásához a batch-végpont alatt, és állítsa be alapértelmezett üzembe helyezésként.

    az ml batch-deployment create --endpoint $ENDPOINT_NAME -f deployment.yml --set-default
    

    Tipp.

    Figyelje meg, hogy a --set-default jelző használatával jelezheti, hogy ez az új üzembe helyezés lett az alapértelmezett.

  4. Az üzembe helyezés használatra kész.

Az üzemelő példány tesztelése

Az üzembe helyezés létrehozása után készen áll a feladatok fogadására. Az alapértelmezett üzembe helyezést az alábbiak szerint hívhatja meg:

JOB_NAME=$(az ml batch-endpoint invoke -n $ENDPOINT_NAME --query name -o tsv)

Tipp.

Ebben a példában a folyamat nem rendelkezik bemenetekkel vagy kimenetekkel. Ha azonban a folyamatösszetevő igényel néhányat, a meghíváskor jelezhető. A bemenetek és kimenetek jelzéséről további információt a Feladatok és bemeneti adatok létrehozása kötegelt végpontokhoz című témakörben, illetve a folyamat üzembe helyezése kötegelt pontozás előfeldolgozással (előzetes verzió) című témakörben talál.

A következőkkel figyelheti a bemutató előrehaladását, és streamelheti a naplókat:

az ml job stream -n $JOB_NAME

Az erőforrások eltávolítása

Ha végzett, törölje a társított erőforrásokat a munkaterületről:

Futtassa a következő kódot a kötegvégpont és annak mögöttes üzembe helyezésének törléséhez. --yes a törlés megerősítésére szolgál.

az ml batch-endpoint delete -n $ENDPOINT_NAME --yes

(Nem kötelező) Törölje a számítást, hacsak nem tervezi újra felhasználni a számítási fürtöt későbbi üzembe helyezésekkel.

az ml compute delete -n batch-cluster

Következő lépések