VM's met lage prioriteit gebruiken voor batchimplementaties
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Azure-batchimplementaties bieden ondersteuning voor virtuele machines met lage prioriteit (VM's) om de kosten van workloads voor batchdeductie te verlagen. Vm's met lage prioriteit maken het mogelijk om een grote hoeveelheid rekenkracht te gebruiken voor een lage kosten. Virtuele machines 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.
Tip
Het nadeel voor het gebruik van VM's met lage prioriteit is dat deze virtuele machines mogelijk niet beschikbaar zijn of dat ze op elk gewenst moment worden afgewend, afhankelijk van de beschikbare capaciteit. Daarom is deze benadering het meest geschikt voor batch- en asynchrone verwerkingsworkloads, waarbij de voltooiingstijd van de taak flexibel is en het werk wordt verdeeld over veel virtuele machines.
Virtuele machines met lage prioriteit worden aangeboden tegen een gereduceerde prijs vergeleken met toegewezen virtuele machines. 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. Nadat een implementatie is gekoppeld aan een cluster met vm's met lage prioriteit, gebruiken alle taken die door een dergelijke 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 3000, afhankelijk van uw abonnement. 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. Het gebruik van VM's met lage prioriteit kan leiden tot uitvoeringsvertragingen wanneer de toewijzing van VM's plaatsvindt. Als u flexibiliteit hebt in de tijdstaken die moeten worden voltooid, kunt u de potentiële dalingen in capaciteit tolereren.
Wanneer u modellen onder batch-eindpunten implementeert, kan het opnieuw plannen worden uitgevoerd op minibatchniveau. Deze aanpak heeft het voordeel dat deallocatie alleen van invloed is op die minibatches die momenteel worden verwerkt en niet zijn voltooid op het betrokken knooppunt. Alle voltooide voortgang wordt bewaard.
Beperkingen
- Nadat een implementatie is gekoppeld aan een cluster met vm's met lage prioriteit, gebruiken alle taken die door een dergelijke 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 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.
Batchimplementaties maken die vm's met lage prioriteit gebruiken
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
Nadat een implementatie is gekoppeld aan een cluster met vm's met lage prioriteit, gebruiken alle taken die door een dergelijke 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, 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
Nadat 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
configuratiebestand endpoint.yml:
$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
Ga als volgt te werk om deze metrische gegevens weer te geven in Azure Portal:
- Navigeer naar uw Azure Machine Learning-werkruimte in Azure Portal.
- Selecteer Metrische gegevens in de sectie Bewaking .
- Selecteer de gewenste metrische gegevens in de lijst met metrische gegevens .