Een Azure Machine Learning-rekencluster maken
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
In dit artikel wordt uitgelegd hoe u een rekencluster maakt en beheert in uw Azure Machine Learning-werkruimte.
U kunt een Azure Machine Learning-rekencluster gebruiken om een training of batchdeductieproces te distribueren over een cluster met CPU- of GPU-rekenknooppunten in de cloud. Zie GPU-geoptimaliseerde vm-grootten voor meer informatie over de VM-grootten die GPU's bevatten.
Leer hoe u het volgende doet:
- Maak een rekencluster.
- Verlaag de kosten van uw rekencluster met VM's met lage prioriteit.
- Stel een beheerde identiteit in voor het cluster.
Notitie
In plaats van een rekencluster te maken, gebruikt u serverloze rekenkracht om het levenscyclusbeheer van rekenprocessen naar Azure Machine Learning te offloaden.
Vereisten
- Een Azure Machine Learning-werkruimte. Zie Azure Machine Learning-werkruimten beheren voor meer informatie.
Selecteer het juiste tabblad voor de rest van de vereisten op basis van de gewenste methode voor het maken van het rekencluster.
Als u uw code niet uitvoert op een rekenproces, installeert u de Azure Machine Learning Python SDK. Deze SDK is al voor u geïnstalleerd op een rekenproces.
Koppelen aan de werkruimte in uw Python-script:
Voer deze code uit om verbinding te maken met uw Azure Machine Learning-werkruimte.
Vervang uw abonnements-id, resourcegroepnaam en werkruimtenaam in de volgende code. Deze waarden zoeken:
- Meld u aan bij Azure Machine Learning Studio.
- Open de werkruimte die u wilt gebruiken.
- Selecteer de naam van uw werkruimte in de rechterbovenhoek Azure Machine Learning-studio werkbalk.
- Kopieer de waarde voor werkruimte, resourcegroep en abonnements-id naar de code.
VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)
# 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
is een handler voor de werkruimte die u gebruikt om andere resources en taken te beheren.
Wat is een rekencluster?
Azure Machine Learning-rekencluster is een beheerde-rekeninfrastructuur waarmee u eenvoudig een rekenproces met één of meerdere knooppunten kunt maken. Het rekencluster is een resource die kan worden gedeeld met andere gebruikers in uw werkruimte. De rekenkracht wordt automatisch opgeschaald wanneer een taak wordt verzonden en kan worden geplaatst in een virtueel Azure-netwerk. Rekencluster ondersteunt geen openbare IP-implementatie en ook in een virtueel netwerk. De berekening wordt uitgevoerd in een containeromgeving en verpakt uw modelafhankelijkheden in een Docker-container.
Rekenclusters kunnen taken veilig uitvoeren in een beheerd virtueel netwerk of een virtueel Azure-netwerk, zonder dat ondernemingen SSH-poorten hoeven te openen. De taak wordt uitgevoerd in een containeromgeving en verpakt uw modelafhankelijkheden in een Docker-container.
Beperkingen
Rekenclusters kunnen worden gemaakt in een andere regio dan uw werkruimte. Deze functionaliteit is alleen beschikbaar voor rekenclusters, niet voor rekeninstanties.
Waarschuwing
Wanneer u een rekencluster in een andere regio gebruikt dan uw werkruimte of gegevensarchieven, ziet u mogelijk meer netwerklatentie en kosten voor gegevensoverdracht. De latentie en kosten kunnen optreden bij het maken van het cluster en bij het uitvoeren van taken.
Azure Machine Learning Compute heeft standaardlimieten, zoals het aantal kernen dat kan worden toegewezen. Zie Quota beheren en aanvragen voor Azure-resources voor meer informatie.
Met Azure kunt u vergrendelingen op resources plaatsen, zodat ze niet kunnen worden verwijderd of alleen-lezen zijn. Pas geen resourcevergrendelingen toe op de resourcegroep die uw werkruimte bevat. Door een vergrendeling toe te passen op de resourcegroep die uw werkruimte bevat, voorkomt u schaalbewerkingen voor Azure Machine Learning-rekenclusters. Zie Resources vergrendelen om onverwachte wijzigingen te voorkomen voor meer informatie over het vergrendelen van resources.
Maken
Geschatte tijd: ongeveer vijf minuten.
Notitie
Als u serverloze berekeningen gebruikt, hoeft u geen rekencluster te maken.
Azure Machine Learning Compute kan opnieuw worden gebruikt voor uitvoeringen. De berekening kan worden gedeeld met andere gebruikers in de werkruimte en wordt bewaard tussen uitvoeringen, knooppunten automatisch omhoog of omlaag schalen op basis van het aantal verzonden uitvoeringen en de max_nodes
set op uw cluster. De min_nodes
instelling bepaalt de minimale beschikbare knooppunten.
De toegewezen kernen per regio per VM-familiequotum en het totale regionale quotum, dat van toepassing is op het maken van rekenclusters, wordt geïntegreerd en gedeeld met het quotum voor rekeninstanties van Azure Machine Learning-training.
Belangrijk
Als u kosten wilt voorkomen wanneer er geen taken worden uitgevoerd, stelt u de minimale knooppunten in op 0. Met deze instelling kan Azure Machine Learning de toewijzing van de knooppunten ongedaan maken wanneer ze niet in gebruik zijn. Elke waarde die groter is dan 0 houdt dat aantal knooppunten actief, zelfs als ze niet in gebruik zijn.
De berekening wordt automatisch geschaald naar nul knooppunten wanneer deze niet wordt gebruikt. Toegewezen VM's worden zo nodig gemaakt om uw taken uit te voeren.
Gebruik de volgende voorbeelden om een rekencluster te maken:
Als u een permanente Azure Machine Learning Compute-resource in Python wilt maken, geeft u de size
en max_instances
eigenschappen op. Azure Machine Learning gebruikt vervolgens slimme standaardinstellingen voor de andere eigenschappen.
- grootte: de VM-serie van de knooppunten die zijn gemaakt door Azure Machine Learning Compute.
- max_instances: het maximum aantal knooppunten dat automatisch moet worden geschaald wanneer u een taak uitvoert op Azure Machine Learning Compute.
VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)
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()
U kunt ook verschillende geavanceerde eigenschappen configureren wanneer u Azure Machine Learning Compute maakt. Met de eigenschappen kunt u een permanent cluster met vaste grootte of binnen een bestaand Virtueel Azure-netwerk in uw abonnement maken. Zie de klasse AmlCompute voor meer informatie.
Waarschuwing
Bij het instellen van de location
parameter, als deze een andere regio is dan uw werkruimte of gegevensarchieven, ziet u mogelijk meer netwerklatentie en kosten voor gegevensoverdracht. De latentie en kosten kunnen optreden bij het maken van het cluster en bij het uitvoeren van taken.
Verlaag de kosten van uw rekencluster met VM's met lage prioriteit
U kunt er ook voor kiezen om vm's met lage prioriteit te gebruiken om sommige of al uw workloads uit te voeren. Deze VM's hebben geen gegarandeerde beschikbaarheid en worden mogelijk in gebruik. U moet een geprempteerde taak opnieuw starten.
Met virtuele Machines met lage prioriteit van Azure kunt u profiteren van de ongebruikte capaciteit van Azure tegen aanzienlijke kostenbesparingen. Op elk moment waarop Azure de capaciteit terug nodig heeft, verwijdert de Azure-infrastructuur virtuele machines met lage prioriteit. Daarom is virtuele azure-machine met lage prioriteit ideaal voor workloads die onderbrekingen kunnen afhandelen. De hoeveelheid beschikbare capaciteit kan variëren op basis van grootte, regio, tijdstip van de dag en meer. Bij het implementeren van virtuele Machines met lage prioriteit wijst Azure de VM's toe als er capaciteit beschikbaar is, maar er is geen SLA voor deze VM's. Een virtuele Machine met lage prioriteit van Azure biedt geen garanties voor hoge beschikbaarheid. Op elk moment waarop Azure de capaciteit terug nodig heeft, verwijdert de Azure-infrastructuur virtuele machines met lage prioriteit.
Gebruik een van deze manieren om een VM met lage prioriteit op te geven:
VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)
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()
Delete
Terwijl uw rekencluster omlaag wordt geschaald naar nul knooppunten wanneer deze niet in gebruik zijn, dragen niet-ingerichte knooppunten bij aan uw quotumgebruik. Als u het rekencluster verwijdert, wordt het rekendoel uit uw werkruimte verwijderd en wordt het quotum vrijgegeven.
VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)
Hiermee verwijdert u het basisberekeningscluster dat u eerder in dit artikel hebt gemaakt op basis van het create_basic
object.
from azure.ai.ml.entities import AmlCompute
ml_client.compute.begin_delete(cluster_basic.name).wait()
Beheerde identiteit instellen
Zie Verificatie instellen tussen Azure Machine Learning en andere services voor meer informatie over het configureren van een beheerde identiteit met uw rekencluster.
Probleemoplossing
Er is een kans dat sommige gebruikers die hun Azure Machine Learning-werkruimte hebben gemaakt vanuit Azure Portal voordat de ALGEMENE beschikbaarheidsrelease AmlCompute mogelijk niet in die werkruimte kan maken. U kunt een ondersteuningsaanvraag indienen voor de service of een nieuwe werkruimte maken via de portal of de SDK om uzelf onmiddellijk te deblokkeren.
Belangrijk
Als uw rekenproces of rekenclusters zijn gebaseerd op een van deze reeksen, maakt u deze opnieuw met een andere VM-grootte.
Deze reeks is op 31 augustus 2023 buiten gebruik gesteld:
Deze reeks is op 31 augustus 2024 buiten gebruik gesteld:
Vastgelopen bij het wijzigen van het formaat
Als uw Azure Machine Learning-rekencluster vastloopt bij het wijzigen van het formaat (0 -> 0) voor de status van het knooppunt, kan azure-resourcevergrendeling de oorzaak zijn.
Met Azure kunt u vergrendelingen op resources plaatsen, zodat ze niet kunnen worden verwijderd of alleen-lezen zijn. Het vergrendelen van een resource kan leiden tot onverwachte resultaten. Voor sommige bewerkingen die de resource niet lijken te wijzigen, zijn acties vereist die door de vergrendeling onmogelijk zijn.
Met Azure Machine Learning voorkomt het toepassen van een verwijderingsvergrendeling op de resourcegroep voor uw werkruimte schaalbewerkingen voor Azure ML-rekenclusters. Als u dit probleem wilt omzeilen, raden we u aan de vergrendeling van de resourcegroep te verwijderen en in plaats daarvan toe te passen op afzonderlijke items in de groep.
Belangrijk
Pas de vergrendeling niet toe op de volgende resources:
Resourcenaam | Brontype |
---|---|
<GUID>-azurebatch-cloudservicenetworksecurityggroup |
Netwerkbeveiligingsgroep |
<GUID>-azurebatch-cloudservicepublicip |
Openbaar IP-adres |
<GUID>-azurebatch-cloudserviceloadbalancer |
Load balancer |
Deze resources worden gebruikt om te communiceren en bewerkingen uit te voeren zoals schalen op het rekencluster. Als u de resourcevergrendeling van deze resources verwijdert, moet automatisch schalen voor uw rekenclusters zijn toegestaan.
Volgende stap
Gebruik uw rekencluster om het volgende te doen: