Sdílet prostřednictvím


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

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

Výpočetní cluster Azure Machine Learning můžete použít k distribuci procesu 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 Learning.

Požadavky

Na základě preferované metody vytvoření výpočetního clusteru vyberte příslušnou kartu pro zbývající požadavky.

  • Pokud kód ve výpočetní instanci nespusíte, nainstalujte sadu Azure Machine Learning Python SDK. Tato sada SDK je už pro vás nainstalovaná ve výpočetní instanci.

  • Připojte se k pracovnímu prostoru ve skriptu Pythonu:

    Spuštěním tohoto kódu se připojte k pracovnímu prostoru Služby Azure Machine Learning.

    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.

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

    # 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žíváte ke správě jiných prostředků a úloh.

Co je výpočetní cluster?

Výpočetní cluster Azure Machine Learning 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.

  • Výpočetní prostředí Azure Machine Learning 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í výpočetních clusterů Azure Machine Learning. 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.

Výpočetní prostředky Služby Azure Machine Learning 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á s kvótou výpočetních instancí pro trénování ve službě Azure Machine Learning.

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 Learning 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ý výpočetní prostředek Služby Azure Machine Learning v Pythonu, zadejte vlastnosti size a max_instances vlastnosti. Azure Machine Learning pak pro ostatní vlastnosti používá inteligentní výchozí hodnoty.

  • velikost: Řada uzlů virtuálních počítačů vytvořená službou Azure Machine Learning Compute.
  • max_instances: Maximální počet uzlů pro automatické škálování při spuštění úlohy ve službě Azure Machine Learning 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í výpočetních prostředků Azure Machine Learning 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()

Odstranění

I když se výpočetní cluster při použití vertikálně navyšuje na nula uzlů, nepřispívají k využití kvóty neschválené uzly. Odstraněním výpočetního clusteru odeberete cílový výpočetní objekt z pracovního prostoru a uvolníte kvótu.

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

Tím se odstraní základní výpočetní cluster vytvořený z objektu create_basic výše v tomto článku.

from azure.ai.ml.entities import AmlCompute

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

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 Azure Machine Learning a dalšími službami.

Řešení problému

Je možné, že někteří uživatelé, kteří vytvořili pracovní prostor Azure Machine Learning z webu Azure Portal před vydáním ga, nemusí v tomto 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 znovu jinou velikost virtuálního počítače.

Tyto série byly vyřazeny 31. srpna 2023:

Tyto série byly vyřazeny 31. srpna 2024:

Zablokovaný při změně velikosti

Pokud se váš výpočetní cluster Azure Machine Learning zablokuje 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ž použijete zámek odstranění u skupiny prostředků pro váš pracovní prostor, zabráníte tím 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: