Udostępnij za pośrednictwem


Tworzenie klastra obliczeniowego usługi Azure Machine Learning

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

W tym artykule wyjaśniono, jak utworzyć klaster obliczeniowy i zarządzać nim w obszarze roboczym usługi Azure Machine Learning.

Za pomocą klastra obliczeniowego usługi Azure Machine Learning można dystrybuować proces trenowania lub wnioskowania wsadowego w klastrze węzłów obliczeniowych procesora CPU lub procesora GPU w chmurze. Aby uzyskać więcej informacji na temat rozmiarów maszyn wirtualnych, które obejmują procesory GPU, zobacz Rozmiary maszyn wirtualnych zoptymalizowane pod kątem procesora GPU.

Instrukcje:

  • Utwórz klaster obliczeniowy.
  • Obniż koszt klastra obliczeniowego przy użyciu maszyn wirtualnych o niskim priorytcie.
  • Skonfiguruj tożsamość zarządzaną dla klastra.

Uwaga

Zamiast tworzyć klaster obliczeniowy, użyj bezserwerowych zasobów obliczeniowych , aby odciążyć zarządzanie cyklem życia obliczeń w usłudze Azure Machine Learning.

Wymagania wstępne

Wybierz odpowiednią kartę dla pozostałych wymagań wstępnych w oparciu o preferowaną metodę tworzenia klastra obliczeniowego.

  • Jeśli nie uruchamiasz kodu w wystąpieniu obliczeniowym, zainstaluj zestaw SDK języka Python usługi Azure Machine Learning. Ten zestaw SDK jest już zainstalowany w wystąpieniu obliczeniowym.

  • Dołącz do obszaru roboczego w skrypsie języka Python:

    Uruchom ten kod, aby nawiązać połączenie z obszarem roboczym usługi Azure Machine Learning.

    Zastąp identyfikator subskrypcji, nazwę grupy zasobów i nazwę obszaru roboczego w poniższym kodzie. Aby znaleźć następujące wartości:

    1. Zaloguj się do usługi Azure Machine Learning Studio.
    2. Otwórz obszar roboczy, którego chcesz użyć.
    3. Wybierz nazwę obszaru roboczego na pasku narzędzi usługi Azure Machine Learning Studio w prawym górnym rogu.
    4. Skopiuj wartość obszaru roboczego, grupy zasobów i identyfikatora subskrypcji do kodu.

    DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

    # Enter details of your AML workspace
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    workspace = "<AML_WORKSPACE_NAME>"
    # get a handle to the workspace
    from azure.ai.ml import MLClient
    from azure.identity import DefaultAzureCredential
    
    ml_client = MLClient(
        DefaultAzureCredential(), subscription_id, resource_group, workspace
    )

    ml_client jest procedurą obsługi obszaru roboczego używanego do zarządzania innymi zasobami i zadaniami.

Co to jest klaster obliczeniowy?

Klaster obliczeniowy usługi Azure Machine Learning to zarządzana infrastruktura obliczeniowa, która umożliwia łatwe tworzenie pojedynczego lub wielowęźleowego środowiska obliczeniowego. Klaster obliczeniowy to zasób, który może być udostępniany innym użytkownikom w obszarze roboczym. Obliczenia są skalowane automatycznie w górę po przesłaniu zadania i można je umieścić w usłudze Azure Virtual Network. Klaster obliczeniowy nie obsługuje również wdrożenia publicznego adresu IP w sieci wirtualnej. Obliczenia są wykonywane w środowisku konteneryzowanym i pakują zależności modelu w kontenerze platformy Docker.

Klastry obliczeniowe mogą bezpiecznie uruchamiać zadania w zarządzanej sieci wirtualnej lub sieci wirtualnej platformy Azure bez konieczności otwierania portów SSH przez przedsiębiorstwa. Zadanie jest wykonywane w środowisku konteneryzowanym i pakuje zależności modelu w kontenerze platformy Docker.

Ograniczenia

  • Klastry obliczeniowe można tworzyć w innym regionie niż obszar roboczy. Ta funkcja jest dostępna tylko dla klastrów obliczeniowych, a nie wystąpień obliczeniowych.

    Ostrzeżenie

    W przypadku korzystania z klastra obliczeniowego w innym regionie niż obszar roboczy lub magazyny danych mogą pojawić się zwiększone opóźnienia sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.

  • Usługa Azure Machine Learning Compute ma domyślne limity, takie jak liczba rdzeni, które można przydzielić. Aby uzyskać więcej informacji, zobacz Zarządzanie limitami przydziałów i żądania dla zasobów platformy Azure.

  • Platforma Azure umożliwia umieszczenie blokad w zasobach , dzięki czemu nie można ich usunąć ani nie są tylko do odczytu. Nie należy stosować blokad zasobów do grupy zasobów zawierającej obszar roboczy. Zastosowanie blokady do grupy zasobów zawierającej obszar roboczy uniemożliwia skalowanie operacji dla klastrów obliczeniowych usługi Azure Machine Learning. Aby uzyskać więcej informacji na temat blokowania zasobów, zobacz Blokowanie zasobów, aby zapobiec nieoczekiwanym zmianom.

Utworzenie

Szacowanie czasu: około pięciu minut.

Uwaga

Jeśli używasz bezserwerowych obliczeń, nie musisz tworzyć klastra obliczeniowego.

Środowisko obliczeniowe usługi Azure Machine Learning można używać ponownie w ramach przebiegów. Obliczenia mogą być udostępniane innym użytkownikom w obszarze roboczym i są zachowywane między przebiegami, automatycznie skalując węzły w górę lub w dół na podstawie liczby przesłanych przebiegów i max_nodes zestawu w klastrze. Ustawienie min_nodes steruje minimalnymi dostępnymi węzłami.

Dedykowane rdzenie na region na przydział rodziny maszyn wirtualnych i całkowity limit przydziału regionalnego, który ma zastosowanie do tworzenia klastra obliczeniowego, jest ujednolicony i współużytkowany z limitem przydziału wystąpienia obliczeniowego trenowania usługi Azure Machine Learning.

Ważne

Aby uniknąć naliczania opłat w przypadku braku uruchomionych zadań, ustaw minimalną wartość węzłów na 0. To ustawienie umożliwia usłudze Azure Machine Learning anulowanie przydzielania węzłów, gdy nie są one używane. Każda wartość większa niż 0 zachowa liczbę uruchomionych węzłów, nawet jeśli nie są używane.

Obliczenia są skalowane automatycznie do zera węzłów, gdy nie są używane. Dedykowane maszyny wirtualne są tworzone w celu uruchamiania zadań zgodnie z potrzebami.

Skorzystaj z poniższych przykładów, aby utworzyć klaster obliczeniowy:

Aby utworzyć trwały zasób obliczeniowy usługi Azure Machine Learning w języku Python, określ size właściwości i max_instances . Następnie usługa Azure Machine Learning używa inteligentnych wartości domyślnych dla innych właściwości.

  • size: rodzina maszyn wirtualnych węzłów utworzonych przez usługę Azure Machine Learning Compute.
  • max_instances: maksymalna liczba węzłów do automatycznego skalowania do momentu uruchomienia zadania w usłudze Azure Machine Learning Compute.

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

from azure.ai.ml.entities import AmlCompute

cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic).result()

Podczas tworzenia usługi Azure Machine Learning Compute można również skonfigurować kilka zaawansowanych właściwości. Właściwości umożliwiają utworzenie trwałego klastra o stałym rozmiarze lub w istniejącej sieci wirtualnej platformy Azure w ramach subskrypcji. Aby uzyskać szczegółowe informacje, zobacz klasę AmlCompute.

Ostrzeżenie

W przypadku ustawiania parametru location , jeśli jest to inny region niż obszar roboczy lub magazyny danych, może wystąpić zwiększone opóźnienie sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.

Obniżanie kosztów klastra obliczeniowego przy użyciu maszyn wirtualnych o niskim priorytcie

Możesz również użyć maszyn wirtualnych o niskim priorytcie do uruchamiania niektórych lub wszystkich obciążeń. Te maszyny wirtualne nie mają gwarantowanej dostępności i mogą zostać wywłaszczone podczas używania. Musisz ponownie uruchomić zadanie wywłaszczone.

Korzystanie z maszyn wirtualnych o niskim priorytcie platformy Azure umożliwia korzystanie z nieużywanej pojemności platformy Azure przy znaczących oszczędnościach kosztów. W dowolnym momencie, gdy platforma Azure potrzebuje pojemności z powrotem, infrastruktura platformy Azure eksmituje maszyny wirtualne platformy Azure o niskim priorytcie. W związku z tym maszyna wirtualna o niskim priorytcie platformy Azure doskonale nadaje się do obsługi obciążeń, które mogą obsługiwać przerwy. Ilość dostępnej pojemności może się różnić w zależności od rozmiaru, regionu, godziny dnia i innych. Podczas wdrażania maszyn wirtualnych z niskim priorytetem platformy Azure platforma Azure przydziela maszyny wirtualne, jeśli jest dostępna pojemność, ale nie ma umowy SLA dla tych maszyn wirtualnych. Maszyna wirtualna o niskim priorytcie platformy Azure nie oferuje gwarancji wysokiej dostępności. W dowolnym momencie, gdy platforma Azure potrzebuje pojemności z powrotem, infrastruktura platformy Azure eksmituje maszyny wirtualne platformy Azure o niskim priorytcie.

Użyj dowolnego z tych sposobów, aby określić maszynę wirtualną o niskim priorytcie:

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

from azure.ai.ml.entities import AmlCompute

cluster_low_pri = AmlCompute(
    name="low-pri-example",
    size="STANDARD_DS3_v2",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
    tier="low_priority",
)
ml_client.begin_create_or_update(cluster_low_pri).result()

Delete

Podczas gdy klaster obliczeniowy jest skalowany w dół do zera, gdy nie jest używany, nieprowizowane węzły przyczyniają się do użycia limitu przydziału. Usunięcie klastra obliczeniowego powoduje usunięcie docelowego obiektu obliczeniowego z obszaru roboczego i zwalnia limit przydziału.

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

Spowoduje to usunięcie podstawowego klastra obliczeniowego utworzonego create_basic na podstawie obiektu wcześniej w tym artykule.

from azure.ai.ml.entities import AmlCompute

ml_client.compute.begin_delete(cluster_basic.name).wait()

Konfigurowanie tożsamości zarządzanej

Aby uzyskać informacje na temat konfigurowania tożsamości zarządzanej za pomocą klastra obliczeniowego, zobacz Konfigurowanie uwierzytelniania między usługą Azure Machine Learning i innymi usługami.

Rozwiązywanie problemów

Istnieje prawdopodobieństwo, że niektórzy użytkownicy, którzy utworzyli swój obszar roboczy usługi Azure Machine Learning z witryny Azure Portal przed wydaniem ogólnie dostępnej wersji, mogą nie być w stanie utworzyć aplikacji AmlCompute w tym obszarze roboczym. Możesz zgłosić wniosek o pomoc techniczną dla usługi lub utworzyć nowy obszar roboczy za pośrednictwem portalu lub zestawu SDK, aby natychmiast odblokować siebie.

Ważne

Jeśli wystąpienie obliczeniowe lub klastry obliczeniowe są oparte na dowolnej z tych serii, utwórz ponownie inny rozmiar maszyny wirtualnej.

Seria ta została wycofana 31 sierpnia 2023 r.:

Seria ta została wycofana 31 sierpnia 2024 r.:

Zablokowane przy zmianie rozmiaru

Jeśli klaster obliczeniowy usługi Azure Machine Learning jest zablokowany przy zmianie rozmiaru (0–> 0) dla stanu węzła, blokady zasobów platformy Azure mogą być przyczyną.

Platforma Azure umożliwia umieszczanie blokad w zasobach , dzięki czemu nie można ich usunąć lub są tylko do odczytu. Zablokowanie zasobu może prowadzić do nieoczekiwanych wyników. W przypadku niektórych operacji może wydawać się, że nie modyfikują one zasobu, ale w rzeczywistości wymagają one działań blokowanych przez blokadę.

Dzięki usłudze Azure Machine Learning zastosowanie blokady usuwania do grupy zasobów dla obszaru roboczego uniemożliwi operacje skalowania dla klastrów obliczeniowych usługi Azure ML. Aby obejść ten problem, zalecamy usunięcie blokady z grupy zasobów i zastosowanie jej do poszczególnych elementów w grupie.

Ważne

Nie należy stosować blokady do następujących zasobów:

Nazwa zasobu Typ zasobu
<GUID>-azurebatch-cloudservicenetworksecurityggroup Sieciowa grupa zabezpieczeń
<GUID>-azurebatch-cloudservicepublicip Publiczny adres IP
<GUID>-azurebatch-cloudserviceloadbalancer Moduł równoważenia obciążenia

Te zasoby są używane do komunikowania się i wykonywania operacji, takich jak skalowanie w klastrze obliczeniowym. Usunięcie blokady zasobów z tych zasobów powinno zezwalać na skalowanie automatyczne dla klastrów obliczeniowych.

Aby uzyskać więcej informacji na temat blokowania zasobów, zobacz Blokowanie zasobów, aby zapobiec nieoczekiwanym zmianom.

Następny krok

Użyj klastra obliczeniowego, aby: