Een Azure Machine Learning-rekencluster maken
VAN TOEPASSING OP:Azure CLI ml-extensie v2 (huidig)
Python SDK azure-ai-ml v2 (huidig)
Meer informatie over het maken en beheren van een rekencluster in uw Azure Machine Learning-werkruimte.
U kunt een Azure Machine Learning-rekencluster gebruiken om een trainings- of batchdeductieproces te verdelen over een cluster van CPU- of GPU-rekenknooppunten in de cloud. Zie VOOR GPU geoptimaliseerde VM-grootten voor meer informatie over de VM-grootten die GPU's bevatten.
In dit artikel leert u het volgende:
- Een rekencluster maken
- De kosten van uw rekencluster verlagen met VM's met lage prioriteit
- Een beheerde identiteit instellen voor het cluster
Vereisten
Een Azure Machine Learning-werkruimte. Zie Een Azure Machine Learning-werkruimte maken 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. Nadat uw omgeving is ingesteld, koppelt u aan de werkruimte in uw Python-script:
VAN TOEPASSING OP:
Python SDK azure-ai-ml v2 (current)
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:
- Meld u aan bij Azure Machine Learning Studio.
- Open de werkruimte die u wilt gebruiken.
- Selecteer in de rechterbovenhoek Azure Machine Learning-studio werkbalk de naam van uw werkruimte.
- Kopieer de waarde voor werkruimte, resourcegroep en abonnements-id naar de code.
- Als u een notitieblok in Studio gebruikt, moet u één waarde kopiëren, het gebied sluiten en plakken en vervolgens terugkomen voor de volgende waarde.
# 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 berekeningen 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 omhoog geschaald wanneer een taak wordt verzonden en kan in een Azure-Virtual Network worden geplaatst. Rekencluster biedt geen ondersteuning voor openbare IP-implementatie 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 virtuele netwerkomgeving, zonder dat ondernemingen SSH-poorten hoeven te openen. De taak wordt uitgevoerd in een containeromgeving en verpakt uw modelafhankelijkheden in een Docker-container.
Beperkingen
Sommige van de scenario's die in dit document worden vermeld, zijn gemarkeerd als voorbeeld. Preview-functionaliteit wordt geleverd zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.
Rekenclusters kunnen worden gemaakt in een andere regio dan uw werkruimte. Deze functionaliteit is in preview en is alleen beschikbaar voor rekenclusters, niet voor rekenprocessen. Deze preview is niet beschikbaar als u een werkruimte met een privé-eindpunt gebruikt.
Waarschuwing
Wanneer u een rekencluster gebruikt in een andere regio dan uw werkruimte of gegevensarchieven, ziet u mogelijk hogere netwerklatentie en kosten voor gegevensoverdracht. De latentie en kosten kunnen optreden bij het maken van het cluster en bij het uitvoeren van taken op het cluster.
We ondersteunen momenteel alleen het maken (en niet bijwerken) van clusters via ARM-sjablonen. Voor het bijwerken van rekenkracht raden we u aan om voorlopig de SDK, Azure CLI of UX te gebruiken.
Azure Machine Learning Compute heeft standaardlimieten, zoals het aantal kernen dat kan worden toegewezen. Zie Quota voor Azure-resources beheren en aanvragen voor meer informatie.
Met Azure kunt u vergrendelingen voor resources plaatsen, zodat ze niet kunnen worden verwijderd of alleen-lezen zijn. Pas geen resourcevergrendelingen toe op de resourcegroep die uw werkruimte bevat. Als u een vergrendeling toepast 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 5 minuten.
Azure Machine Learning Compute kan opnieuw worden gebruikt in verschillende uitvoeringen. De berekening kan worden gedeeld met andere gebruikers in de werkruimte en wordt bewaard tussen uitvoeringen, waarbij knooppunten automatisch omhoog of omlaag worden geschaald op basis van het aantal verzonden uitvoeringen en de max_nodes ingesteld op uw cluster. De instelling min_nodes bepaalt de minimaal beschikbare knooppunten.
De toegewezen kernen per regio per VM-familie en het totale regionale quotum, die van toepassing zijn op het maken van een rekencluster, worden 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 groter dan 0 houdt dat aantal knooppunten actief, zelfs als ze niet in gebruik zijn.
De berekening wordt automatisch omlaag geschaald naar nul knooppunten wanneer deze niet wordt gebruikt. Toegewezen VM's worden gemaakt om uw taken zo nodig uit te voeren.
De snelste manier om een rekencluster te maken, is door de Quickstart: Werkruimteresources maken die u nodig hebt om aan de slag te gaan met Azure Machine Learning te volgen.
Of gebruik de volgende voorbeelden om een rekencluster met meer opties te maken:
Als u een permanente Azure Machine Learning Compute-resource wilt maken in Python, geeft u de grootte en max_instances eigenschappen op. Azure Machine Learning gebruikt vervolgens slimme standaardinstellingen voor de andere eigenschappen.
- grootte*: de VM-familie van de knooppunten die zijn gemaakt door Azure Machine Learning Compute.
- *max_instances: het maximum aantal knooppunten om automatisch op te schalen wanneer u een taak uitvoert op Azure Machine Learning Compute.
VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)
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 een vaste grootte of binnen een bestaande Azure-Virtual Network 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 hogere netwerklatentie en kosten voor gegevensoverdracht. De latentie en kosten kunnen optreden bij het maken van het cluster en bij het uitvoeren van taken op het cluster.
De kosten van uw rekencluster verlagen met VM's met lage prioriteit
U kunt er ook voor kiezen om VM's met lage prioriteit te gebruiken om sommige of alle workloads uit te voeren. Deze VM's hebben geen gegarandeerde beschikbaarheid en kunnen worden afgekeerd terwijl ze in gebruik zijn. U moet een voorlopige taak opnieuw starten.
Met azure lage prioriteit Virtual Machines kunt u profiteren van de ongebruikte capaciteit van Azure tegen een aanzienlijke kostenbesparing. Op elk moment dat Azure de capaciteit terug nodig heeft, wordt azure met lage prioriteit verwijderd door de Azure-infrastructuur Virtual Machines. Daarom zijn azure-Virtual Machines met lage prioriteit ideaal voor workloads die onderbrekingen kunnen verwerken. De hoeveelheid beschikbare capaciteit kan variëren op basis van grootte, regio, tijdstip van de dag en meer. Bij het implementeren van azure lage prioriteit Virtual Machines, 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 dat Azure de capaciteit terug nodig heeft, wordt azure met lage prioriteit door de Azure-infrastructuur verwijderd Virtual Machines
Gebruik een van de volgende manieren om een VM met lage prioriteit op te geven:
VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)
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 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 op basis van de Azure Portal vóór de GA-release, mogelijk geen AmlCompute in die werkruimte kunnen maken. U kunt een ondersteuningsaanvraag indienen bij de service of een nieuwe werkruimte maken via de portal of de SDK om uzelf onmiddellijk te deblokkeren.
Vastgelopen bij het wijzigen van het formaat
Als uw Azure Machine Learning-rekencluster lijkt te zijn vastgelopen bij het wijzigen van het formaat (0 -> 0) voor de status van het knooppunt, kan dit worden veroorzaakt door Azure-resourcevergrendelingen.
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 worden geblokkeerd door de vergrendeling.
Als u met Azure Machine Learning een verwijderingsvergrendeling toepast op de resourcegroep voor uw werkruimte, voorkomt u schaalbewerkingen voor Azure ML-rekenclusters. Als u dit probleem wilt omzeilen, raden we u aan de vergrendeling uit de resourcegroep te verwijderen en deze in plaats daarvan toe te passen op afzonderlijke items in de groep.
Belangrijk
Pas de vergrendeling niet toe op de volgende resources:
Resourcenaam | Resourcetype |
---|---|
<GUID>-azurebatch-cloudservicenetworksecurityggroup |
Netwerkbeveiligingsgroep |
<GUID>-azurebatch-cloudservicepublicip |
Openbaar IP-adres |
<GUID>-azurebatch-cloudserviceloadbalancer |
Load balancer |
Deze resources worden gebruikt om te communiceren met en bewerkingen uit te voeren, zoals schalen op het rekencluster. Als u de resourcevergrendeling verwijdert uit deze resources, moet automatische schaalaanpassing voor uw rekenclusters mogelijk zijn.
Zie Resources vergrendelen om onverwachte wijzigingen te voorkomen voor meer informatie over resourcevergrendeling.
Volgende stappen
Gebruik uw rekencluster voor het volgende: