Nasazení kanálů pomocí dávkových koncových bodů

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

Komponenty kanálu můžete nasadit v rámci dávkového koncového bodu a poskytnout tak pohodlný způsob, jak je zprovoznit ve službě Azure Machine Učení. V tomto článku se dozvíte, jak vytvořit dávkové nasazení, které obsahuje jednoduchý kanál. Naučíte se:

  • Vytvoření a registrace komponenty kanálu
  • Vytvoření dávkového koncového bodu a nasazení komponenty kanálu
  • Otestování nasazení

O tomto příkladu

V tomto příkladu nasadíme komponentu kanálu, která se skládá z jednoduché úlohy příkazu, která vytiskne "hello world!". Tato komponenta nevyžaduje žádné vstupy ani výstupy a představuje nejjednodušší scénář nasazení kanálu.

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-pipelines/hello-batch

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

Verzi sady Python SDK tohoto příkladu můžete sledovat otevřením poznámkového bloku sdk-deploy-and-test.ipynb v naklonovaném úložišti.

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>

Vytvoření komponenty kanálu

Koncové body služby Batch můžou nasazovat buď modely, nebo součásti kanálu. Součásti kanálu jsou opakovaně použitelné a můžete zjednodušit postup MLOps pomocí sdílených registrů a přesunout tyto komponenty z jednoho pracovního prostoru do druhého.

Součást kanálu v tomto příkladu obsahuje jeden krok, který v protokolech vytiskne pouze zprávu "hello world". Nevyžaduje žádné vstupy ani výstupy.

Soubor hello-component/hello.yml obsahuje konfiguraci pro komponentu kanálu:

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

Zaregistrujte komponentu:

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

Vytvoření dávkového koncového bodu

  1. Zadejte název koncového bodu. Název dávkového koncového bodu musí být v každé oblasti jedinečný, protože se tento název používá k vytvoření identifikátoru URI vyvolání. Pokud chcete zajistit jedinečnost, připojte k názvu zadanému v následujícím kódu všechny koncové znaky.

    ENDPOINT_NAME="hello-batch"
    
  2. Konfigurace koncového bodu:

    Soubor endpoint.yml obsahuje konfiguraci koncového bodu.

    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. Vytvořte koncový bod:

    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. Zadejte dotaz na identifikátor URI koncového bodu:

    az ml batch-endpoint show --name $ENDPOINT_NAME
    

Nasazení komponenty kanálu

Abychom mohli nasadit komponentu kanálu, musíme vytvořit dávkové nasazení. Nasazení je sada prostředků potřebných k hostování prostředku, který provádí skutečnou práci.

  1. Vytvořte výpočetní cluster. Koncové body a nasazení služby Batch běží na výpočetních clusterech. Můžou běžet na jakémkoli počítači Azure Učení výpočetním clusteru, který už v pracovním prostoru existuje. Proto může několik dávkových nasazení 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 batch-cluster. Pojďme ověřit, jestli výpočetní prostředky v pracovním prostoru existují, nebo je vytvořit jinak.

    az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
    
  2. Konfigurace nasazení:

    Soubor deployment.yml obsahuje konfiguraci nasazení. Můžete zkontrolovat, jestli schéma YAML celého dávkového koncového bodu obsahuje další vlastnosti.

    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. Vytvořte nasazení:

    Spuštěním následujícího kódu vytvořte dávkové nasazení v rámci koncového bodu dávky a nastavte ho jako výchozí nasazení.

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

    Tip

    Všimněte si použití příznaku --set-default k označení, že toto nové nasazení je teď výchozí.

  4. Vaše nasazení je připravené k použití.

Otestování nasazení

Jakmile se nasazení vytvoří, je připravené přijímat úlohy. Výchozí nasazení můžete vyvolat následujícím způsobem:

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

Tip

V tomto příkladu kanál nemá vstupy ani výstupy. Pokud však komponenta kanálu vyžaduje některé, mohou být označeny při vyvolání. Další informace o tom, jak označit vstupy a výstupy, najdete v tématu Vytváření úloh a vstupních dat pro dávkové koncové body nebo se podívejte na kurz Nasazení kanálu pro dávkové vyhodnocování pomocí předběžného zpracování (Preview).

Průběh zobrazení a streamování protokolů můžete sledovat pomocí:

az ml job stream -n $JOB_NAME

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

Jakmile budete hotovi, odstraňte přidružené prostředky z pracovního prostoru:

Spuštěním následujícího kódu odstraňte koncový bod dávky a jeho základní nasazení. --yes slouží k potvrzení odstranění.

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

(Volitelné) Odstraňte výpočetní prostředky, pokud neplánujete znovu použít výpočetní cluster s pozdějším nasazením.

az ml compute delete -n batch-cluster

Další kroky