Delen via


Vm's met lage prioriteit gebruiken in batchimplementaties

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Azure Batch Deployments ondersteunt VM's met lage prioriteit om de kosten van batchdeductieworkloads te verlagen. Vm's met lage prioriteit maken het mogelijk om een grote hoeveelheid rekenkracht te gebruiken voor een lage kosten. VM's met lage prioriteit profiteren van overtollige capaciteit in Azure. Wanneer u VM's met lage prioriteit in uw pools opgeeft, kan Azure dit overschot gebruiken, indien beschikbaar.

Het nadeel voor het gebruik van deze vm's is dat deze VM's mogelijk niet altijd beschikbaar zijn om te worden toegewezen, of dat deze op elk gewenst moment kunnen worden verschoven, afhankelijk van de beschikbare capaciteit. Daarom zijn ze het meest geschikt voor batch- en asynchrone verwerkingsworkloads waarbij de voltooiingstijd van de taak flexibel is en het werk wordt verdeeld over veel VM's.

VM's met lage prioriteit worden aangeboden tegen een aanzienlijk lagere prijs vergeleken met toegewezen VM's. Zie Prijzen voor Azure Machine Learning voor meer informatie over prijzen.

Hoe batchimplementatie werkt met VM's met lage prioriteit

Azure Machine Learning Batch-implementaties biedt verschillende mogelijkheden waarmee u eenvoudig VM's met lage prioriteit kunt gebruiken en profiteren:

  • Batch-implementatietaken verbruiken VM's met lage prioriteit door te worden uitgevoerd op Azure Machine Learning-rekenclusters die zijn gemaakt met VM's met lage prioriteit. Zodra een implementatie is gekoppeld aan een cluster met lage prioriteit van VM's, gebruiken alle taken die door deze implementatie worden geproduceerd VM's met lage prioriteit. Configuratie per taak is niet mogelijk.
  • Batch-implementatietaken zoeken automatisch het doelaantal VM's in het beschikbare rekencluster op basis van het aantal taken dat moet worden verzonden. Als VM's zijn afgekraakt of niet beschikbaar zijn, proberen batchimplementatietaken de verloren capaciteit te vervangen door de mislukte taken in de wachtrij te plaatsen bij het cluster.
  • VM's met lage prioriteit hebben een afzonderlijk vCPU-quotum dat verschilt van het quotum voor toegewezen VM's. Kernen met lage prioriteit per regio hebben een standaardlimiet van 100 tot 3,000, afhankelijk van het type abonnementsaanbieding. Het aantal kernen met lage prioriteit per abonnement kan worden verhoogd en is één waarde voor alle VM-families. Zie De rekenquota van Azure Machine Learning.

Overwegingen en use cases

Veel batchworkloads zijn geschikt voor VM's met lage prioriteit. Hoewel dit verdere uitvoeringsvertragingen kan veroorzaken wanneer de toewijzing van VM's plaatsvindt, kunnen de potentiële dalingen van de capaciteit worden getolereerd bij kosten voor uitvoering met lagere kosten als er flexibiliteit is in de tijdstaken moeten worden voltooid.

Bij het implementeren van modellen onder batch-eindpunten kan het opnieuw plannen worden uitgevoerd op minibatchniveau. Dat heeft het extra voordeel dat deallocatie alleen van invloed is op die minibatches die momenteel worden verwerkt en niet zijn voltooid op het betrokken knooppunt. Elke voltooide voortgang wordt bewaard.

Batchimplementaties maken met VM's met lage prioriteit

Batch-implementatietaken verbruiken VM's met lage prioriteit door te worden uitgevoerd op Azure Machine Learning-rekenclusters die zijn gemaakt met VM's met lage prioriteit.

Notitie

Zodra een implementatie is gekoppeld aan een cluster met lage prioriteit van VM's, gebruiken alle taken die door deze implementatie worden geproduceerd VM's met lage prioriteit. Configuratie per taak is niet mogelijk.

U kunt als volgt een Azure Machine Learning-rekencluster met lage prioriteit maken:

Maak een rekendefinitie YAML zoals de volgende definitie:

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

Maak de berekening met behulp van de volgende opdracht:

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

Zodra u de nieuwe berekening hebt gemaakt, kunt u uw implementatie maken of bijwerken om het nieuwe cluster te gebruiken:

Als u een implementatie onder het nieuwe rekencluster wilt maken of bijwerken, maakt u een YAML configuratie als volgt:

$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

Maak vervolgens de implementatie met de volgende opdracht:

az ml batch-endpoint create -f endpoint.yml

Deallocation van knooppunten weergeven en bewaken

Nieuwe metrische gegevens zijn beschikbaar in Azure Portal voor VM's met lage prioriteit om VM's met lage prioriteit te bewaken. Deze metrische gegevens zijn:

  • Vooraf geïmplementeerde knooppunten
  • Vooraf getempte kernen

Deze metrische gegevens weergeven in Azure Portal

  1. Navigeer naar uw Azure Machine Learning-werkruimte in Azure Portal.
  2. Selecteer Metrische gegevens in de sectie Bewaking .
  3. Selecteer de gewenste metrische gegevens in de lijst met metrische gegevens .

Schermopname van de sectie met metrische gegevens op de blade resourcebewaking met de relevante metrische gegevens voor VM's met lage prioriteit.

Beperkingen

  • Zodra een implementatie is gekoppeld aan een cluster met lage prioriteit van VM's, gebruiken alle taken die door deze implementatie worden geproduceerd VM's met lage prioriteit. Configuratie per taak is niet mogelijk.
  • Het opnieuw plannen wordt uitgevoerd op minibatchniveau, ongeacht de voortgang. Er is geen controlepuntmogelijkheid beschikbaar.

Waarschuwing

In de gevallen waarin het hele cluster wordt afgeschaft (of wordt uitgevoerd op een cluster met één knooppunt), wordt de taak geannuleerd omdat er geen capaciteit beschikbaar is voor uitvoering. Het opnieuw indienen is in dit geval vereist.