Używanie maszyn wirtualnych o niskim priorytcie dla wdrożeń wsadowych
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)
Wdrożenia wsadowe platformy Azure obsługują maszyny wirtualne o niskim priorytcie, aby zmniejszyć koszt obciążeń wnioskowania wsadowego. Maszyny wirtualne o niskim priorytcie umożliwiają korzystanie z dużej ilości mocy obliczeniowej w celu uzyskania niskich kosztów. Maszyny wirtualne o niskim priorytcie korzystają z nadwyżkowej pojemności na platformie Azure. Po określeniu maszyn wirtualnych o niskim priorytcie w pulach platforma Azure może użyć tej nadwyżki, jeśli jest dostępna.
Napiwek
Kompromisem w przypadku używania maszyn wirtualnych o niskim priorytcie jest to, że te maszyny wirtualne mogą nie być dostępne lub w dowolnym momencie mogą zostać wywłaszczone w zależności od dostępnej pojemności. Z tego powodu takie podejście jest najbardziej odpowiednie dla obciążeń przetwarzania wsadowego i asynchronicznego, gdzie czas ukończenia zadania jest elastyczny, a praca jest dystrybuowana na wielu maszynach wirtualnych.
Maszyny wirtualne o niskim priorytcie są oferowane w obniżonej cenie w porównaniu z dedykowanymi maszynami wirtualnymi. Aby uzyskać szczegółowe informacje o cenach, zobacz Cennik usługi Azure Machine Learning.
Jak wdrażanie wsadowe działa z maszynami wirtualnymi o niskim priorytcie
Wdrożenia usługi Azure Machine Learning Batch udostępniają kilka funkcji, które ułatwiają korzystanie z maszyn wirtualnych o niskim priorytcie i korzystanie z nich:
- Zadania wdrażania wsadowego zużywają maszyny wirtualne o niskim priorytcie, uruchamiając je w klastrach obliczeniowych usługi Azure Machine Learning utworzonych przy użyciu maszyn wirtualnych o niskim priorytcie. Po skojarzeniu wdrożenia z klastrem maszyn wirtualnych o niskim priorytcie wszystkie zadania utworzone przez takie wdrożenie używają maszyn wirtualnych o niskim priorytcie. Konfiguracja poszczególnych zadań nie jest możliwa.
- Zadania wdrażania usługi Batch automatycznie szukają docelowej liczby maszyn wirtualnych w dostępnym klastrze obliczeniowym na podstawie liczby zadań do przesłania. Jeśli maszyny wirtualne są wywłaszczone lub niedostępne, zadania wdrażania wsadowego podejmują próbę zastąpienia utraconej pojemności przez kolejkowanie zadań, które zakończyły się niepowodzeniem w klastrze.
- Maszyny wirtualne o niskim priorytcie mają oddzielny przydział procesorów wirtualnych, który różni się od tego dla dedykowanych maszyn wirtualnych. Rdzenie o niskim priorytcie na region mają domyślny limit od 100 do 3000, w zależności od subskrypcji. Liczbę rdzeni o niskim priorytecie na subskrypcję można zwiększyć i jest to jedna wartość dla wszystkich rodzin maszyn wirtualnych. Zobacz Limity przydziału zasobów obliczeniowych usługi Azure Machine Learning.
Zagadnienia i przypadki użycia
Wiele obciążeń wsadowych jest dobrym rozwiązaniem dla maszyn wirtualnych o niskim priorytcie. Użycie maszyn wirtualnych o niskim priorytcie może powodować opóźnienia wykonywania w przypadku wystąpienia cofnięcia przydziału maszyn wirtualnych. Jeśli masz elastyczność zadań czasowych, które muszą zostać zakończone, możesz tolerować potencjalne spadki pojemności.
Podczas wdrażania modeli w ramach punktów końcowych wsadowych można przeprowadzić ponowną zmianę na poziomie minibatch. Takie podejście ma korzyść, która ma wpływ tylko na te minibatches, które są obecnie przetwarzane i nie zostały zakończone w węźle, którego dotyczy problem. Cały ukończony postęp jest zachowywany.
Ograniczenia
- Po skojarzeniu wdrożenia z klastrem maszyn wirtualnych o niskim priorytcie wszystkie zadania utworzone przez takie wdrożenie używają maszyn wirtualnych o niskim priorytcie. Konfiguracja poszczególnych zadań nie jest możliwa.
- Ponowne zaplanowanie odbywa się na poziomie mini-partii, niezależnie od postępu. Nie ma możliwości tworzenia punktów kontrolnych.
Ostrzeżenie
W przypadkach, gdy cały klaster jest wywłaszczone lub uruchomiony w klastrze z jednym węzłem, zadanie jest anulowane, ponieważ nie ma dostępnej pojemności do uruchomienia. W tym przypadku wymagane jest ponowne przesłanie.
Tworzenie wdrożeń wsadowych korzystających z maszyn wirtualnych o niskim priorytcie
Zadania wdrażania wsadowego zużywają maszyny wirtualne o niskim priorytcie, uruchamiając je w klastrach obliczeniowych usługi Azure Machine Learning utworzonych przy użyciu maszyn wirtualnych o niskim priorytcie.
Uwaga
Po skojarzeniu wdrożenia z klastrem maszyn wirtualnych o niskim priorytcie wszystkie zadania utworzone przez takie wdrożenie używają maszyn wirtualnych o niskim priorytcie. Konfiguracja poszczególnych zadań nie jest możliwa.
Klaster obliczeniowy usługi Azure Machine Learning o niskim priorytcie można utworzyć w następujący sposób:
Utwórz definicję YAML
obliczeniową, taką jak poniższa, 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
Utwórz obliczenia przy użyciu następującego polecenia:
az ml compute create -f low-pri-cluster.yml
Po utworzeniu nowego środowiska obliczeniowego możesz utworzyć lub zaktualizować wdrożenie, aby użyć nowego klastra:
Aby utworzyć lub zaktualizować wdrożenie w ramach nowego klastra obliczeniowego, utwórz YAML
plik konfiguracji 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
Następnie utwórz wdrożenie za pomocą następującego polecenia:
az ml batch-endpoint create -f endpoint.yml
Wyświetlanie i monitorowanie cofnięcia przydziału węzła
Nowe metryki są dostępne w witrynie Azure Portal , aby maszyny wirtualne o niskim priorytcie monitorowały maszyny wirtualne o niskim priorytcie. Te metryki to:
- Wywłaszczone węzły
- Wywłaszczone rdzenie
Aby wyświetlić te metryki w witrynie Azure Portal:
- Przejdź do obszaru roboczego usługi Azure Machine Learning w witrynie Azure Portal.
- Wybierz pozycję Metryki w sekcji Monitorowanie .
- Wybierz metryki, których potrzebujesz z listy Metryki .