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


MLflow-modellek üzembe helyezése kötegelt környezetekben az Azure Machine Learningben

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

Ez a cikk bemutatja, hogyan helyezhet üzembe MLflow-modelleket az Azure Machine Learningben kötegelt következtetéshez kötegelt végpontok használatával. Amikor MLflow-modelleket helyez üzembe kötegelt végpontokon, az Azure Machine Learning a következő feladatokat hajtja végre:

  • Egy MLflow alaprendszerképet vagy válogatott környezetet biztosít, amely tartalmazza a Machine Learning-kötegelt feladatok 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ó.

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és üzembe helyezésének szempontjait.

Előfeltételek

  • Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

  • Egy Azure Machine Learning-munkaterület. Munkaterület létrehozásához lásd: Azure Machine Learning-munkaterületek kezelése.

  • A következő engedélyek az Azure Machine Learning-munkaterületen:

    • Kötegelt végpontok és üzemelő példányok létrehozásához vagy kezeléséhez: Az engedélyekhez hozzárendelt Microsoft.MachineLearningServices/workspaces/batchEndpoints/* tulajdonosi, közreműködői vagy egyéni szerepkör használata.
    • Azure Resource Manager-üzemelő példányok létrehozásához a munkaterület erőforráscsoportjában: Használjon tulajdonosi, közreműködői vagy egyéni szerepkört, amely a munkaterületet üzembe helyező erőforráscsoport engedélyéhez lett hozzárendelve Microsoft.Resources/deployments/write .
  • Az Azure Machine Learning CLI vagy a Pythonhoz készült Azure Machine Learning SDK:

    Futtassa a következő parancsot az Azure CLI és az mlAzure Machine Learning bővítményének telepítéséhez:

    az extension add -n ml
    

    A kötegelt végpontok folyamatösszetevő-üzembe helyezését az ml Azure CLI bővítményének 2.7-es verziójában vezetjük be. az extension update --name ml A parancs használatával szerezze be a legújabb verziót.


Csatlakozás a munkaterülethez

A munkaterület az Azure Machine Learning legfelső szintű erőforrása. Központosított helyet biztosít az Azure Machine Learning használatakor létrehozott összes összetevő használatához. Ebben a szakaszban ahhoz a munkaterülethez csatlakozik, ahol végrehajtja az üzembe helyezési feladatokat.

A következő parancsban adja meg az előfizetés azonosítóját, a munkaterület nevét, az erőforráscsoport nevét és helyét:

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

A példa megismerése

A cikkben szereplő példa bemutatja, hogyan helyezhet üzembe MLflow-modellt egy kötegvégponton kötegelt előrejelzések végrehajtásához. Az MLflow modell az UCI szívbetegség-adatkészletén alapul. Az adatbázis 76 attribútumot tartalmaz, de a példa csak a 14 részhalmazt használja. A modell megpróbálja előrejelezni a szívbetegség jelenlétét egy olyan betegnél, akinél 0 (nincs jelenlét) és 1 (jelenlét) egész számmal rendelkezik.

A modell betanítása osztályozó XGBBoost használatával történik. Az összes szükséges előfeldolgozás folyamatként scikit-learn van csomagolva, így a modell teljes körű folyamattá válik, 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 vagy beillesztése nélkül, az alábbi parancsokkal klónozza az adattárat, és lépjen a kódolási nyelv mappájába:

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

A példához tartozó fájlok a következő mappában találhatók:

cd endpoints/batch/deploy-models/heart-classifier-mlflow

Követés a Jupyter Notebooksban

Ezt a mintát egy nyilvános Jupyter Notebook használatával követheti. A klónozott adattárban nyissa meg a mlflow-for-batch-tabular.ipynb jegyzetfüzetet.

Az MLflow-modell üzembe helyezése

Ebben a szakaszban egy MLflow-modellt helyez üzembe egy kötegvégponton, hogy kötegelt következtetést futtasson az új adatokon. Mielőtt továbblép az üzembe helyezéssel, győződjön meg arról, hogy a modell regisztrálva van, és rendelkezésre áll egy számítási fürt a munkaterületen.

Regisztrálja a modellt

A Batch-végpontok csak regisztrált modelleket helyezhetnek üzembe. Ebben a cikkben a modell helyi másolatát használja az adattárban. Ennek eredményeképpen a modellt csak a munkaterület beállításjegyzékében kell közzétennie.

Feljegyzés

Ha az üzembe helyezendő modell már regisztrálva van, folytathatja a számítási fürt létrehozása szakaszt.

Regisztrálja a modellt a következő parancs futtatásával:

MODEL_NAME='heart-classifier-mlflow'
az ml model create --name $MODEL_NAME --type "mlflow_model" --path "model"

Számítási fürt létrehozása

Gondoskodnia kell arról, hogy a kötegtelepítések futhassanak néhány elérhető infrastruktúrán (számításon). A Batch-környezetek bármely Olyan Machine Learning-számításon futtathatók, amely már létezik a munkaterületen. Több kötegtelepítés is ugyanazt a számítási infrastruktúrát használhatja.

Ebben a cikkben egy cpu-fürt nevű Machine Learning számítási fürtön dolgozik. Az alábbi példa ellenőrzi, hogy létezik-e számítás a munkaterületen, vagy létrehoz egy új számítást.

Számítási fürt létrehozása:

az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5

Batch-végpont létrehozása

A végpont létrehozásához névre és leírásra van szükség. A végpont neve megjelenik a végponthoz társított URI-ban, ezért egyedinek kell lennie egy Azure-régióban. A WestUS2 régióban például csak egy kötegvégpont lehet a névvel mybatchendpoint .

  1. Helyezze a végpont nevét egy változóba, hogy később könnyen hivatkozzon rá:

    Futtassa az alábbi parancsot:

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

    1. Új végpont létrehozásához hozzon létre egy konfigurációt YAML az alábbi kódhoz 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
      
    2. Hozza létre a végpontot a következő paranccsal:

      az ml batch-endpoint create -n $ENDPOINT_NAME -f endpoint.yml
      

Batch-üzembe helyezés létrehozása

Az MLflow-modellek nem követelik meg, hogy környezeti vagy pontozási szkriptet jelöljön az üzembe helyezés létrehozásakor. A környezet vagy a pontozási szkript automatikusan létrejön Önnek. Azonban megadhatja a környezetet vagy a pontozószkriptet, ha testre szeretné szabni, hogyan működik az üzembe helyezés.

  1. Ha új üzembe helyezést szeretne létrehozni a létrehozott végpont alatt, hozzon létre egy konfigurációt YAML az alábbi kódban látható módon. 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
    
  2. 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 az timeout üzembe helyezés értékét annak alapján, hogy mennyi ideig tart a modell következtetésének futtatása egyetlen kötegen. Minél nagyobb a köteg mérete, annál hosszabb az timeout érték. Ne feledje, hogy az érték a mini_batch_size kötegben lévő fájlok számát jelzi, nem pedig a minták számát. Ha táblázatos adatokkal dolgozik, minden fájl több sort is tartalmazhat, ami növeli a kötegvégpont számára az egyes fájlok feldolgozásához szükséges időt. Ilyen esetekben használjon magas timeout értékeket az időtúllépési hibák elkerülése érdekében.

A végpont meghívása

Bár egy adott üzembe helyezést meghívhat egy végponton belül, gyakran előfordul, hogy magát a végpontot hívja meg, és hagyja, hogy a végpont döntse el, melyik üzembe helyezést használja. Az ilyen típusú üzembe helyezés neve "alapértelmezett" üzemelő példány. Ezzel a módszerrel módosíthatja az alapértelmezett üzembe helyezést, amely lehetővé teszi az üzembe helyezést kiszolgáló modell módosítását anélkül, hogy módosítaná a végpontot megszólító 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

A kötegvégpont készen áll a használatra.

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

A végpont teszteléséhez a modellel használható, ebben az adattárban található címkézetlen adatok mintáját kell használnia. A Batch-végpontok csak a felhőben található és a Machine Learning-munkaterületről elérhető adatokat képesek feldolgozni. Ebben a példában feltölti a mintát egy Machine Learning-adattárba. Létrehoz egy adategységet, amellyel meghívhatja a végpontot a pontozáshoz. Ne feledje, hogy a kötegelt végpontok olyan adatokat fogadnak el, amelyek különböző helyeken helyezhetők el.

  1. Először hozza létre az adategységet. Az adategység egy több CSV-fájlt tartalmazó mappából áll, amelyet 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.

    1. Adategység-definíció létrehozása a YAML-ben:

      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
      
    2. Hozza létre az adategységet:

      az ml data create -f heart-dataset-unlabeled.yml
      
  2. Az adatok feltöltése után hívja meg a végpontot.

    Tipp.

    Az alábbi parancsokban figyelje meg, hogy az üzembe helyezés neve nem szerepel a invoke műveletben. A végpont automatikusan átirányítja a feladatot az alapértelmezett üzembe helyezésre, mert a végpont csak egy üzembe helyezéssel rendelkezik. Az argumentum/paraméter deployment_namemegadásával megcélzhat egy adott üzemelő példányt.

    Futtassa az alábbi parancsot:

    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 van telepítve. A telepítési utasításokért lásd: JQ letöltése.

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

    Futtassa az alábbi parancsot:

    az ml job show -n $JOB_NAME --web
    

Kimenetek elemzése

A kimeneti előrejelzések a predictions.csv fájlban jönnek létre, ahogyan az az üzembe helyezési konfigurációban is látható. A feladat létrehoz egy score nevű kimenetet, amelybe a fájl kerül. 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. Táblázatos adatok esetén a predictions.csv fájl egy sort tartalmaz az egyes feldolgozott fájlokban található összes sorhoz. Más adattípusok (képek, hang, szöveg) esetén minden feldolgozott fájlhoz egy sor tartozik.

  • A fájlban a következő oszlopok találhatók (a megadott sorrendben):

    • row (nem kötelező): A bemeneti adatfájl megfelelő sorindexe. Ez az oszlop csak akkor érvényes, ha a bemeneti adatok táblázatosak. Az előrejelzések ugyanabban a sorrendben jelennek meg, mint a bemeneti fájlban. A megfelelő előrejelzésnek megfelelő sorszámra támaszkodhat.

    • 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: Annak a fájlnévnek a neve, amelyben az adatok olvashatók. Táblázatos adatokban ezzel a mezővel állapíthatja meg, hogy melyik előrejelzés tartozik az egyes bemeneti adatokhoz.

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 ./

A fájl letöltése után megnyithatja a fájlt az előnyben részesített szerkesztőeszközzel. 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 egy táblát jelenít meg:

Sor előrejelzé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 a bemeneti adatok CSV formátumban tartalmaznak táblázatos adatokat. Négy különböző bemeneti fájl létezik: heart-unlabeled-0.csv, heart-unlabeled-1.csv, heart-unlabeled-2.csv és heart-unlabeled-3.csv.

A kötegkövetkeztetés szempontjainak áttekintése

A Machine Learning támogatja az MLflow-modellek kötegelt végpontokon való üzembe helyezését pontozási szkript megjelölése nélkül. Ezzel a módszerrel kényelmesen helyezhet üzembe olyan modelleket, amelyek nagy mennyiségű, a kötegelt feldolgozáshoz hasonló adat feldolgozását igénylik. A Machine Learning az MLflow-modell specifikációjában szereplő információkat használja a következtetési folyamat vezényléséhez.

A munkavállalókon végzett munka elosztásának megismerése

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ák nem jelennek meg a következtetés során. Ha mappák használatával particionálja az adatokat, a folytatás előtt 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. Több sorból álló CSV-fájlok esetén ez a művelet memóriaterhelést okozhat a mögöttes számításban. A viselkedés növelheti az egyetlen fájl pontozásához szükséges időt, különösen a költséges modellek, például a nagy nyelvi modellek esetében. Ha több memóriakivételt vagy időtúllépési bejegyzést tapasztal a naplókban, fontolja meg az adatok kisebb sorokban való felosztását, vagy a kötegelés implementálását a modell pontozási szkriptjének sorszintjén.

Fájltípusok támogatásának áttekintése

Az alábbi adattípusok támogatják a kötegelt következtetést, ha MLflow-modelleket helyez üzembe környezet vagy pontozószkript nélkül. Ha más fájltípust szeretne feldolgozni, vagy eltérő következtetést szeretne végrehajtani, létrehozhatja az üzembe helyezést az MLflow-modell üzembe helyezésének testreszabásával egy pontozó szkripttel.

Fájlkiterjesztés Modellbemenetké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. A bemenet át lesz alakítva, hogy megfeleljen a tenzorok alakzatának, ha vannak ilyenek. Ha nem áll rendelkezésre aláírás, a rendszer több típust np.uint8 is kikövetkeztet. További információkért tekintse meg a képeket feldolgozó MLflow-modellekre vonatkozó szempontokat.

Figyelmeztetés

A bemeneti adatokban esetlegesen nem támogatott fájlok a feladat sikertelenségéhez vezetnek. Ilyen esetekben az ERROR:azureml:Error processing bemeneti fájlhoz hasonló hibaüzenet jelenik meg: "/mnt/batch/tasks/.../a-given-file.avro". Az "avro" fájltípus nem támogatott.

Az MLflow-modellek aláírás-kikényszerítésének ismertetése

A Batch üzembehelyezési feladatai az adatok olvasása közben kényszerítik a bemeneti adattípusokat az elérhető MLflow-modell aláírásával. Ennek eredményeképpen az adatbevitel megfelel a modelladiktatúra által jelzett típusoknak. Ha az adatok nem elemezhetők a várt módon, a feladat az ERROR:azureml:Error processing input file: '/mnt/batch/tasks/.../a-given-file.csv' hibával meghiúsul. Kivétel: érvénytelen literál a 10-es alapértékkel rendelkező int() esetében: "érték".

Tipp.

Az MLflow-modellek aláírásai nem kötelezőek, de erősen ajánlottak. Kényelmes módot biztosítanak az adatkompatibilitási problémák korai észlelésére. Az aláírásokkal rendelkező modellek naplózásáról további információt az egyéni aláírással, környezettel vagy mintákkal rendelkező naplózási modellek című témakörben talál.

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 vizsgálata

A Batch-környezetek csak ízekkel támogatják az MLflow-modellek üzembe helyezését pyfunc . Ha egy másik ízt szeretne üzembe helyezni, olvassa el a modell üzembe helyezésének testreszabása pontozószkripttel című témakört.

Modelltelepítés 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 (más néven kötegelt illesztőt) jelzi.

Ezt a munkafolyamatot általában a következő forgatókönyvekhez választja ki:

  • Az MLflow-üzemelő példányok kötegtelepítései által nem támogatott folyamatfájl-típusok.
  • Testre szabhatja a modell működését, például egy adott ízt használva betöltheti a mlflow.<flavor>.load() függvénysel.
  • Végezze el az előzetes vagy utólagos feldolgozást a pontozási rutinban, ha magát a modellt nem hajtja végre.
  • Módosíthatja a táblázatos adatokkal nem jól ábrázolt modell bemutatóját, például egy képet ábrázoló tenzordiagramot.
  • Lehetővé teszi a modell számára az adatok adattömbökben való olvasását, mert memóriakorlátozások miatt nem tudja egyszerre feldolgozni az egyes fájlokat.

Fontos

Egy MLflow-modell üzembe helyezéséhez tartozó pontozószkript jelzéséhez meg kell adnia azt a környezetet, ahol az üzembe helyezés fut.

A pontozási szkript használata

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ó.

    1. Az Azure Machine Learning portálon keresse meg a modelleket.

    2. Jelölje ki az üzembe helyezni kívánt modellt, majd válassza az Összetevők lapot.

    3. Jegyezze fel a megjelenített mappát. Ezt a mappát a modell regisztrálásakor jelezték.

      Képernyőkép arról a mappáról, amelyben a modellösszetevők találhatók.

  2. Hozzon létre egy pontozó szkriptet. Figyelje meg, hogy az előző mappanév model hogyan szerepel a init() függvényben.

    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. Hozzon létre egy környezetet, ahol a pontozási szkript végrehajtható. Mivel a példában szereplő modell MLflow, a conda követelményeit a modellcsomagban is meg kell adni. Az MLflow-modellekről és a mellékelt fájlokról további információt az MLmodel formátumában talál.

    Ebben a lépésben a környezetet a fájlból származó Conda-függőségek használatával hozza létre. A csomagot is tartalmaznia azureml-core kell, amely a Batch-üzemelő példányokhoz szükséges.

    Tipp.

    Ha a modell már regisztrálva van a modellregisztrációs adatbázisban, letöltheti és másolhatja a conda.yml modellhez társított fájlt. A fájl az Azure Machine Learning Studióban, a Models>Select your model from the list Artifacts (Összetevők) listában>érhető el. A gyökérmappában jelölje ki a fájlt, majd válassza a conda.yml Tartalom letöltése vagy másolása lehetőséget.

    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 azureml-core csomag hozzáadásával jött létre. A fájlt nem használhatja conda.yml közvetlenül a modellből.

    A környezetdefiníció magában az üzembehelyezési definícióban névtelen környezetként szerepel. 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ábbi kódrészletben látható módon. 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. Hozza létre az üzembe helyezést:

    Futtassa az alábbi kódot:

    az ml batch-deployment create --file deployment-custom/deployment.yml --endpoint-name $ENDPOINT_NAME
    

A kötegvégpont készen áll a használatra.

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

A gyakorlat elvégzése után törölje a már nem szükséges erőforrásokat.

Futtassa a következő kódot a kötegvégpont és az összes mögöttes üzembe helyezés törléséhez:

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

Ez a parancs nem törli a kötegelt pontozási feladatokat.