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)

Ważna

Maszyny wirtualne o niskim priorytcie zostały wycofane na Azure Machine Learning 31 marca 2026 r. Klastry obliczeniowe, które określajątier: low_priority, że nadal przechodzą walidację i nadal uruchamiają zadania, ale Azure Batch teraz przydziela węzły jako maszyny wirtualne typu spot za pośrednictwem migracji zainicjowanej przez system. Ceny typu spot i zachowanie eksmisji typu spot mają zastosowanie do każdego klastra opisanego w tym artykule, niezależnie od tego, czy został utworzony przed datą wycofania, czy po dacie wycofania. Aby uzyskać szczegółowe informacje na poziomie usługi Batch, zobacz Uruchamianie obciążeń usługi Batch na ekonomicznych maszynach wirtualnych typu spot.

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 celu uzyskania niskich kosztów. Maszyny wirtualne o niskim priorytcie korzystają z nadwyżkowej pojemności w 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.

Ponieważ te węzły są teraz przydzielane jako maszyny wirtualne typu spot, naliczana jest bieżąca stawka spot dla rozmiaru maszyny wirtualnej w regionie, w którym działa klaster. Ta stawka jest zmienna, a nie stały rabat. Zmienia się wraz z regionem i zapotrzebowaniem i może zbliżyć się do ceny płatności zgodnie z rzeczywistym użyciem, gdy region ma niewielką nadwyżkę pojemności. Nigdy nie są naliczane opłaty większe niż cena płatności zgodnie z rzeczywistym użyciem za ten sam rozmiar maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Azure Spot Virtual Machines.

Przed wybraniem regionu i rozmiaru maszyny wirtualnej sprawdź bieżącą stawkę. Możesz sprawdzić go w kalkulatorze cen Azure lub za pośrednictwem interfejsu API cen detalicznych Azure. Aby uzyskać ogólne informacje o cenach, zobacz Azure Machine Learning cennik.

Uwaga

Azure Batch nie obsługuje ustawiania maksymalnej ceny maszyn wirtualnych typu spot, więc nie można ograniczyć stawki, jaką płaci klaster obliczeniowy. Węzły są eksmitowane tylko ze względów pojemności, nigdy ze względu na cenę. Zobacz Uruchamianie obciążeń usługi Batch na ekonomicznych maszynach wirtualnych typu spot.

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 minibatch, niezależnie od postępu. Nie ma możliwości tworzenia punktów kontrolnych.
  • Opłaty są naliczane za każdy węzeł w klastrze, gdy jest on włączony, w tym węzły, które są eksmitowane przed ukończeniem pracy, a także czas uruchamiania każdego węzła zastępczego. Eksmisja nie generuje zwrotu ani środków, a maszyny wirtualne typu spot nie mają umowy SLA. Zobacz Stany maszyny wirtualnej i stan rozliczeń oraz Najlepsze rozwiązania dotyczące Azure Batch.
  • Częste eksmisji mogą sprawić, że klaster będzie kosztował więcej niż dedicated klaster dla tego samego obciążenia, zwłaszcza w regionach, w których stawka spot jest bliska stawki płatności zgodnie z rzeczywistym użyciem.

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.