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
Anteckning
I stället för att skapa ett beräkningskluster använder du serverlös beräkning (förhandsversion) för att avlasta hanteringen av beräkningslivscykeln till Azure Machine Learning.
Förutsättningar
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:
- Logga in på Azure Machine Learning-studio.
- Öppna arbetsytan som du vill använda.
- I det övre högra Azure Machine Learning-studio verktygsfältet väljer du namnet på arbetsytan.
- Kopiera värdet för arbetsyta, resursgrupp och prenumerations-ID till koden.
- 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 i virtuella nätverk. 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 antingen ett hanterat virtuellt nätverk eller i ett virtuellt Azure-nätverk, 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
Beräkningskluster kan skapas i en annan region än din arbetsyta. Den här funktionen är endast tillgänglig för beräkningskluster, inte beräkningsinstanser.
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.
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 Machine Learning-beräkningskluster. Mer information om hur du låser resurser finns i Låsa resurser för att förhindra oväntade ändringar.
Skapa
Anteckning
Om du använder serverlös beräkning behöver du inte skapa ett beräkningskluster.
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.
Använd följande exempel för att skapa ett beräkningskluster:
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äkningskluster med virtuella datorer med låg prioritet
Du kan också välja att använda lågprioriterade virtuella datorer för att köra vissa eller alla dina arbetsbelastningar. Dessa virtuella datorer har inte garanterad tillgänglighet och kan förhindras när de används. Du måste starta om ett förinställt jobb.
Med azure-Virtual Machines med låg prioritet kan du dra nytta av Azures outnyttjade kapacitet till betydande kostnadsbesparingar. När som helst när Azure behöver tillbaka kapaciteten avlägsnar Azure-infrastrukturen Azure-Virtual Machines med låg prioritet. Därför är Azure Low Priority Virtual Machine perfekt 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-Virtual Machines 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 avlägsnar Azure-infrastrukturen Azures lågprioritet Virtual Machines
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 beräkningsklustret finns i Konfigurera autentisering mellan Azure Machine Learning och andra tjänster.
Felsökning
Det finns en risk att vissa användare som har skapat sin Azure Machine Learning-arbetsyta från Azure Portal innan GA-versionen kanske inte kan skapa AmlCompute på den 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.
Viktigt
Om beräkningsinstansen eller beräkningskluster baseras på någon av dessa serier återskapar du med en annan VM-storlek före tillbakadragningsdatumet för att undvika avbrott i tjänsten.
Dessa serier dras tillbaka den 31 augusti 2023:
Dessa serier dras tillbaka den 31 augusti 2024:
Har fastnat vid storleksändring
Om ditt Azure Machine Learning-beräkningskluster har fastnat vid storleksändringen (0–> 0) för nodtillståndet kan det bero på att Azure-resurslåsen är orsaken.
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 för 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 de här resurserna 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: