Używanie maszyn wirtualnych o niskim priorytetu we wdrożeniach wsadowych
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)Zestaw SDK języka Python azure-ai-ml w wersji 2 (bieżąca)
Azure Batch Wdrożenia 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 niskich kosztach. Maszyny wirtualne o niskim priorytetu korzystają z nadwyżkowej pojemności na platformie Azure. Po określeniu maszyn wirtualnych o niskim priorytetu w pulach platforma Azure może użyć tej nadwyżki, jeśli jest dostępna.
Kompromis za korzystanie z nich polega na tym, że te maszyny wirtualne mogą nie zawsze być dostępne do przydzieleniu lub mogą być w dowolnym momencie wywłaszczone w zależności od dostępnej pojemności. Z tego powodu są najbardziej odpowiednie dla obciążeń przetwarzania wsadowego i asynchronicznego , w których czas ukończenia zadania jest elastyczny, a praca jest dystrybuowana na wielu maszynach wirtualnych.
Maszyny wirtualne o niskim priorytcie są oferowane w znacznie 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 używają maszyn wirtualnych o niskim priorytetu, uruchamiając je w klastrach obliczeniowych usługi Azure Machine Learning utworzonych przy użyciu maszyn wirtualnych o niskim priorytetu. Po skojarzeniu wdrożenia z klastrem maszyn wirtualnych o niskim priorytcie wszystkie zadania utworzone przez takie wdrożenie będą używać maszyn wirtualnych o niskim priorytcie. Konfiguracja poszczególnych zadań nie jest możliwa.
- Zadania wdrażania wsadowego 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 próbują zastąpić utraconą pojemność przez kolejkowanie zadań, które zakończyły się niepowodzeniem w klastrze.
- Maszyny wirtualne o niskim priorytcie mają oddzielny limit przydziału procesorów wirtualnych, który różni się od tego dla dedykowanych maszyn wirtualnych. Rdzenie o niskim priorytecie dla poszczególnych regionów mają domyślny limit od 100 do 3000, w zależności od typu oferty 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. Mimo że może to spowodować dalsze opóźnienia wykonywania w przypadku cofnięcia przydziału maszyn wirtualnych, potencjalne spadki pojemności mogą być tolerowane na kosztach działania z niższym kosztem, jeśli istnieje elastyczność w zadaniach czasu, które muszą zostać ukończone.
Podczas wdrażania modeli w punktach końcowych wsadowych można przeprowadzić ponowną zmianę na poziomie minisadowym. Ma to dodatkową korzyść, która ma wpływ tylko na te minisady, które są obecnie przetwarzane i nie zostały zakończone w węźle, którego dotyczy problem. Każdy ukończony postęp jest utrzymywany.
Tworzenie wdrożeń wsadowych z maszynami wirtualnymi o niskim priorytcie
Zadania wdrażania wsadowego używają maszyn wirtualnych o niskim priorytetu, uruchamiając je w klastrach obliczeniowych usługi Azure Machine Learning utworzonych przy użyciu maszyn wirtualnych o niskim priorytetu.
Uwaga
Po skojarzeniu wdrożenia z klastrem maszyn wirtualnych o niskim priorytcie wszystkie zadania utworzone przez takie wdrożenie będą używać 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ą podobną do następującej:
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 środowisko obliczeniowe 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 nowym klastrze obliczeniowym, utwórz konfigurację podobną YAML
do następującej:
$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 cofania węzła
Nowe metryki są dostępne w Azure Portal dla maszyn wirtualnych o niskim priorytcie w celu monitorowania maszyn wirtualnych o niskim priorytcie. Te metryki to:
- Wywłaszczone węzły
- Wywłaszczone rdzenie
Aby wyświetlić te metryki w Azure Portal
- Przejdź do obszaru roboczego usługi Azure Machine Learning w Azure Portal.
- Wybierz pozycję Metryki w sekcji Monitorowanie .
- Wybierz wybrane metryki z listy Metryki .
Ograniczenia
- Po skojarzeniu wdrożenia z klastrem maszyn wirtualnych o niskim priorytcie wszystkie zadania utworzone przez takie wdrożenie będą używać 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, w których cały klaster jest wywłaszczone (lub uruchomiony w klastrze z jednym węzłem), zadanie zostanie anulowane, ponieważ nie ma dostępnej pojemności do uruchomienia. Ponowne przesłanie będzie wymagane w tym przypadku.