Share via


Meglévő folyamatfeladatok üzembe helyezése kötegelt végpontokon

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

A Batch-végpontok lehetővé teszik a folyamatösszetevők üzembe helyezését, így kényelmesen üzembe helyezheti a folyamatokat az Azure Machine Tanulás. A Batch-végpontok elfogadják a folyamatösszetevőket az üzembe helyezéshez. Ha azonban már van egy sikeresen futó folyamatfeladata, az Azure Machine Tanulás elfogadhatja ezt a feladatot a kötegelt végpont bemeneteként, és automatikusan létrehozhatja a folyamatösszetevőt. Ebben a cikkben megtudhatja, hogyan használhatja a meglévő folyamatfeladatot bemenetként a kötegelt üzembe helyezéshez.

A következőket fogja elsajátítani:

  • Futtassa és hozza létre az üzembe helyezni kívánt folyamatfeladatot
  • Batch-telepítés létrehozása a meglévő feladatból
  • Az üzemelő példány tesztelése

A példa ismertetése

Ebben a példában egy egyszerű parancsfeladatból álló folyamatot fogunk üzembe helyezni, amely a "hello world!" szöveget nyomtatja. Ahelyett, hogy az üzembe helyezés előtt regisztrálnánk a folyamat összetevőjét, egy meglévő folyamatfeladatot jelölünk, amelyet üzembe helyezéshez használunk. Az Azure Machine Tanulás ezután automatikusan létrehozza a folyamatösszetevőt, és üzembe helyezi azt kötegelt végponti folyamatösszetevőként.

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

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>

Futtassa az üzembe helyezni kívánt folyamatfeladatot

Ebben a szakaszban egy folyamatfeladat futtatásával kezdjük:

Az alábbi pipeline-job.yml fájl a folyamatfeladat konfigurációját tartalmazza:

pipeline-job.yml

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline

experiment_name: hello-pipeline-batch
display_name: hello-pipeline-batch-job
description: This job demonstrates how to run the a pipeline component in a pipeline job. You can use this example to test a component in an standalone job before deploying it in an endpoint.

compute: batch-cluster
component: hello-component/hello.yml

Hozza létre a folyamatfeladatot:

JOB_NAME=$(az ml job create -f pipeline-job.yml --query name -o tsv)

Batch-végpont létrehozása

A folyamatfeladat üzembe helyezése előtt üzembe kell helyeznünk egy kötegelt végpontot az üzembe helyezés üzemeltetéséhez.

  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 folyamatfeladat üzembe helyezése

A folyamatösszetevő üzembe helyezéséhez létre kell hoznunk egy kötegelt üzembe helyezést a meglévő feladatból.

  1. Meg kell adnunk az Azure Machine Tanulás az üzembe helyezni kívánt feladat nevét. Esetünkben ez a feladat a következő változóban van feltüntetve:

    echo $JOB_NAME
    
  2. Konfigurálja az üzembe helyezést.

    A deployment-from-job.yml fájl tartalmazza az üzembe helyezés konfigurációját. Figyelje meg, hogyan használjuk a kulcsot job_definition ahelyett component , hogy azt jeleznénk, hogy ez az üzembe helyezés egy folyamatfeladatból jön létre:

    deployment-from-job.yml

    $schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
    name: hello-batch-from-job
    endpoint_name: hello-pipeline-batch
    type: pipeline
    job_definition: azureml:job_name_placeholder
    settings:
        continue_on_step_failure: false
        default_compute: batch-cluster
    

    Tipp.

    Ez a konfiguráció feltételezi, hogy van egy számítási fürt neve batch-cluster. Ezt az értéket lecserélheti a fürt nevére.

  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 --set job_definition=azureml:$JOB_NAME -f deployment-from-job.yml
    

    Tipp.

    Figyelje meg a .--set job_definition=azureml:$JOB_NAME Mivel a feladatnevek egyediek, a parancs --set itt a feladat nevének módosítására szolgál, amikor a munkaterületen futtatja.

  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)

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

Következő lépések