Udostępnij za pośrednictwem


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:

  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 okienku monitorowania zasobów, która pokazuje odpowiednie metryki dla maszyn wirtualnych o niskim priorytcie.