Nasazení existujících úloh kanálu do koncových bodů služby Batch

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

Koncové body služby Batch umožňují nasadit komponenty kanálu a poskytují pohodlný způsob zprovoznění kanálů v Učení Azure Machine. Koncové body služby Batch přijímají součásti kanálu pro nasazení. Pokud už ale máte úlohu kanálu, která se úspěšně spustí, azure machine Učení tuto úlohu může přijmout jako vstup do vašeho dávkového koncového bodu a automaticky pro vás vytvořit komponentu kanálu. V tomto článku se dozvíte, jak použít stávající úlohu kanálu jako vstup pro dávkové nasazení.

Naučíte se:

  • Spusťte a vytvořte úlohu kanálu, kterou chcete nasadit.
  • Vytvoření dávkového nasazení z existující úlohy
  • Otestování nasazení

O tomto příkladu

V tomto příkladu nasadíme kanál skládající se z jednoduché úlohy příkazu, která vytiskne "hello world!". Místo registrace komponenty kanálu před nasazením označujeme existující úlohu kanálu, která se má použít pro nasazení. Azure Machine Učení pak vytvoří komponentu kanálu automaticky a nasadí ji jako nasazení součásti kanálu kanálu dávkového koncového bodu.

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

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>

Spusťte úlohu kanálu, kterou chcete nasadit.

V této části začneme spuštěním úlohy kanálu:

Následující pipeline-job.yml soubor obsahuje konfiguraci pro úlohu kanálu:

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

Vytvořte úlohu kanálu:

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

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

Než nasadíme úlohu kanálu, musíme nasadit dávkový koncový bod pro hostování nasazení.

  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í úlohy kanálu

Abychom mohli nasadit komponentu kanálu, musíme vytvořit dávkové nasazení z existující úlohy.

  1. Musíme azure machine Učení název úlohy, kterou chceme nasadit. V našem případě je tato úloha uvedena v následující proměnné:

    echo $JOB_NAME
    
  2. Nakonfigurujte nasazení.

    Soubor deployment-from-job.yml obsahuje konfiguraci nasazení. Všimněte si, že klíč job_definition používáme místo component toho, abychom označili, že se toto nasazení vytvoří z úlohy kanálu:

    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
    

    Tip

    Tato konfigurace předpokládá, že máte výpočetní cluster s názvem batch-cluster. Tuto hodnotu můžete nahradit názvem clusteru.

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

    Tip

    Všimněte si použití .--set job_definition=azureml:$JOB_NAME Vzhledem k tomu, že názvy úloh jsou jedinečné, příkaz --set se zde použije ke změně názvu úlohy při jejím spuštění v pracovním prostoru.

  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)

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

Další kroky