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 jejich zprovoznění ve službě Azure Machine Learning. 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, naklonujte úložiště pomocí následujících příkazů a přejděte do složky pro váš kódovací jazyk:
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
Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Pracovní prostor služby Azure Machine Learning. Pokud chcete vytvořit pracovní prostor, přečtěte si téma Správa pracovních prostorů Služby Azure Machine Learning.
Následující oprávnění v pracovním prostoru Azure Machine Learning:
- Pro vytváření nebo správu dávkových koncových bodů a nasazení: Použijte roli Vlastník, Přispěvatel nebo Vlastní role, která má přiřazená
Microsoft.MachineLearningServices/workspaces/batchEndpoints/*
oprávnění. - Vytváření nasazení Azure Resource Manageru ve skupině prostředků pracovního prostoru: Použijte roli Vlastník, Přispěvatel nebo Vlastní role, která má přiřazená
Microsoft.Resources/deployments/write
oprávnění ve skupině prostředků, ve které je pracovní prostor nasazený.
- Pro vytváření nebo správu dávkových koncových bodů a nasazení: Použijte roli Vlastník, Přispěvatel nebo Vlastní role, která má přiřazená
Azure Machine Learning CLI nebo sada Azure Machine Learning SDK pro Python:
Spuštěním následujícího příkazu nainstalujte Azure CLI a
ml
rozšíření pro Azure Machine Learning:az extension add -n ml
Nasazení součástí kanálu pro dávkové koncové body jsou zavedena ve verzi 2.7
ml
rozšíření pro Azure CLI.az extension update --name ml
Pomocí příkazu získejte nejnovější verzi.
Připojení k pracovnímu prostoru
Pracovní prostor je prostředek nejvyšší úrovně pro Azure Machine Learning. Poskytuje centralizované místo pro práci se všemi artefakty, které vytvoříte při použití služby Azure Machine Learning. V této části se připojíte k pracovnímu prostoru, ve kterém provádíte úlohy nasazení.
V následujícím příkazu zadejte ID předplatného, název pracovního prostoru, název skupiny prostředků a umístění:
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.5/labels/latest
command: >-
python hello.py
Zaregistrujte komponentu:
Vytvoření dávkového koncového bodu
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.
Konfigurace koncového bodu:
Vytvořte koncový bod:
Zadejte dotaz na identifikátor URI koncového bodu:
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.
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 libovolném výpočetním clusteru Azure Machine Learning, 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 Learning 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.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
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í.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:
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í:
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.