Nasazení modelů MLflow v dávkových nasazeních

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

V tomto článku se dozvíte, jak nasadit modely MLflow do azure Machine Učení pro obě dávkové odvozování pomocí koncových bodů služby Batch. Při nasazování modelů MLflow do dávkových koncových bodů Učení Azure:

  • Poskytuje základní image nebo kurátorované prostředí MLflow, které obsahuje požadované závislosti pro spuštění úlohy Azure Machine Učení Batch.
  • Vytvoří kanál dávkové úlohy s bodovacím skriptem, který můžete použít ke zpracování dat pomocí paralelizace.

Poznámka:

Další informace o podporovaných typech vstupních souborů a podrobnostech o tom, jak model MLflow funguje, najdete v tématu Důležité informace o nasazení do dávkového odvozování.

O tomto příkladu

Tento příklad ukazuje, jak můžete nasadit model MLflow do dávkového koncového bodu pro provádění dávkových předpovědí. V tomto příkladu se používá model MLflow založený na datové sadě srdečních onemocnění UCI. Databáze obsahuje 76 atributů, ale používáme podmnožinu 14 z nich. Model se snaží předpovědět přítomnost onemocnění srdce u pacienta. Hodnota integer je od 0 (bez přítomnosti) do 1 (přítomnost).

Model byl vytrénován pomocí XGBBoost klasifikátoru a všechny požadované předběžné zpracování byly zabaleny jako scikit-learn kanál, takže tento model představuje kompletní kanál, který přechází z nezpracovaných dat na predikce.

Příklad v tomto článku vychází z ukázek kódu obsažených v úložišti azureml-examples . Pokud chcete příkazy spustit místně, aniž byste museli kopírovat nebo vkládat YAML a další soubory, nejprve naklonujte úložiště a pak změňte adresáře do složky:

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

Soubory pro tento příklad jsou v:

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

Sledování v poznámkových blocích Jupyter

Tuto ukázku můžete sledovat v následujících poznámkových blocích. V naklonovaném úložišti otevřete poznámkový blok mlflow-for-batch-tabular.ipynb.

Požadavky

Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte bezplatnou nebo placenou verzi služby Azure Machine Učení.

  • Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, vytvořte ho pomocí kroků v článku Správa Učení pracovních prostorů Azure.

  • Ujistěte se, že máte v pracovním prostoru následující oprávnění:

    • Vytváření nebo správa dávkových koncových bodů a nasazení: Použijte roli Vlastník, Přispěvatel nebo Vlastní, která umožňuje Microsoft.MachineLearningServices/workspaces/batchEndpoints/*.

    • Vytvořte nasazení ARM ve skupině prostředků pracovního prostoru: Použijte roli Vlastník, Přispěvatel nebo Vlastní, která umožňuje Microsoft.Resources/deployments/write ve skupině prostředků, ve které je pracovní prostor nasazený.

  • Abyste mohli pracovat se službou Azure Machine Učení, musíte nainstalovat následující software:

    Azure CLI a mlrozšíření pro azure machine Učení.

    az extension add -n ml
    

    Poznámka:

    Nasazení součástí kanálu pro koncové body služby Batch byla zavedena ve verzi 2.7 ml rozšíření pro Azure CLI. Slouží az extension update --name ml k získání poslední verze.

Připojení k pracovnímu prostoru

Pracovní prostor je prostředek nejvyšší úrovně pro Azure Machine Learning, který nabízí centralizované místo, kde můžete pracovat se všemi artefakty, které vytvoříte při použití služby Azure Machine Learning. V této části se připojíme k pracovnímu prostoru, ve kterém budete provádět úlohy nasazení.

Hodnoty ID předplatného, pracovního prostoru, umístění a skupiny prostředků předejte v následujícím kódu:

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

Kroky

Pomocí těchto kroků nasaďte model MLflow do dávkového koncového bodu pro spuštění dávkového odvozování nad novými daty:

  1. Koncový bod služby Batch může nasazovat jenom registrované modely. V tomto případě už máme v úložišti místní kopii modelu, takže model musíme publikovat jenom do registru v pracovním prostoru. Tento krok můžete přeskočit, pokud už je model, který se pokoušíte nasadit, zaregistrovaný.

    MODEL_NAME='heart-classifier-mlflow'
    az ml model create --name $MODEL_NAME --type "mlflow_model" --path "model"
    
  2. Než budeme pokračovat, musíme se ujistit, že dávkové nasazení, která se chystáme vytvořit, může běžet na určité infrastruktuře (výpočetních prostředcích). Nasazení služby Batch se můžou spouštět na libovolném počítači Azure Učení výpočetních prostředků, které už v pracovním prostoru existují. To znamená, že několik dávkových nasazení může sdílet stejnou výpočetní infrastrukturu. V tomto příkladu budeme pracovat na výpočetním clusteru Azure Machine Učení s názvem cpu-cluster. Pojďme ověřit, jestli výpočetní prostředky v pracovním prostoru existují, nebo ho vytvořte jinak.

    Vytvořte výpočetní cluster následujícím způsobem:

    az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
    
  3. Teď je čas vytvořit dávkový koncový bod a nasazení. Nejprve začneme koncovým bodem. Koncové body vyžadují pouze název a popis, který se má vytvořit. Název koncového bodu skončí v identifikátoru URI přidruženém k vašemu koncovému bodu. Z tohoto důvodu musí být názvy dávkových koncových bodů jedinečné v rámci oblasti Azure. Například může existovat pouze jeden dávkový koncový bod s názvem mybatchendpoint v westus2.

    V tomto případě umístíme název koncového bodu do proměnné, abychom na něj později mohli snadno odkazovat.

    ENDPOINT_NAME="heart-classifier"
    
  4. Vytvořte koncový bod:

    Pokud chcete vytvořit nový koncový bod, vytvořte YAML konfiguraci jako následující:

    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
    

    Pak vytvořte koncový bod pomocí následujícího příkazu:

    az ml batch-endpoint create -n $ENDPOINT_NAME -f endpoint.yml
    
  5. Teď pojďme vytvořit nasazení. Modely MLflow nevyžadují, abyste při vytváření nasazení při vytváření nasazení označili prostředí ani bodovací skript. Pokud ale chcete přizpůsobit způsob odvození nasazení, můžete je zadat.

    Pokud chcete vytvořit nové nasazení v rámci vytvořeného koncového bodu, vytvořte YAML konfiguraci jako v následujícím příkladu. Můžete zkontrolovat, jestli schéma YAML celého dávkového koncového bodu obsahuje další vlastnosti.

    jednoduchý/deployment.yml nasazení

    $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
    

    Pak vytvořte nasazení pomocí následujícího příkazu:

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

    Důležité

    Nakonfigurujte timeout v nasazení podle toho, jak dlouho trvá spuštění odvozování modelu v jedné dávce. Čím větší je velikost dávky, tím delší musí být tato hodnota. Remeber, který mini_batch_size označuje počet souborů v dávce, ne počet vzorků. Při práci s tabulkovými daty může každý soubor obsahovat více řádků, což zvýší dobu potřebnou ke zpracování jednotlivých souborů v dávkovém koncovém bodu. V těchto případech používejte vysoké hodnoty, abyste se vyhnuli chybám vypršení časového limitu.

  6. I když můžete vyvolat konkrétní nasazení uvnitř koncového bodu, obvykle budete chtít vyvolat samotný koncový bod a nechat koncový bod rozhodnout, které nasazení použít. Toto nasazení se nazývá výchozí nasazení. To vám dává možnost změnit výchozí nasazení a tím změnit model obsluhující nasazení beze změny kontraktu s uživatelem vyvoláním koncového bodu. K aktualizaci výchozího nasazení použijte následující pokyny:

    DEPLOYMENT_NAME="classifier-xgboost-mlflow"
    az ml batch-endpoint update --name $ENDPOINT_NAME --set defaults.deployment_name=$DEPLOYMENT_NAME
    
  7. V tuto chvíli je náš dávkový koncový bod připravený k použití.

Testování nasazení

K otestování koncového bodu použijeme ukázku neoznačeného dat v tomto úložišti, která se dají použít s modelem. Koncové body služby Batch můžou zpracovávat pouze data umístěná v cloudu a přístupná z pracovního prostoru Azure Machine Učení. V tomto příkladu ho nahrajeme do úložiště dat Azure Machine Učení. Zejména vytvoříme datový asset, který se dá použít k vyvolání koncového bodu pro bodování. Všimněte si však, že dávkové koncové body přijímají data, která lze umístit do různých umístění.

  1. Nejprve vytvoříme datový asset. Tento datový prostředek se skládá ze složky s několika soubory CSV, které chceme zpracovat paralelně pomocí dávkových koncových bodů. Tento krok můžete přeskočit, protože vaše data jsou už zaregistrovaná jako datový prostředek nebo chcete použít jiný vstupní typ.

    a. Vytvoření definice datového assetu v 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. Vytvoření datového assetu:

    az ml data create -f heart-dataset-unlabeled.yml
    
  2. Teď, když jsou data nahraná a připravená k použití, vyvoláme koncový bod:

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

    Poznámka:

    jq Nástroj nemusí být nainstalován v každé instalaci. Pokyny k instalaci najdete na tomto odkazu.

    Tip

    Všimněte si, že v operaci vyvolání neudávajíme název nasazení. Důvodem je to, že koncový bod automaticky směruje úlohu do výchozího nasazení. Vzhledem k tomu, že náš koncový bod má jenom jedno nasazení, je to výchozí. Konkrétní nasazení můžete cílit zadáním argumentu nebo parametru deployment_name.

  3. Dávková úloha se spustí hned po vrácení příkazu. Stav úlohy můžete monitorovat, dokud se nedokončí:

    az ml job show -n $JOB_NAME --web
    

Analýza výstupů

Výstupní předpovědi se generují v predictions.csv souboru, jak je uvedeno v konfiguraci nasazení. Úloha vygeneruje pojmenovaný výstup, který se nazývá score umístění tohoto souboru. Pro každou dávkovou úlohu se vygeneruje jenom jeden soubor.

Soubor je strukturovaný takto:

  • Každý datový bod, který byl odeslán do modelu, je jeden řádek. U tabulkových dat to znamená, že soubor (predictions.csv) obsahuje jeden řádek pro každý řádek, který je v každém zpracovaných souborů. U jiných datových typů (např. obrázků, zvuku, textu) je na každý zpracovaný soubor jeden řádek.

  • Následující sloupce jsou v souboru (v pořadí):

    • row (volitelné), odpovídající index řádku ve vstupním datovém souboru. To platí jenom v případě, že jsou vstupní data tabulková. Předpovědi se vrátí ve stejném pořadí, v jakém se zobrazí ve vstupním souboru, takže se můžete spolehnout na číslo řádku, aby odpovídalo odpovídající predikci.
    • prediction, předpověď přidružená ke vstupním datům. Tato hodnota je vrácena tak, jak je, byla poskytována funkcí modelu predict(). .
    • file_name, název souboru, ze kterého byla data načtena. V tabulkových datech můžete pomocí tohoto pole zjistit, které předpovědi patří do kterých vstupních dat.

Výsledky úlohy si můžete stáhnout pomocí názvu úlohy:

K stažení předpovědí použijte následující příkaz:

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

Jakmile se soubor stáhne, můžete ho otevřít pomocí oblíbeného nástroje. Následující příklad načte předpovědi pomocí Pandas datového rámce.

import pandas as pd

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

Výstup vypadá takto:

row Předpověď soubor
0 0 heart-unlabeled-0.csv
1 1 heart-unlabeled-0.csv
2 0 heart-unlabeled-0.csv
... ... ...
307 0 heart-unlabeled-3.csv

Tip

Všimněte si, že v tomto příkladu vstupní data byla tabulková data ve CSV formátu a existují 4 různé vstupní soubory (heart-unlabeled-0.csv, heart-unlabeled-1.csv, heart-unlabeled-2.csv a heart-unlabeled-3.csv).

Důležité informace o nasazení do dávkového odvozování

Azure Machine Učení podporuje nasazování modelů MLflow do dávkových koncových bodů bez označení hodnoticího skriptu. Představuje pohodlný způsob nasazení modelů, které vyžadují zpracování velkých objemů dat dávkově. Azure Machine Učení používá informace ve specifikaci modelu MLflow k orchestraci procesu odvozování.

Jak se práce distribuuje u pracovních procesů

Koncové body služby Batch distribuují práci na úrovni souboru pro strukturovaná i nestrukturovaná data. V důsledku toho se pro tuto funkci podporují jenom soubory URI a složky identifikátorů URI. Každý pracovní proces zpracovává dávky Mini batch size souborů najednou. U tabulkových dat dávkové koncové body při distribuci práce nezohlední počet řádků uvnitř každého souboru.

Upozorňující

Během odvozování nejsou prozkoumány struktury vnořených složek. Pokud data rozdělujete pomocí složek, nezapomeňte strukturu předem zploštět.

Dávkové nasazení budou volat predict funkci modelu MLflow jednou na soubor. U souborů CSV obsahujících více řádků to může mít v podkladovém výpočetním prostředí tlak na paměť a může zvýšit dobu potřebnou k určení skóre jednoho souboru (speciálně pro nákladné modely, jako jsou velké jazykové modely). Pokud v protokolech dojde k několika výjimkám mimo paměť nebo záznamům časového limitu, zvažte rozdělení dat v menších souborech s méně řádky nebo implementaci dávkování na úrovni řádků uvnitř skriptu pro vyhodnocování modelu nebo bodování.

Podpora typů souborů

Následující datové typy jsou podporovány pro dávkové odvozování při nasazování modelů MLflow bez prostředí a bodovacího skriptu. Pokud chcete zpracovat jiný typ souboru nebo provést odvozování jiným způsobem, který dávkové koncové body ve výchozím nastavení dělají, můžete vždy vytvořit nasazení pomocí hodnoticího skriptu, jak je vysvětleno v použití modelů MLflow se skriptem pro bodování.

Přípona souboru Typ vrácený jako vstup modelu Požadavek na podpis
.csv, , .parquet.pqt pd.DataFrame ColSpec. Pokud není zadaný, vynucuje se zadávání sloupců.
.png, .jpg, .jpeg, .tiff, , .bmp.gif np.ndarray TensorSpec. Vstup se přetvaruje tak, aby odpovídal obrazci tenzorů, pokud je k dispozici. Pokud není k dispozici žádný podpis, odvozují se tensory typu np.uint8 . Další pokyny najdete v článku Důležité informace o aspektech zpracování imagí modelů MLflow.

Upozorňující

Doporučujeme, aby všechny nepodporované soubory, které můžou být přítomné ve vstupních datech, mohly úlohu selhat. Zobrazí se následující chybová položka: ERROR:azureml:Error processing input file: '/mnt/batch/tasks/.../a-given-file.avro' (Chyba zpracování vstupního souboru: /mnt/batch/tasks/.../a-given-file.avro). Typ souboru avro není podporován.

Vynucení podpisu pro modely MLflow

Datové typy vstupu se vynucují úlohami dávkového nasazení při čtení dat pomocí dostupného podpisu modelu MLflow. To znamená, že vstup dat by měl vyhovovat typům uvedeným v podpisu modelu. Pokud data nelze analyzovat podle očekávání, úloha selže s chybovou zprávou podobnou této: "ERROR:azureml:Error processing input file: '/mnt/batch/tasks/.../a-given-file.csv'. Výjimka: Neplatný literál pro int() se základem 10: 'value'.

Tip

Podpisy v modelech MLflow jsou volitelné, ale důrazně se doporučuje, protože poskytují pohodlný způsob, jak včas rozpoznat problémy s kompatibilitou dat. Další informace o tom, jak protokolovat modely pomocí podpisů, číst protokolovací modely s vlastním podpisem, prostředím nebo ukázkami.

Podpis modelu modelu můžete zkontrolovat otevřením souboru přidruženého k vašemu MLmodel modelu MLflow. Další podrobnosti o tom, jak podpisy fungují v MLflow, najdete v tématu Podpisy v MLflow.

Podpora příchuť

Nasazení služby Batch podporují pouze nasazování modelů MLflow s příchutí pyfunc . Pokud potřebujete nasadit jinou příchuť, přečtěte si téma Použití modelů MLflow s bodovacím skriptem.

Přizpůsobení nasazení modelů MLflow pomocí hodnoticího skriptu

Modely MLflow je možné nasadit do dávkových koncových bodů bez označení hodnoticího skriptu v definici nasazení. Můžete se ale přihlásit k označení tohoto souboru (obvykle označovaného jako ovladač dávky) a přizpůsobit způsob odvození.

Tento pracovní postup obvykle vyberete v těchto případech:

  • Potřebujete zpracovat typ souboru, který dávkové nasazení MLflow nepodporuje.
  • Musíte přizpůsobit způsob spuštění modelu, například použít konkrétní příchuť k jeho mlflow.<flavor>.load()načtení .
  • V rutině bodování je potřeba provést předběžné zpracování nebo zpracování, pokud samotný model neprovádí.
  • Výstup modelu nemůže být pěkně reprezentován v tabulkových datech. Jedná se například o tenzor představující obrázek.
  • Model nemůže zpracovat každý soubor najednou kvůli omezením paměti a musí ho číst v blocích dat.

Důležité

Pokud se rozhodnete označit bodovací skript pro nasazení modelu MLflow, budete také muset určit prostředí, ve kterém se nasazení spustí.

Kroky

Pomocí následujících kroků nasaďte model MLflow s vlastním skriptem bodování.

  1. Určete složku, ve které je umístěn model MLflow.

    a. Přejděte na portál Azure Machine Učení.

    b. Přejděte do části Modely.

    c. Vyberte model, který se pokoušíte nasadit, a klikněte na kartu Artefakty.

    d. Poznamenejte si zobrazenou složku. Tato složka byla označena při registraci modelu.

    Snímek obrazovky se složkou, ve které jsou umístěné artefakty modelu

  2. Vytvořte bodovací skript. Všimněte si, jak byl název model složky, který jste identifikovali dříve, součástí init() funkce.

    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. Pojďme vytvořit prostředí, ve kterém se dá spustit bodovací skript. Vzhledem k tomu, že náš model je MLflow, požadavky na conda jsou také specifikovány v balíčku modelu (další podrobnosti o modelech MLflow a soubory, které jsou v něm zahrnuty, viz formát MLmodel). Pak vytvoříme prostředí pomocí závislostí conda ze souboru. Musíme ale také zahrnout balíčekazureml-core, který je nutný pro nasazení služby Batch.

    Tip

    Pokud už je váš model zaregistrovaný v registru modelů, můžete stáhnout nebo zkopírovat conda.yml soubor přidružený k vašemu modelu tak, že přejdete na studio Azure Machine Learning> Modely > vyberte model ze seznamu > Artefakty. Otevřete kořenovou složku v navigaci a vyberte conda.yml uvedený soubor. Klikněte na Stáhnout nebo zkopírovat jeho obsah.

    Důležité

    Tento příklad používá prostředí conda zadané na adrese /heart-classifier-mlflow/environment/conda.yaml. Tento soubor byl vytvořen kombinací původního souboru závislostí MLflow conda a přidáním balíčku azureml-core. Soubor z modelu nemůžete použít conda.yml přímo.

    Definice prostředí bude zahrnuta do samotné definice nasazení jako anonymní prostředí. V nasazení se zobrazí následující řádky:

    environment:
      name: batch-mlflow-xgboost
      image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
      conda_file: environment/conda.yaml
    
  4. Konfigurace nasazení:

    Pokud chcete vytvořit nové nasazení v rámci vytvořeného koncového bodu, vytvořte YAML konfiguraci jako v následujícím příkladu. Můžete zkontrolovat, jestli schéma YAML celého dávkového koncového bodu obsahuje další vlastnosti.

    vlastní/deployment.yml nasazení

    $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. Pojďme teď vytvořit nasazení:

    az ml batch-deployment create --file deployment-custom/deployment.yml --endpoint-name $ENDPOINT_NAME
    
  6. V tuto chvíli je náš dávkový koncový bod připravený k použití.

Vyčištění prostředků

Spuštěním následujícího kódu odstraňte koncový bod dávky a všechna podkladová nasazení. Úlohy dávkového vyhodnocování se neodstraní.

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

Další kroky