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.

  • De Azure CLI-extensie voor Machine Learning Service (v2), Azure Machine Learning Python SDK of de Azure Machine Learning Visual Studio Code-extensie.

  • Als u de Python SDK gebruikt, stelt u uw ontwikkelomgeving in met een werkruimte. Zodra uw omgeving is ingesteld, koppelt u deze aan de werkruimte in uw Python-script:

    VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)

    Voer deze code uit om verbinding te maken met uw Azure ML-werkruimte.

    Vervang uw abonnements-id, resourcegroepnaam en werkruimtenaam in de onderstaande code. Deze waarden zoeken:

    1. Meld u aan bij Azure Machine Learning Studio.
    2. Open de werkruimte die u wilt gebruiken.
    3. Selecteer in de rechterbovenhoek Azure Machine Learning-studio werkbalk de naam van uw werkruimte.
    4. Kopieer de waarde voor werkruimte, resourcegroep en abonnements-id in de code.
    5. Als u een notebook in Studio gebruikt, moet u één waarde kopiëren, het gebied sluiten en plakken en vervolgens terugkomen voor de volgende.
    # 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 voor het beheren van andere resources en taken.

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.

Create

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

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.

Problemen oplossen

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 vóór de buitengebruikstellingsdatum om serviceonderbreking te voorkomen.

Deze reeks wordt op 31 augustus 2023 buiten gebruik gesteld:

Deze reeks wordt 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.

Zie Resources vergrendelen om onverwachte wijzigingen te voorkomen voor meer informatie over het vergrendelen van resources.

Volgende stap

Gebruik uw rekencluster om het volgende te doen: