Share via


MLflow-modellek üzembe helyezése kötegtelepítésekben

É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 helyezhet üzembe MLflow-modelleket az Azure Machine Tanulás mindkét kötegelt következtetéshez kötegelt végpontok használatával. MLflow-modellek kötegelt végpontokon való üzembe helyezésekor az Azure Machine Tanulás:

  • Egy MLflow alaprendszerképet/válogatott környezetet biztosít, amely tartalmazza az Azure Machine Tanulás Batch-feladat futtatásához szükséges függőségeket.
  • Létrehoz egy kötegelt feladatfolyamatot egy pontozószkripttel, amely az adatok párhuzamosítással történő feldolgozására használható.

Feljegyzés

A támogatott bemeneti fájltípusokról és az MLflow-modell működésével kapcsolatos részletekért tekintse meg a kötegelt következtetésre való üzembe helyezés szempontjait.

A példa ismertetése

Ez a példa bemutatja, hogyan helyezhet üzembe MLflow-modellt egy kötegvégponton a kötegelt előrejelzések végrehajtásához. Ez a példa egy MLflow-modellt használ az UCI heart disease data set alapján. Az adatbázis 76 attribútumot tartalmaz, de 14 részhalmazt használunk. A modell megpróbálja megjósolni a szívbetegség jelenlétét egy betegben. Az egész szám értéke 0 (nincs jelenlét) és 1 (jelenlét).

A modell betanítása egy XGBBoost osztályozóval történt, és az összes szükséges előfeldolgozás folyamatként scikit-learn lett csomagolva, így ez a modell egy teljes körű folyamat, amely a nyers adatoktól az előrejelzésekig tart.

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-models/heart-classifier-mlflow

Követés a Jupyter Notebooksban

Ezt a mintát a következő jegyzetfüzetekben követheti nyomon. A klónozott adattárban nyissa meg a következő jegyzetfüzetet: mlflow-for-batch-tabular.ipynb.

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>

Lépések

