Použití virtuálních počítačů s nízkou prioritou v dávkových nasazeních

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

Azure Batch Nasazení podporuje virtuální počítače s nízkou prioritou, aby se snížily náklady na úlohy dávkového odvozování. Virtuální počítače s nízkou prioritou umožňují využívat velké množství výpočetního výkonu za nízkou cenu. Virtuální počítače s nízkou prioritou využívají nadbytečnou kapacitu v Azure. Když ve fondech zadáte virtuální počítače s nízkou prioritou, Azure může tento přebytek využít, pokud je k dispozici.

Nevýhodou pro jejich použití je, že tyto virtuální počítače nemusí být vždy k dispozici k přidělení nebo mohou být kdykoli zrušeny v závislosti na dostupné kapacitě. Z tohoto důvodu jsou nejvhodnější pro dávkové a asynchronní úlohy zpracování , kde je čas dokončení úlohy flexibilní a práce se distribuuje mezi mnoho virtuálních počítačů.

Virtuální počítače s nízkou prioritou se ve srovnání s vyhrazenými virtuálními počítači nabízejí za výrazně nižší cenu. Podrobnosti o cenách najdete v tématu Ceny služby Azure Machine Learning.

Jak funguje dávkové nasazení s virtuálními počítači s nízkou prioritou

Azure Machine Learning Batch Deployments poskytuje několik možností, které usnadňují využívání virtuálních počítačů s nízkou prioritou a jejich využití:

  • Úlohy nasazení služby Batch využívají virtuální počítače s nízkou prioritou tím, že běží na výpočetních clusterech Azure Machine Learning vytvořených s virtuálními počítači s nízkou prioritou. Jakmile je nasazení přidružené ke clusteru virtuálních počítačů s nízkou prioritou, budou všechny úlohy vytvořené tímto nasazením používat virtuální počítače s nízkou prioritou. Konfigurace jednotlivých úloh není možná.
  • Úlohy nasazení služby Batch automaticky vyhledávají cílový počet virtuálních počítačů v dostupném výpočetním clusteru na základě počtu úloh, které se mají odeslat. Pokud jsou virtuální počítače zrušené nebo nedostupné, úlohy dávkového nasazení se pokusí nahradit ztracenou kapacitu tím, že do clusteru zařadí neúspěšné úlohy do fronty.
  • Virtuální počítače s nízkou prioritou mají samostatnou kvótu virtuálních procesorů, která se liší od kvóty pro vyhrazené virtuální počítače. Pro jádra s nízkou prioritou na oblast platí výchozí limit 100 až 3 000 v závislosti na typu nabídky předplatného. Počet jader s nízkou prioritou na předplatné je možné zvýšit a pro všechny řady virtuálních počítačů platí jedna hodnota. Viz Kvóty výpočetních prostředků služby Azure Machine Learning.

Důležité informace a případy použití

Mnoho dávkových úloh je vhodných pro virtuální počítače s nízkou prioritou. I když to může způsobit další zpoždění provádění, když dojde k uvolnění virtuálních počítačů, potenciální pokles kapacity může být tolerován za náklady na provoz s nižšími náklady, pokud existuje flexibilita v době, kdy se úlohy musí dokončit.

Při nasazování modelů v rámci dávkových koncových bodů je možné přeplánovat na úrovni minimální dávky. To má další výhodu, že uvolnění ovlivňuje pouze ty mini dávky, které se právě zpracovávají a nedokončí na ovlivněném uzlu. Každý dokončený průběh se zachová.

Vytváření dávkových nasazení s virtuálními počítači s nízkou prioritou

Úlohy nasazení služby Batch využívají virtuální počítače s nízkou prioritou tím, že běží na výpočetních clusterech Azure Machine Learning vytvořených s virtuálními počítači s nízkou prioritou.

Poznámka

Jakmile je nasazení přidružené ke clusteru virtuálních počítačů s nízkou prioritou, budou všechny úlohy vytvořené tímto nasazením používat virtuální počítače s nízkou prioritou. Konfigurace jednotlivých úloh není možná.

Výpočetní cluster Azure Machine Learning s nízkou prioritou můžete vytvořit následujícím způsobem:

Vytvořte definici YAML výpočetních prostředků, jako je tato:

low-pri-cluster.yml

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

Pomocí následujícího příkazu vytvořte výpočetní prostředky:

az ml compute create -f low-pri-cluster.yml

Po vytvoření nového výpočetního prostředí můžete vytvořit nebo aktualizovat nasazení tak, aby používalo nový cluster:

Pokud chcete vytvořit nebo aktualizovat nasazení v novém výpočetním clusteru, vytvořte konfiguraci, která bude YAML vypadat takto:

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-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

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

az ml batch-endpoint create -f endpoint.yml

Zobrazení a monitorování přidělení uzlu

V Azure Portal jsou k dispozici nové metriky pro virtuální počítače s nízkou prioritou pro monitorování virtuálních počítačů s nízkou prioritou. Mezi tyto metriky patří:

  • Předem připravené uzly
  • Předem připravená jádra

Zobrazení těchto metrik v Azure Portal

  1. V Azure Portal přejděte do pracovního prostoru Služby Azure Machine Learning.
  2. V části Monitorování vyberte Metriky.
  3. V seznamu Metriky vyberte požadované metriky.

Snímek obrazovky s oddílem metrik v okně Monitorování prostředků zobrazující relevantní metriky pro virtuální počítače s nízkou prioritou

Omezení

  • Jakmile je nasazení přidružené ke clusteru virtuálních počítačů s nízkou prioritou, budou všechny úlohy vytvořené tímto nasazením používat virtuální počítače s nízkou prioritou. Konfigurace jednotlivých úloh není možná.
  • Přeplánování se provádí na minidávkové úrovni bez ohledu na průběh. Nejsou k dispozici žádné možnosti vytváření kontrolních bodů.

Upozornění

V případech, kdy je ukončen celý cluster (nebo je spuštěn v clusteru s jedním uzlem), bude úloha zrušena, protože pro spuštění není dostupná žádná kapacita. V tomto případě se bude vyžadovat opětovné odeslání.