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

  1. Przejdź do obszaru roboczego usługi Azure Machine Learning w Azure Portal.
  2. Wybierz pozycję Metryki w sekcji Monitorowanie .
  3. Wybierz wybrane metryki z listy Metryki .

Zrzut ekranu przedstawiający sekcję metryk w bloku monitorowania zasobów z odpowiednimi metrykami dla maszyn wirtualnych o niskim priorytcie.

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.