Udostępnij za pośrednictwem


Używanie maszyn wirtualnych o niskim priorytcie we wdrożeniach wsadowych

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

Wdrożenia usługi Azure Batch 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.

Kompromis za ich używanie 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ą one 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 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 będą używać 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 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. Chociaż może to spowodować dalsze opóźnienia wykonywania w przypadku wystąpienia 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ść zadań czasu, które muszą zostać ukończone.

Podczas wdrażania modeli w punktach końcowych wsadowych można przeprowadzić ponowną zmianę na poziomie mini partii. Ma to dodatkową korzyść, która ma wpływ tylko na te mini-partie, które są obecnie przetwarzane i nie są gotowe w węźle, którego dotyczy problem. Każdy ukończony postęp jest zachowywany.

Tworzenie wdrożeń wsadowych z maszynami wirtualnymi 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 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 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 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 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

  1. Przejdź do obszaru roboczego usługi Azure Machine Learning w witrynie Azure Portal.
  2. Wybierz pozycję Metryki w sekcji Monitorowanie .
  3. Wybierz metryki, których potrzebujesz 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, gdy 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.