Dela via


Använda virtuella datorer med låg prioritet i batchdistributioner

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

Azure Batch-distributioner stöder virtuella datorer med låg prioritet för att minska kostnaden för batchinferensarbetsbelastningar. Virtuella datorer med låg prioritet gör det möjligt att använda en stor mängd beräkningskraft till en låg kostnad. Virtuella datorer med låg prioritet drar nytta av överkapacitet i Azure. När du anger virtuella datorer med låg prioritet i dina pooler kan Azure använda det här överskottet när det är tillgängligt.

Kompromissen med att använda dem är att de virtuella datorerna kanske inte alltid är tillgängliga för allokering, eller att de kan föregås när som helst, beroende på tillgänglig kapacitet. Därför är de lämpligast för batch- och asynkrona bearbetningsarbetsbelastningar där jobbets slutförandetid är flexibel och arbetet distribueras över många virtuella datorer.

Virtuella datorer med låg prioritet erbjuds till ett betydligt lägre pris jämfört med dedikerade virtuella datorer. Prisinformation finns i Prissättning för Azure Mašinsko učenje.

Så här fungerar batchdistribution med lågprioriterade virtuella datorer

Azure Mašinsko učenje Batch-distributioner innehåller flera funktioner som gör det enkelt att använda och dra nytta av virtuella datorer med låg prioritet:

  • Batchdistributionsjobb förbrukar virtuella datorer med låg prioritet genom att köras på Azure Mašinsko učenje beräkningskluster som skapats med lågprioriterade virtuella datorer. När en distribution är associerad med ett kluster med låg prioritet för virtuella datorer använder alla jobb som skapas av en sådan distribution lågprioriterade virtuella datorer. Det går inte att konfigurera per jobb.
  • Batchdistributionsjobb söker automatiskt efter målantalet virtuella datorer i det tillgängliga beräkningsklustret baserat på antalet uppgifter som ska skickas. Om virtuella datorer är fördefinierade eller otillgängliga försöker batchdistributionsjobb ersätta den förlorade kapaciteten genom att köa de misslyckade uppgifterna till klustret.
  • Virtuella datorer med låg prioritet har en separat vCPU-kvot som skiljer sig från den för dedikerade virtuella datorer. Lågprioritetskärnor per region har en standardgräns på 100 till 3 000, beroende på vilken typ av prenumerationserbjudande du har. Antalet lågprioritetskärnor per prenumeration kan ökas och är ett enskilt värde för VM-familjer. Se Azure Mašinsko učenje beräkningskvoter.

Överväganden och användningsfall

Många batcharbetsbelastningar passar bra för virtuella datorer med låg prioritet. Även om detta kan medföra ytterligare körningsfördröjningar när frigöring av virtuella datorer sker, kan potentiella kapacitetssänkningar tolereras vid utgifter för att köras med en lägre kostnad om det finns flexibilitet i tiden jobb måste slutföra.

När du distribuerar modeller under batchslutpunkter kan du schemalägga om på mini batchnivå. Det har den extra fördelen att frigöring endast påverkar de mini-batchar som för närvarande bearbetas och inte slutförs på den berörda noden. Varje slutförd förlopp behålls.

Skapa batchdistributioner med lågprioriterade virtuella datorer

Batchdistributionsjobb förbrukar virtuella datorer med låg prioritet genom att köras på Azure Mašinsko učenje beräkningskluster som skapats med lågprioriterade virtuella datorer.

Kommentar

När en distribution är associerad med ett kluster med låg prioritet för virtuella datorer använder alla jobb som skapas av en sådan distribution lågprioriterade virtuella datorer. Det går inte att konfigurera per jobb.

Du kan skapa ett Azure Mašinsko učenje beräkningskluster med låg prioritet på följande sätt:

Skapa en beräkningsdefinition YAML som liknar följande:

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

Skapa beräkningen med följande kommando:

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

När du har skapat den nya beräkningen kan du skapa eller uppdatera distributionen för att använda det nya klustret:

Skapa en YAML konfiguration som liknar följande för att skapa eller uppdatera en distribution under det nya beräkningsklustret:

$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

Skapa sedan distributionen med följande kommando:

az ml batch-endpoint create -f endpoint.yml

Visa och övervaka nodallokering

Nya mått är tillgängliga i Azure-portalen för virtuella datorer med låg prioritet för att övervaka virtuella datorer med låg prioritet. Dessa mått är:

  • Fördefinierade noder
  • Fördefinierade kärnor

Så här visar du dessa mått i Azure-portalen

  1. Gå till din Azure Mašinsko učenje-arbetsyta i Azure-portalen.
  2. Välj Mått i avsnittet Övervakning .
  3. Välj de mått som du vill använda i listan Mått .

Skärmbild av måttavsnittet på resursövervakningsbladet som visar relevanta mått för virtuella datorer med låg prioritet.

Begränsningar

  • När en distribution är associerad med ett kluster med låg prioritet för virtuella datorer använder alla jobb som skapas av en sådan distribution lågprioriterade virtuella datorer. Det går inte att konfigurera per jobb.
  • Omplanering görs på mini-batch-nivå, oavsett förloppet. Det finns ingen kontrollpunktsfunktion.

Varning

I de fall då hela klustret är förinställt (eller körs på ett kluster med en nod) avbryts jobbet eftersom det inte finns någon tillgänglig kapacitet för körning. I det här fallet krävs en ny inskickning.