Skapa ett Azure Machine Learning-beräkningskluster

GÄLLER FÖR:Azure CLI ml extension v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

Lär dig hur du skapar och hanterar ett beräkningskluster på din Azure Machine Learning-arbetsyta.

Du kan använda Azure Machine Learning-beräkningskluster för att distribuera en tränings- eller batchinferensprocess över ett kluster med CPU- eller GPU-beräkningsnoder i molnet. Mer information om vm-storlekar som innehåller GPU:er finns i GPU-optimerade storlekar för virtuella datorer.

I den här artikeln lär du dig att:

  • Skapa ett beräkningskluster
  • Sänka kostnaden för beräkningsklustret med virtuella datorer med låg prioritet
  • Konfigurera en hanterad identitet för klustret

Krav

  • En Azure Machine Learning-arbetsyta. Mer information finns i Skapa en Azure Machine Learning-arbetsyta.

  • Azure CLI-tillägget för Machine Learning Service (v2), Azure Machine Learning Python SDK eller Azure Machine Learning Visual Studio Code-tillägget.

  • Om du använder Python SDK konfigurerar du utvecklingsmiljön med en arbetsyta. När din miljö har konfigurerats ansluter du till arbetsytan i Python-skriptet:

    GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

    Kör den här koden för att ansluta till din Azure ML-arbetsyta.

    Ersätt ditt prenumerations-ID, resursgruppsnamn och arbetsytenamn i koden nedan. Så här hittar du följande värden:

    1. Logga in på Azure Machine Learning Studio.
    2. Öppna arbetsytan som du vill använda.
    3. I det övre högra Azure Machine Learning Studio verktygsfältet väljer du namnet på arbetsytan.
    4. Kopiera värdet för arbetsyta, resursgrupp och prenumerations-ID till koden.
    5. Om du använder en notebook-fil i studio måste du kopiera ett värde, stänga området och klistra in och sedan komma tillbaka för nästa.
    # 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 är en hanterare för arbetsytan som du ska använda för att hantera andra resurser och jobb.

Vad är ett beräkningskluster?

Azure Machine Learning-beräkningskluster är en infrastruktur för hanterad beräkning som gör att du enkelt kan skapa en beräkning med en enda eller flera noder. Beräkningsklustret är en resurs som kan delas med andra användare på din arbetsyta. Beräkningen skalas upp automatiskt när ett jobb skickas och kan placeras i en Azure-Virtual Network. Beräkningsklustret stöder inte heller någon offentlig IP-distribution (förhandsversion) i det virtuella nätverket. Beräkningen körs i en containerbaserad miljö och paketera dina modellberoenden i en Docker-container.

Beräkningskluster kan köra jobb på ett säkert sätt i en virtuell nätverksmiljö, utan att företag behöver öppna SSH-portar. Jobbet körs i en containerbaserad miljö och paketera dina modellberoenden i en Docker-container.

Begränsningar

  • Några av de scenarier som anges i det här dokumentet markeras som förhandsversion. Förhandsversionsfunktioner tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

  • Beräkningskluster kan skapas i en annan region än din arbetsyta. Den här funktionen är i förhandsversion och är endast tillgänglig för beräkningskluster, inte beräkningsinstanser. Den här förhandsversionen är inte tillgänglig om du använder en privat slutpunktsaktiverad arbetsyta.

    Varning

    När du använder ett beräkningskluster i en annan region än din arbetsyta eller dina datalager kan du se ökade kostnader för nätverksfördröjning och dataöverföring. Svarstiden och kostnaderna kan uppstå när klustret skapas och när jobb körs på det.

  • Vi stöder för närvarande endast skapande (och inte uppdatering) av kluster via ARM-mallar. För att uppdatera beräkning rekommenderar vi att du använder SDK, Azure CLI eller UX för tillfället.

  • Azure Machine Learning Compute har standardgränser, till exempel antalet kärnor som kan allokeras. Mer information finns i Hantera och begära kvoter för Azure-resurser.

  • Med Azure kan du placera lås på resurser så att de inte kan tas bort eller är skrivskyddade. Använd inte resurslås för den resursgrupp som innehåller din arbetsyta. Om du tillämpar ett lås på resursgruppen som innehåller din arbetsyta förhindrar du skalningsåtgärder för Azure ML-beräkningskluster. Mer information om hur du låser resurser finns i Låsa resurser för att förhindra oväntade ändringar.

Tips

Kluster kan vanligtvis skala upp till 100 noder så länge du har tillräckligt med kvot för det antal kärnor som krävs. Som standard konfigureras kluster med kommunikation mellan noder aktiverad mellan noderna i klustret för att till exempel stödja MPI-jobb. Du kan dock skala dina kluster till 1 000-talet noder genom att bara skapa ett supportärende och begära en lista över prenumerationer eller arbetsytor eller ett specifikt kluster för inaktivering av kommunikation mellan noder.

Skapa

Tidsuppskattning: Cirka 5 minuter.

Azure Machine Learning Compute kan återanvändas mellan körningar. Beräkningen kan delas med andra användare på arbetsytan och behålls mellan körningar, automatiskt skala upp eller ned noder baserat på antalet skickade körningar och max_nodes anges i klustret. Inställningen min_nodes styr de minsta tillgängliga noderna.

De dedikerade kärnorna per region per VM-familjekvot och total regional kvot, som gäller för skapande av beräkningskluster, är enhetliga och delas med kvoten för Azure Machine Learning-träningsberäkningsinstanser.

Viktigt

Om du vill undvika avgifter när inga jobb körs anger du minsta noder till 0. Med den här inställningen kan Azure Machine Learning avallokera noderna när de inte används. Alla värden som är större än 0 håller det antalet noder igång, även om de inte används.

Beräkningen skalas automatiskt ned till noll noder när den inte används. Dedikerade virtuella datorer skapas för att köra dina jobb efter behov.

Det snabbaste sättet att skapa ett beräkningskluster är att följa snabbstarten: Skapa arbetsyteresurser som du behöver för att komma igång med Azure Machine Learning.

Eller använd följande exempel för att skapa ett beräkningskluster med fler alternativ:

Om du vill skapa en beständig Azure Machine Learning Compute-resurs i Python anger du storlek och max_instances egenskaper. Azure Machine Learning använder sedan smarta standardvärden för de andra egenskaperna.

  • size*: Den virtuella datorfamiljen för noderna som skapats av Azure Machine Learning Compute.
  • *max_instances: Det maximala antalet noder som ska skalas upp automatiskt till när du kör ett jobb på Azure Machine Learning Compute.

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

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

Du kan också konfigurera flera avancerade egenskaper när du skapar Azure Machine Learning Compute. Med egenskaperna kan du skapa ett beständigt kluster med fast storlek eller inom en befintlig Azure-Virtual Network i din prenumeration. Mer information finns i klassen AmlCompute .

Varning

Om det är en annan region än din arbetsyta eller dina datalager när du anger parametern location kan du se ökade kostnader för nätverksfördröjning och dataöverföring. Svarstiden och kostnaderna kan uppstå när klustret skapas och när jobb körs på det.

Sänka kostnaden för beräkningsklustret med virtuella datorer med låg prioritet

Du kan också välja att använda virtuella datorer med låg prioritet för att köra vissa eller alla dina arbetsbelastningar. De här virtuella datorerna har inte garanterad tillgänglighet och kan föregripas när de används. Du måste starta om ett förinställt jobb.

Med azure low priority 虛擬機器 kan du dra nytta av Azures outnyttjade kapacitet till betydande kostnadsbesparingar. När som helst när Azure behöver tillbaka kapaciteten tar Azure-infrastrukturen bort Azure Low Priority-虛擬機器. Därför är Azure Low Priority-虛擬機器 bra för arbetsbelastningar som kan hantera avbrott. Mängden tillgänglig kapacitet kan variera beroende på storlek, region, tid på dagen med mera. När du distribuerar Azure Low Priority-虛擬機器 allokerar Azure de virtuella datorerna om det finns tillgänglig kapacitet, men det finns inget serviceavtal för dessa virtuella datorer. En virtuell Azure-dator med låg prioritet erbjuder inga garantier för hög tillgänglighet. När som helst när Azure behöver tillbaka kapaciteten tar Azure-infrastrukturen bort Azure Low Priority-虛擬機器

Använd något av följande sätt för att ange en virtuell dator med låg prioritet:

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

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

Konfigurera hanterad identitet

Information om hur du konfigurerar en hanterad identitet med ditt beräkningskluster finns i Konfigurera autentisering mellan Azure Machine Learning och andra tjänster.

Felsökning

Det finns en chans att vissa användare som skapade sin Azure Machine Learning-arbetsyta från Azure-Portal innan GA-versionen kanske inte kan skapa AmlCompute på arbetsytan. Du kan antingen skapa en supportbegäran mot tjänsten eller skapa en ny arbetsyta via portalen eller SDK för att avblockera dig själv omedelbart.

Har fastnat vid storleksändring

Om ditt Azure Machine Learning-beräkningskluster har fastnat vid storleksändringen (0–> 0) för nodtillståndet kan detta orsakas av Azure-resurslås.

Med Azure kan du placera lås på resurser, så att de inte kan tas bort eller är skrivskyddade. Att låsa en resurs kan leda till oväntade resultat. Vissa åtgärder som inte verkar ändra resursen kräver faktiskt åtgärder som blockeras av låset.

Med Azure Machine Learning förhindrar användning av ett borttagningslås på resursgruppen för din arbetsyta skalningsåtgärder för Azure ML-beräkningskluster. För att undvika det här problemet rekommenderar vi att du tar bort låset från resursgruppen och i stället tillämpar det på enskilda objekt i gruppen.

Viktigt

Använd inte låset på följande resurser:

Resursnamn Resurstyp
<GUID>-azurebatch-cloudservicenetworksecurityggroup Nätverkssäkerhetsgrupp
<GUID>-azurebatch-cloudservicepublicip Offentlig IP-adress
<GUID>-azurebatch-cloudserviceloadbalancer Lastbalanserare

Dessa resurser används för att kommunicera med och utföra åtgärder som att skala på beräkningsklustret. Om du tar bort resurslåset från dessa resurser bör du tillåta automatisk skalning för dina beräkningskluster.

Mer information om resurslåsning finns i Låsa resurser för att förhindra oväntade ändringar.

Nästa steg

Använd beräkningsklustret för att: