Een rekencluster maken en gebruiken

Voltooid

Na experimenten en ontwikkeling wilt u dat uw code gereed is voor productie. Wanneer u code uitvoert in productieomgevingen, is het beter om scripts te gebruiken in plaats van notebooks. Wanneer u een script uitvoert, wilt u een rekendoel gebruiken dat schaalbaar is.

In Azure Machine Learning zijn rekenclusters ideaal voor het uitvoeren van scripts. U kunt een rekencluster maken in de Azure Machine Learning-studio met behulp van de Azure-opdrachtregelinterface (CLI) of de Sdk (Software Development Kit) van Python.

Een rekencluster maken met de Python SDK

Als u een rekencluster wilt maken met de Python SDK, kunt u de volgende code gebruiken:

from azure.ai.ml.entities import AmlCompute

cluster_basic = AmlCompute(
    name="cpu-cluster",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
    tier="low_priority",
)
ml_client.begin_create_or_update(cluster_basic).result()

Als u wilt weten welke parameters de AmlCompute klasse verwacht, kunt u de referentiedocumentatie raadplegen.

Wanneer u een rekencluster maakt, zijn er drie belangrijke parameters die u moet overwegen:

  • size: Hiermee geeft u het type virtuele machine van elk knooppunt in het rekencluster. Op basis van de grootten voor virtuele machines in Azure. Naast grootte kunt u ook opgeven of u CPU's of GPU's wilt gebruiken.
  • max_instances: Hiermee geeft u het maximum aantal knooppunten op waarmee uw rekencluster kan worden uitgeschaald. Het aantal parallelle workloads dat uw rekencluster kan verwerken, is vergelijkbaar met het aantal knooppunten dat uw cluster kan schalen.
  • tier: Hiermee geeft u op of uw virtuele machines een lage prioriteit of toegewezen hebben. Als u een lage prioriteit instelt, kunt u de kosten verlagen omdat u geen gegarandeerde beschikbaarheid hebt.

Een rekencluster gebruiken

Er zijn drie hoofdscenario's waarin u een rekencluster kunt gebruiken:

  • Het uitvoeren van een pijplijntaak die u in de ontwerpfunctie hebt gemaakt.
  • Een geautomatiseerde Machine Learning-taak uitvoeren.
  • Een script uitvoeren als een taak.

In elk van deze scenario's is een rekencluster ideaal omdat een rekencluster automatisch omhoog wordt geschaald wanneer een taak wordt verzonden en automatisch wordt afgesloten wanneer een taak is voltooid.

Met een rekencluster kunt u ook meerdere modellen parallel trainen. Dit is gebruikelijk bij het gebruik van geautomatiseerde machine learning.

U kunt een Designer-pijplijntaak en een geautomatiseerde Machine Learning-taak uitvoeren via de Azure Machine Learning-studio. Wanneer u de taak via de studio verzendt, kunt u het rekendoel instellen op het rekencluster dat u hebt gemaakt.

Wanneer u de voorkeur geeft aan een code-first benadering, kunt u het rekendoel instellen op uw rekencluster met behulp van de Python SDK.

Wanneer u bijvoorbeeld een script uitvoert als opdrachttaak, kunt u het rekendoel instellen op uw rekencluster met de volgende code:

from azure.ai.ml import command

# configure job
job = command(
    code="./src",
    command="python diabetes-training.py",
    environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest",
    compute="cpu-cluster",
    display_name="train-with-cluster",
    experiment_name="diabetes-training"
    )

# submit job
returned_job = ml_client.create_or_update(job)
aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)

Nadat u een taak hebt ingediend die gebruikmaakt van een rekencluster, wordt het rekencluster uitgeschaald naar een of meer knooppunten. Het wijzigen van de grootte duurt enkele minuten en de taak wordt uitgevoerd zodra de benodigde knooppunten zijn ingericht. Wanneer de status van een taak wordt voorbereid, wordt het rekencluster voorbereid. Wanneer de status wordt uitgevoerd, is het rekencluster gereed en wordt de taak uitgevoerd.