Az alábbi lépéseket követve üzembe helyezhet egy MLflow-modellt egy kötegvégponton a kötegelt következtetés új adatokon való futtatásához:

  1. A Batch Endpoint csak regisztrált modelleket tud üzembe helyezni. Ebben az esetben már van egy helyi példánya a modellnek az adattárban, ezért csak a munkaterületen lévő beállításjegyzékben kell közzétenni a modellt. Ezt a lépést kihagyhatja, ha az üzembe helyezni kívánt modell már regisztrálva van.

    MODEL_NAME='heart-classifier-mlflow'
    az ml model create --name $MODEL_NAME --type "mlflow_model" --path "model"
    
  2. Mielőtt továbblépnénk, meg kell győződnünk arról, hogy a létrehozni kívánt kötegelt üzembe helyezések bizonyos infrastruktúrán (számításon) futtathatók. A Batch-üzemelő példányok bármely Olyan Azure Machine-Tanulás számítási gépen futtathatók, amely már létezik a munkaterületen. Ez azt jelenti, hogy több kötegelt üzembe helyezés is ugyanazt a számítási infrastruktúrát használhatja. Ebben a példában egy Azure Machine Tanulás nevű cpu-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.

    Hozzon létre egy számítási fürtöt az alábbiak szerint:

    az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
    
  3. Itt az ideje létrehozni a batch végpontot és az üzembe helyezést. Először a végponttal kezdjük. A végpontokhoz csak nevet és leírást kell létrehozni. A végpont neve a végponthoz társított URI-ban fog végződni. Emiatt a kötegvégpontok nevének egyedinek kell lennie egy Azure-régióban. Például csak egy kötegvégpont lehet, amelyben a név mybatchendpoint szerepel westus2.

    Ebben az esetben helyezzük el a végpont nevét egy változóban, hogy később könnyen hivatkozhassunk rá.

    ENDPOINT_NAME="heart-classifier"
    
  4. Hozza létre a végpontot:

    Új végpont létrehozásához hozzon létre egy konfigurációt YAML az alábbihoz hasonlóan:

    endpoint.yml

    $schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
    name: heart-classifier-batch
    description: A heart condition classifier for batch inference
    auth_mode: aad_token
    

    Ezután hozza létre a végpontot a következő paranccsal:

    az ml batch-endpoint create -n $ENDPOINT_NAME -f endpoint.yml
    
  5. Most hozza létre az üzembe helyezést. Az MLflow-modellek nem követelik meg, hogy környezeti vagy pontozási szkriptet jelöljön az üzemelő példányok létrehozásakor. Megadhatja azonban őket, ha testre szeretné szabni az üzembe helyezési folyamat következtetési módját.

    Ha új üzembe helyezést szeretne létrehozni a létrehozott végpont alatt, hozzon létre egy konfigurációt YAML az alábbihoz hasonlóan. További tulajdonságokat a teljes kötegelt végpont YAML-sémája is ellenőrizhet.

    egyszerű üzembe helyezés/deployment.yml

    $schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
    endpoint_name: heart-classifier-batch
    name: classifier-xgboost-mlflow
    description: A heart condition classifier based on XGBoost
    type: model
    model: azureml:heart-classifier-mlflow@latest
    compute: azureml:batch-cluster
    resources:
      instance_count: 2
    settings:
      max_concurrency_per_instance: 2
      mini_batch_size: 2
      output_action: append_row
      output_file_name: predictions.csv
      retry_settings:
        max_retries: 3
        timeout: 300
      error_threshold: -1
      logging_level: info
    

    Ezután hozza létre az üzembe helyezést a következő paranccsal:

    az ml batch-deployment create --file deployment-simple/deployment.yml --endpoint-name $ENDPOINT_NAME --set-default
    

    Fontos

    Konfigurálja timeout az üzemelő példányban annak alapján, hogy mennyi ideig tart, amíg a modell következtetést futtat egyetlen kötegen. Minél nagyobb a köteg mérete, annál hosszabbnak kell lennie. A kötegben lévő fájlok számát, nem pedig a minták számát jelző remeber mini_batch_size . Táblázatos adatok használata esetén minden fájl több sort tartalmazhat, ami megnöveli a kötegvégpont számára az egyes fájlok feldolgozásához szükséges időt. Ezekben az esetekben használjon magas értékeket az időtúllépési hibák elkerülése érdekében.

  6. Bár egy adott üzembe helyezést meghívhat egy végponton belül, általában magát a végpontot kell meghívnia, és engedélyeznie kell a végpontnak, hogy eldöntse, melyik üzemelő példányt használja. Az ilyen üzembe helyezés neve "alapértelmezett" üzemelő példány. Ez lehetővé teszi az alapértelmezett üzembe helyezés megváltoztatását, és ezáltal az üzembe helyezést kiszolgáló modell módosítását anélkül, hogy módosítaná a végpontot megvevő felhasználóval kötött szerződést. Az alapértelmezett üzembe helyezés frissítéséhez használja az alábbi utasításokat:

    DEPLOYMENT_NAME="classifier-xgboost-mlflow"
    az ml batch-endpoint update --name $ENDPOINT_NAME --set defaults.deployment_name=$DEPLOYMENT_NAME
    
  7. Ezen a ponton a kötegvégpont készen áll a használatra.

Az üzembe helyezés tesztelése

A végpont teszteléséhez az adattárban található, a modellel használható, címkézetlen adatok mintáját fogjuk használni. A Batch-végpontok csak a felhőben található és az Azure Machine Tanulás-munkaterületről elérhető adatokat képesek feldolgozni. Ebben a példában fel fogjuk tölteni egy Azure Machine Tanulás adattárba. Különösen egy olyan adategységet fogunk létrehozni, amely a végpont pontozáshoz való meghívásához használható. Figyelje meg azonban, hogy a kötegelt végpontok olyan adatokat fogadnak el, amelyek különböző helyeken helyezhetők el.

  1. Először hozzuk létre az adategységet. Ez az adategység egy több CSV-fájllal rendelkező mappából áll, amelyeket kötegelt végpontok használatával párhuzamosan szeretnénk feldolgozni. Kihagyhatja ezt a lépést, ha az adatok már adategységként van regisztrálva, vagy más bemeneti típust szeretne használni.

    a. Adategység-definíció létrehozása a következő helyen YAML:

    heart-dataset-unlabeled.yml

    $schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
    name: heart-dataset-unlabeled
    description: An unlabeled dataset for heart classification.
    type: uri_folder
    path: data
    

    b. Hozza létre az adategységet:

    az ml data create -f heart-dataset-unlabeled.yml
    
  2. Most, hogy az adatok feltöltődtek és használatra készek, hívjuk meg a végpontot:

    JOB_NAME = $(az ml batch-endpoint invoke --name $ENDPOINT_NAME --input azureml:heart-dataset-unlabeled@latest --query name -o tsv)
    

    Feljegyzés

    Előfordulhat, hogy a segédprogram jq nem minden telepítésre telepíthető. A telepítési utasításokat ebben a hivatkozásban találja.

    Tipp.

    Figyelje meg, hogy nem jelezzük az üzembe helyezés nevét a meghívási műveletben. Ennek az az oka, hogy a végpont automatikusan átirányítja a feladatot az alapértelmezett üzembe helyezéshez. Mivel a végpontnak csak egy üzemelő példánya van, akkor ez az alapértelmezett. Az argumentum/paraméter deployment_namemegadásával megcélzhat egy adott üzemelő példányt.

  3. A parancs visszatérése után azonnal elindul egy kötegelt feladat. A feladat állapotát a befejezésig figyelheti:

    az ml job show -n $JOB_NAME --web
    

A kimenetek elemzése

A kimeneti előrejelzések a fájlban jönnek létre az predictions.csv üzembe helyezési konfigurációban leírtaknak megfelelően. A feladat létrehoz egy elnevezett kimenetet, amelynek a score neve a fájl helye. Kötegelt feladatonként csak egy fájl jön létre.

A fájl felépítése a következő:

  • A modellnek küldött adatpontonként egy sor van. Táblázatos adatok esetén ez azt jelenti, hogy a fájl (predictions.csv) az egyes feldolgozott fájlokban található összes sorhoz egy sort tartalmaz. Más adattípusok (pl. képek, hang, szöveg) esetében minden feldolgozott fájlhoz egy sor tartozik.

  • A következő oszlopok vannak a fájlban (sorrendben):

    • row (nem kötelező) a bemeneti adatfájl megfelelő sorindexe. Ez csak akkor érvényes, ha a bemeneti adatok táblázatosak. Az előrejelzések ugyanabban a sorrendben jelennek meg a bemeneti fájlban, hogy a megfelelő előrejelzésnek megfelelő sorszámra támaszkodhasson.
    • prediction, a bemeneti adatokhoz társított előrejelzés. Ez az érték a modell függvénye predict(). által megadott "as-is" értéket adja vissza.
    • file_name, a fájl neve, amelyből az adatokat olvasták. Táblázatos adatok esetén ezzel a mezővel megtudhatja, hogy melyik előrejelzés melyik bemeneti adathoz tartozik.

A feladat eredményeit a feladat nevével töltheti le:

Az előrejelzések letöltéséhez használja a következő parancsot:

az ml job download --name $JOB_NAME --output-name score --download-path ./

Miután letöltötte a fájlt, megnyithatja a kedvenc eszközével. Az alábbi példa adatkeret használatával Pandas tölti be az előrejelzéseket.

import pandas as pd

score = pd.read_csv(
    "named-outputs/score/predictions.csv", names=["row", "prediction", "file"]
)

A kimenet a következőképpen néz ki:

sor Jóslás fájl
0 0 heart-unlabeled-0.csv
0 0 heart-unlabeled-0.csv
2 0 heart-unlabeled-0.csv
... ... ...
307 0 heart-unlabeled-3.csv

Tipp.

Figyelje meg, hogy ebben a példában CSV a bemeneti adatok táblázatos formátumú adatok voltak, és 4 különböző bemeneti fájl volt (heart-unlabeled-0.csv, heart-unlabeled-1.csv, heart-unlabeled-2.csv és heart-unlabeled-3.csv).

Megfontolandó szempontok a kötegelt következtetésben való üzembe helyezéskor

Az Azure Machine Tanulás támogatja az MLflow-modellek kötegelt végpontokon való üzembe helyezését pontozószkript jelzése nélkül. Ez kényelmes módot jelent olyan modellek üzembe helyezésére, amelyek nagy mennyiségű adat kötegelt feldolgozását igénylik. Az Azure Machine Tanulás az MLflow-modell specifikációjában szereplő információkat használja a következtetési folyamat vezényléséhez.

Hogyan oszlik meg a munka a dolgozókon?

A Batch Endpoints fájlszinten osztja el a munkát strukturált és strukturálatlan adatokhoz. Ennek következtében csak az URI-fájlok és az URI-mappák támogatottak ehhez a funkcióhoz. Minden feldolgozó egyszerre több fájlköteget Mini batch size dolgoz fel. Táblázatos adatok esetén a kötegelt végpontok nem veszik figyelembe az egyes fájlok sorainak számát a munka elosztásakor.

Figyelmeztetés

A beágyazott mappastruktúrákat a rendszer nem vizsgálja meg a következtetés során. Ha mappákkal particionálja az adatokat, előtte mindenképpen simítsd el a struktúrát.

A Batch-üzemelő példányok fájlonként egyszer hívják meg predict az MLflow-modell függvényét. A több sort tartalmazó CSV-fájlok esetében ez memóriaterhelést okozhat a mögöttes számításban, és növelheti az egyetlen fájl pontozásához szükséges időt (különösen a drága modellek, például a nagy nyelvi modellek esetében). Ha több memórián kívüli kivételt vagy időtúllépési bejegyzést tapasztal a naplókban, fontolja meg az adatok kisebb fájlokban való felosztását kevesebb sortal, vagy a kötegelést a modell/pontozási szkript sorszintjén implementálhatja.

A fájltípusok támogatása

Az alábbi adattípusok támogatják a kötegelt következtetést, ha MLflow-modelleket helyez üzembe környezet és pontozó szkript nélkül. Ha egy másik fájltípust szeretne feldolgozni, vagy más módon szeretné végrehajtani a következtetést, ahogyan a kötegelt végpontok alapértelmezés szerint teszik, akkor mindig létrehozhatja az üzembe helyezést pontozó szkripttel, ahogyan azt az MLflow-modellek pontozási szkripttel történő használata című témakörben leírtak szerint is megteheti.

Fájlkiterjesztés A modell bemeneteként visszaadott típus Aláírási követelmény
.csv, , .parquet.pqt pd.DataFrame ColSpec. Ha nincs megadva, az oszlopok beírása nem lesz kényszerítve.
.png, .jpg, .jpeg, .tiff.bmp.gif np.ndarray TensorSpec. Ha elérhető, a bemenet át lesz alakítva, hogy megfeleljen a tenzorok alakzatának. Ha nem áll rendelkezésre aláírás, a rendszer több típust np.uint8 is kikövetkeztet. További útmutatásért olvassa el a képeket feldolgozó MLflow-modellekre vonatkozó szempontokat.

Figyelmeztetés

Javasoljuk, hogy a bemeneti adatokban esetlegesen nem támogatott fájlok a feladat meghiúsulásához vezethetnek. A következő hibaüzenet jelenik meg: "ERROR:azureml:Error processing input file: '/mnt/batch/tasks/.../a-given-file.avro'. Az "avro" fájltípus nem támogatott."

Aláírás-kényszerítés MLflow-modellekhez

A bemeneti adattípusokat kötegelt üzembehelyezési feladatok kényszerítik ki az adatok olvasása közben az elérhető MLflow-modell aláírásával. Ez azt jelenti, hogy az adatbevitelnek meg kell felelnie a modell aláírásában szereplő típusoknak. Ha az adatok nem elemezhetők a várt módon, a feladat a következőhöz hasonló hibaüzenettel meghiúsul: "ERROR:azureml:Error processing input file: '/mnt/batch/tasks/.../a-given-file.csv'. Kivétel: érvénytelen literál a 10-es alapértékkel rendelkező int() esetében: "value".

Tipp.

Az MLflow-modellek aláírásai nem kötelezőek, de kifejezetten ajánlottak, mivel kényelmes módot biztosítanak az adatkompatibilitási problémák korai észlelésére. További információ arról, hogyan naplózhatók az aláírással rendelkező modellek az egyéni aláírással, környezettel vagy mintákkal rendelkező naplózási modellek.

A modell aláírásának vizsgálatához nyissa meg az MLmodel MLflow-modellhez társított fájlt. Az aláírások MLflow-ban való működéséről további információt az Aláírások az MLflow-ban című témakörben talál.

Íztámogatás

A Batch-környezetek csak az MLflow-modelleket pyfunc támogatják. Ha egy másik ízt kell üzembe helyeznie, olvassa el az MLflow-modellek használata pontozószkripttel című témakört.

MLflow-modellek üzembe helyezésének testreszabása pontozó szkripttel

Az MLflow-modellek üzembe helyezhetők kötegelt végpontokon anélkül, hogy pontozószkriptet jeleznek az üzembehelyezési definícióban. A következtetés végrehajtásának testreszabásához azonban dönthet úgy, hogy ezt a fájlt (általában a kötegillesztőt) jelzi.

Ezt a munkafolyamatot általában a következő esetekben fogja kiválasztani:

  • Olyan fájltípust kell feldolgoznia, amelyet nem támogatnak a kötegtelepítések MLflow-üzemelő példányai.
  • Testre kell szabnia a modell futási módját, például egy adott ízt kell használnia a betöltéshez mlflow.<flavor>.load().
  • A pontozási rutinban pre/pos feldolgozást kell végeznie, ha azt nem maga a modell végzi el.
  • A modell kimenete nem jeleníthető meg szépen táblázatos adatokban. Ez például egy kép tenzora.
  • A modell nem tudja egyszerre feldolgozni az egyes fájlokat a memóriakorlátok miatt, és az adattömbökben kell olvasnia.

Fontos

Ha egy MLflow-modell központi telepítésére vonatkozó pontozószkriptet jelöl, meg kell adnia azt a környezetet is, ahol az üzembe helyezés futni fog.

Lépések

Az alábbi lépésekkel üzembe helyezhet egy MLflow-modellt egy egyéni pontozószkripttel.

  1. Azonosítsa azt a mappát, amelyben az MLflow-modell található.

    a. Lépjen az Azure Machine Tanulás portálra.

    b. Nyissa meg a Modellek szakaszt.

    c. Jelölje ki az üzembe helyezni kívánt modellt, és kattintson az Összetevők fülre.

    d. Jegyezze fel a megjelenő mappát. Ezt a mappát a modell regisztrálásakor jelezték.

    Képernyőkép a modellösszetevők elhelyezésére szolgáló mappáról.

  2. Hozzon létre egy pontozó szkriptet. Figyelje meg, hogy a korábban azonosított mappanév model hogyan lett belefoglalva a init() függvénybe.

    deployment-custom/code/batch_driver.py

    # Copyright (c) Microsoft. All rights reserved.
    # Licensed under the MIT license.
    
    import os
    import glob
    import mlflow
    import pandas as pd
    import logging
    
    
    def init():
        global model
        global model_input_types
        global model_output_names
    
        # AZUREML_MODEL_DIR is an environment variable created during deployment
        # It is the path to the model folder
        # Please provide your model's folder name if there's one
        model_path = glob.glob(os.environ["AZUREML_MODEL_DIR"] + "/*/")[0]
    
        # Load the model, it's input types and output names
        model = mlflow.pyfunc.load(model_path)
        if model.metadata and model.metadata.signature:
            if model.metadata.signature.inputs:
                model_input_types = dict(
                    zip(
                        model.metadata.signature.inputs.input_names(),
                        model.metadata.signature.inputs.pandas_types(),
                    )
                )
            if model.metadata.signature.outputs:
                if model.metadata.signature.outputs.has_input_names():
                    model_output_names = model.metadata.signature.outputs.input_names()
                elif len(model.metadata.signature.outputs.input_names()) == 1:
                    model_output_names = ["prediction"]
        else:
            logging.warning(
                "Model doesn't contain a signature. Input data types won't be enforced."
            )
    
    
    def run(mini_batch):
        print(f"run method start: {__file__}, run({len(mini_batch)} files)")
    
        data = pd.concat(
            map(
                lambda fp: pd.read_csv(fp).assign(filename=os.path.basename(fp)), mini_batch
            )
        )
    
        if model_input_types:
            data = data.astype(model_input_types)
    
        # Predict over the input data, minus the column filename which is not part of the model.
        pred = model.predict(data.drop("filename", axis=1))
    
        if pred is not pd.DataFrame:
            if not model_output_names:
                model_output_names = ["pred_col" + str(i) for i in range(pred.shape[1])]
            pred = pd.DataFrame(pred, columns=model_output_names)
    
        return pd.concat([data, pred], axis=1)
    
  3. Hozzunk létre egy környezetet, ahol a pontozási szkript végrehajtható. Mivel a modell MLflow, a conda követelményeit a modellcsomagban is meg kell adni (az MLflow-modellekről és a benne található fájlokról az MLmodel formátumot tekintheti meg). Ezután létrehozzuk a környezetet a fájlból származó Conda-függőségek használatával. Azonban a Batch-telepítésekhez szükséges csomagot azureml-core is bele kell foglalnunk.

    Tipp.

    Ha a modell már regisztrálva van a modellregisztrációs adatbázisban, letöltheti/másolhatja a modellhez társított fájlt az Azure Machine Tanulás studio> Models > Select your model from the list Artifacts (Összetevők) listából>.conda.yml Nyissa meg a navigációs gyökérmappát, és válassza ki a conda.yml felsorolt fájlt. Kattintson a Letöltés gombra, vagy másolja a tartalmát.

    Fontos

    Ez a példa egy conda környezetet használ, amely a következő helyen /heart-classifier-mlflow/environment/conda.yamlvan megadva: . Ez a fájl az eredeti MLflow conda függőségi fájl kombinálásával és a csomag azureml-corehozzáadásával jött létre. A modellt közvetlenül nem használhatjaconda.yml.

    A környezetdefiníció magát az üzembehelyezési definíciót fogja tartalmazni névtelen környezetként. Az üzembe helyezés során a következő sorok láthatók:

    environment:
      name: batch-mlflow-xgboost
      image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
      conda_file: environment/conda.yaml
    
  4. Konfigurálja az üzembe helyezést:

    Ha új üzembe helyezést szeretne létrehozni a létrehozott végpont alatt, hozzon létre egy konfigurációt YAML az alábbihoz hasonlóan. További tulajdonságokat a teljes kötegelt végpont YAML-sémája is ellenőrizhet.

    deployment-custom/deployment.yml

    $schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
    endpoint_name: heart-classifier-batch
    name: classifier-xgboost-custom
    description: A heart condition classifier based on XGBoost
    type: model
    model: azureml:heart-classifier-mlflow@latest
    environment:
      name: batch-mlflow-xgboost
      image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
      conda_file: environment/conda.yaml
    code_configuration:
      code: code
      scoring_script: batch_driver.py
    compute: azureml:batch-cluster
    resources:
      instance_count: 2
    settings:
      max_concurrency_per_instance: 2
      mini_batch_size: 2
      output_action: append_row
      output_file_name: predictions.csv
      retry_settings:
        max_retries: 3
        timeout: 300
      error_threshold: -1
      logging_level: info
    
  5. Most hozzuk létre az üzembe helyezést:

    az ml batch-deployment create --file deployment-custom/deployment.yml --endpoint-name $ENDPOINT_NAME
    
  6. Ezen a ponton a kötegvégpont készen áll a használatra.

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

Futtassa a következő kódot a kötegvégpont és az összes mögöttes üzembe helyezés törléséhez. A kötegelt pontozási feladatok nem törlődnek.

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

Következő lépések