Tworzenie klastra obliczeniowego usługi Azure Machine Edukacja

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 Edukacja.

Za pomocą usługi Azure Machine Edukacja klastra obliczeniowego 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 obliczeniowego do usługi Azure Machine Edukacja.

Wymagania wstępne

  • Obszar roboczy usługi Azure Machine Learning. Aby uzyskać więcej informacji, zobacz Zarządzanie obszarami roboczymi usługi Azure Machine Edukacja.

  • Rozszerzenie interfejsu wiersza polecenia platformy Azure dla usługi Machine Edukacja Service (wersja 2), Azure Machine Edukacja Python SDK lub rozszerzenie Azure Machine Edukacja Visual Studio Code.

  • Jeśli używasz zestawu SDK języka Python, skonfiguruj środowisko projektowe z obszarem roboczym. Po skonfigurowaniu środowiska dołącz do obszaru roboczego w skrypsie języka Python:

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

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

    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 Edukacja Studio.
    2. Otwórz obszar roboczy, którego chcesz użyć.
    3. W prawym górnym rogu paska narzędzi Azure Machine Edukacja Studio wybierz nazwę obszaru roboczego.
    4. Skopiuj wartość obszaru roboczego, grupy zasobów i identyfikatora subskrypcji do kodu.
    5. Jeśli używasz notesu w programie Studio, musisz skopiować jedną wartość, zamknąć obszar i wkleić, a następnie wrócić do następnego.
    # 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 to procedura obsługi obszaru roboczego, którego będziesz używać do zarządzania innymi zasobami i zadaniami.

Co to jest klaster obliczeniowy?

Klaster obliczeniowy usługi Azure Machine Edukacja 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 Edukacja 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 Edukacja. 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.

Usługa Azure Machine Edukacja Compute może być ponownie użyta w różnych uruchomieniach. 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 usługą Azure Machine Edukacja limit przydziału trenowania wystąpienia obliczeniowego.

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 Edukacja 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 usługi Azure Machine Edukacja Compute w języku Python, określ size właściwości i max_instances . Usługa Azure Machine Edukacja następnie 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 Edukacja Compute.
  • max_instances: maksymalna liczba węzłów do automatycznego skalowania do momentu uruchomienia zadania w usłudze Azure Machine Edukacja 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 Edukacja 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()

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 Edukacja i innymi usługami.

Rozwiązywanie problemów

Istnieje prawdopodobieństwo, że niektórzy użytkownicy, którzy utworzyli obszar roboczy usługi Azure Machine Edukacja 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 przed datą wycofania, aby uniknąć przerw w działaniu usługi.

Seria ta zostanie wycofana 31 sierpnia 2023 r.:

Seria ta zostanie wycofana 31 sierpnia 2024 r.:

Zablokowane przy zmianie rozmiaru

Jeśli klaster obliczeniowy usługi Azure Machine Edukacja jest zablokowany przy zmianie rozmiaru (od 0 do> 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ę.

W przypadku usługi Azure Machine Edukacja 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: