Vytvoření výpočetního clusteru Azure Machine Učení

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

Tento článek vysvětluje, jak vytvořit a spravovat výpočetní cluster v pracovním prostoru Azure Machine Učení.

Pomocí výpočetního clusteru Azure Machine Učení můžete distribuovat proces trénování nebo dávkového odvozování napříč clusterem výpočetních uzlů procesoru nebo GPU v cloudu. Další informace o velikostech virtuálních počítačů, které obsahují GPU, najdete v tématu Velikosti virtuálních počítačů optimalizovaných pro GPU.

Naučte se:

  • Vytvořte výpočetní cluster.
  • Snížení nákladů na výpočetní cluster s využitím virtuálních počítačů s nízkou prioritou
  • Nastavte spravovanou identitu pro cluster.

Poznámka:

Místo vytváření výpočetního clusteru využijte bezserverové výpočetní prostředky k přesměrování správy životního cyklu výpočetního cyklu do služby Azure Machine Učení.

Požadavky

  • Pracovní prostor služby Azure Machine Learning. Další informace najdete v tématu Správa pracovních prostorů Učení Azure Machine.

  • Rozšíření Azure CLI pro službu Machine Učení (v2), Azure Machine Učení Python SDK nebo rozšíření Azure Machine Učení Visual Studio Code.

  • Pokud používáte sadu Python SDK, nastavte vývojové prostředí s pracovním prostorem. Po nastavení prostředí se připojte k pracovnímu prostoru ve skriptu Pythonu:

    PLATÍ PRO: Python SDK azure-ai-ml v2 (aktuální)

    Spuštěním tohoto kódu se připojte k pracovnímu prostoru Azure ML.

    V následujícím kódu nahraďte ID předplatného, název skupiny prostředků a název pracovního prostoru. Tyto hodnoty najdete takto:

    1. Přihlaste se k studio Azure Machine Learning.
    2. Otevřete pracovní prostor, který chcete použít.
    3. V pravém horním studio Azure Machine Learning panelu nástrojů vyberte název pracovního prostoru.
    4. Zkopírujte hodnotu pro pracovní prostor, skupinu prostředků a ID předplatného do kódu.
    5. Pokud používáte poznámkový blok v rámci studia, budete muset zkopírovat jednu hodnotu, oblast zavřít a vložit a pak se vrátit k dalšímu.
    # 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 je obslužná rutina pracovního prostoru, který použijete ke správě jiných prostředků a úloh.

Co je výpočetní cluster?

Výpočetní cluster Azure Machine Učení je spravovaná výpočetní infrastruktura, která umožňuje snadno vytvořit výpočetní prostředky s jedním nebo více uzly. Výpočetní cluster je prostředek, který je možné sdílet s ostatními uživateli ve vašem pracovním prostoru. Výpočetní prostředky se automaticky škálují při odeslání úlohy a dají se umístit do služby Azure Virtual Network. Výpočetní cluster nepodporuje žádné nasazení veřejných IP adres ani ve virtuální síti. Výpočetní prostředí se spustí v kontejnerizovaném prostředí a zabalí závislosti modelu do kontejneru Dockeru.

Výpočetní clustery můžou bezpečně spouštět úlohy ve spravované virtuální síti nebo ve virtuální síti Azure, aniž by podniky musely otevírat porty SSH. Úloha se spustí v kontejnerizovaném prostředí a zabalí závislosti modelu do kontejneru Dockeru.

Omezení

  • Výpočetní clustery je možné vytvořit v jiné oblasti než váš pracovní prostor. Tato funkce je dostupná jenom pro výpočetní clustery, ne pro výpočetní instance.

    Upozorňující

    Při použití výpočetního clusteru v jiné oblasti než v pracovním prostoru nebo úložišti dat se můžou zobrazit vyšší latence sítě a náklady na přenos dat. Latence a náklady můžou nastat při vytváření clusteru a při spouštění úloh.

  • Azure Machine Učení Compute má výchozí limity, například počet jader, která je možné přidělit. Další informace najdete v tématu Správa a vyžádání kvót pro prostředky Azure.

  • Azure umožňuje umístit zámky na prostředky, aby je nebylo možné odstranit nebo jen pro čtení. Nepoužívejte zámky prostředků na skupinu prostředků, která obsahuje váš pracovní prostor. Použití zámku u skupiny prostředků, která obsahuje váš pracovní prostor, brání operacím škálování pro výpočetní clustery Azure Machine Učení. Další informace o uzamčení prostředků najdete v tématu Uzamčení prostředků, abyste zabránili neočekávaným změnám.

Vytvoření

Časový odhad: Přibližně pět minut.

Poznámka:

Pokud používáte bezserverové výpočetní prostředky, nemusíte vytvářet výpočetní cluster.

Azure Machine Učení Compute je možné opakovaně používat napříč běhy. Výpočetní prostředky je možné sdílet s ostatními uživateli v pracovním prostoru a zachovat mezi spuštěními, automaticky vertikálně navyšovat nebo snížit kapacitu uzlů na základě počtu odeslaných spuštění a nastaveného max_nodes v clusteru. Nastavení min_nodes řídí minimální dostupné uzly.

Vyhrazená jádra na oblast na řadu virtuálních počítačů a celková kvóta pro oblast, která se vztahuje na vytvoření výpočetního clusteru, je jednotná a sdílená se službou Azure Machine Učení trénovací kvótou výpočetní instance.

Důležité

Pokud se chcete vyhnout poplatkům, pokud nejsou spuštěné žádné úlohy, nastavte minimální počet uzlů na 0. Toto nastavení umožňuje službě Azure Machine Učení zrušit přidělení uzlů, když se nepoužívají. Jakákoli hodnota větší než 0 zachová tento počet uzlů spuštěných, i když se nepoužívají.

Pokud se výpočetní prostředky nepoužívají, automaticky se škáluje na nula uzlů. Vyhrazené virtuální počítače se vytvoří pro spouštění úloh podle potřeby.

Pomocí následujících příkladů vytvořte výpočetní cluster:

Pokud chcete vytvořit trvalý prostředek Azure Machine Učení Compute v Pythonu, zadejte a sizemax_instances vlastnosti. Azure Machine Učení pak pro ostatní vlastnosti používá inteligentní výchozí hodnoty.

  • velikost: Řada uzlů virtuálních počítačů vytvořená službou Azure Machine Učení Compute.
  • max_instances: Maximální počet uzlů k automatickému škálování při spuštění úlohy na počítači Azure Učení Compute.

PLATÍ PRO: Python SDK azure-ai-ml v2 (aktuální)

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()

Při vytváření služby Azure Machine Učení Compute můžete také nakonfigurovat několik pokročilých vlastností. Vlastnosti umožňují vytvořit trvalý cluster s pevnou velikostí nebo v rámci existující virtuální sítě Azure ve vašem předplatném. Podrobnosti najdete v třídě AmlCompute.

Upozorňující

Při nastavování parametru location , pokud se jedná o jinou oblast než pracovní prostor nebo úložiště dat, může se zobrazit vyšší latence sítě a náklady na přenos dat. Latence a náklady můžou nastat při vytváření clusteru a při spouštění úloh.

Snížení nákladů na výpočetní cluster s využitím virtuálních počítačů s nízkou prioritou

Můžete také použít virtuální počítače s nízkou prioritou ke spouštění některých nebo všech úloh. Tyto virtuální počítače nemají zaručenou dostupnost a mohou být při použití předem zrušené. Musíte restartovat předem zatěžovanou úlohu.

Použití virtuálních počítačů s nízkou prioritou Azure vám umožní využít nevyužitou kapacitu Azure za významné úspory nákladů. V jakémkoli okamžiku, kdy Azure potřebuje kapacitu zpět, infrastruktura Azure vyřadí virtuální počítače Azure s nízkou prioritou. Virtuální počítač Azure s nízkou prioritou je proto skvělý pro úlohy, které můžou zvládnout přerušení. Množství dostupné kapacity se může lišit v závislosti na velikosti, oblasti, denní době a dalších možnostech. Při nasazování virtuálních počítačů s nízkou prioritou Azure přiděluje Azure virtuální počítače, pokud je k dispozici kapacita, ale pro tyto virtuální počítače neexistuje žádná smlouva SLA. Virtuální počítač s nízkou prioritou Azure nenabízí žádné záruky vysoké dostupnosti. V jakémkoli okamžiku, kdy Azure potřebuje kapacitu zpět, infrastruktura Azure vyřadí virtuální počítače Azure s nízkou prioritou.

K určení virtuálního počítače s nízkou prioritou použijte některý z těchto způsobů:

PLATÍ PRO: Python SDK azure-ai-ml v2 (aktuální)

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()

Nastavení spravované identity

Informace o tom, jak nakonfigurovat spravovanou identitu s výpočetním clusterem, najdete v tématu Nastavení ověřování mezi službou Azure Machine Učení a dalšími službami.

Řešení problému

Je možné, že někteří uživatelé, kteří vytvořili pracovní prostor Azure Machine Učení z webu Azure Portal před vydáním ga, nemusí v daném pracovním prostoru vytvářet AmlCompute. Můžete buď vytvořit žádost o podporu pro službu, nebo vytvořit nový pracovní prostor prostřednictvím portálu nebo sady SDK a okamžitě se odblokovat.

Důležité

Pokud jsou vaše výpočetní instance nebo výpočetní clustery založené na některé z těchto řad, vytvořte před datem vyřazení z provozu znovu jinou velikost virtuálního počítače, abyste se vyhnuli přerušení služeb.

Tyto série se vyřazuje 31. srpna 2023:

Tyto série se vyřazuje 31. srpna 2024:

Zablokovaný při změně velikosti

Pokud se váš výpočetní cluster Azure Učení zobrazí při změně velikosti (0–>0) stavu uzlu, může to být příčinou zámků prostředků Azure.

Azure umožňuje umístit zámky na prostředky, aby je nebylo možné odstranit nebo jsou jen pro čtení. Uzamčení prostředku může vést k neočekávaným výsledkům. Některé operace, u kterých se zdá, že prostředek neupravují, ve skutečnosti vyžadují akce, které zámek zablokuje.

Když Učení Azure Machine, použití zámku odstranění u skupiny prostředků pro váš pracovní prostor zabrání operacím škálování výpočetních clusterů Azure ML. Pokud chcete tento problém obejít, doporučujeme odebrat zámek ze skupiny prostředků a místo toho ho použít u jednotlivých položek ve skupině.

Důležité

Zámek nepoužívejte u následujících prostředků:

Název prostředku Typ prostředku
<GUID>-azurebatch-cloudservicenetworksecurityggroup Skupina zabezpečení sítě
<GUID>-azurebatch-cloudservicepublicip Veřejná IP adresa
<GUID>-azurebatch-cloudserviceloadbalancer Load Balancer

Tyto prostředky se používají ke komunikaci s výpočetním clusterem a provádějí operace, jako je škálování na výpočetní cluster. Odebrání zámku prostředku z těchto prostředků by mělo umožňovat automatické škálování výpočetních clusterů.

Další informace o uzamčení prostředků najdete v tématu Uzamčení prostředků, abyste zabránili neočekávaným změnám.

Další krok

Pomocí výpočetního clusteru můžete: