Tworzenie i używanie klastra obliczeniowego

Ukończone

Po eksperymentowaniu i opracowywaniu chcesz, aby kod był gotowy do produkcji. Po uruchomieniu kodu w środowiskach produkcyjnych lepiej używać skryptów zamiast notesów. Po uruchomieniu skryptu chcesz użyć docelowego obiektu obliczeniowego, który jest skalowalny.

W ramach usługi Azure Machine Edukacja klastry obliczeniowe idealnie nadają się do uruchamiania skryptów. Klaster obliczeniowy można utworzyć w usłudze Azure Machine Edukacja Studio przy użyciu interfejsu wiersza polecenia platformy Azure lub zestawu SDK (Software Development Kit).

Tworzenie klastra obliczeniowego przy użyciu zestawu SDK języka Python

Aby utworzyć klaster obliczeniowy przy użyciu zestawu SDK języka Python, możesz użyć następującego kodu:

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

Aby zrozumieć, jakich parametrów AmlCompute oczekuje klasa, możesz przejrzeć dokumentację referencyjną.

Podczas tworzenia klastra obliczeniowego należy wziąć pod uwagę trzy główne parametry:

  • size: określa typ maszyny wirtualnej każdego węzła w klastrze obliczeniowym. Na podstawie rozmiarów maszyn wirtualnych na platformie Azure. Obok rozmiaru możesz również określić, czy chcesz użyć procesorów CPU, czy procesorów GPU.
  • max_instances: określa maksymalną liczbę węzłów , do których klaster obliczeniowy może skalować w poziomie. Liczba równoległych obciążeń, które może obsłużyć klaster obliczeniowy, jest analogiczna do liczby węzłów, do których można skalować klaster.
  • tier: określa, czy maszyny wirtualne mają niski priorytet , czy dedykowany. Ustawienie na niski priorytet może obniżyć koszty, ponieważ nie masz gwarantowanej dostępności.

Korzystanie z klastra obliczeniowego

Istnieją trzy główne scenariusze, w których można użyć klastra obliczeniowego:

  • Uruchamianie zadania potoku utworzonego w Projektant.
  • Uruchamianie zadania Edukacja zautomatyzowanej maszyny.
  • Uruchamianie skryptu jako zadania.

W każdym z tych scenariuszy klaster obliczeniowy jest idealny, ponieważ klaster obliczeniowy automatycznie skaluje się w górę po przesłaniu zadania i automatycznie zamyka się po zakończeniu zadania.

Klaster obliczeniowy umożliwia również równoległe trenowanie wielu modeli, co jest powszechną praktyką podczas korzystania z usługi Automated Machine Edukacja.

Zadanie potoku Projektant i zadanie zautomatyzowanej maszyny Edukacja można uruchomić za pośrednictwem programu Azure Machine Edukacja Studio. Po przesłaniu zadania za pośrednictwem programu Studio można ustawić docelowy obiekt obliczeniowy na utworzony klaster obliczeniowy.

Jeśli wolisz podejście oparte na kodzie, możesz ustawić docelowy obiekt obliczeniowy na klaster obliczeniowy przy użyciu zestawu SDK języka Python.

Na przykład po uruchomieniu skryptu jako zadania polecenia można ustawić docelowy obiekt obliczeniowy na klaster obliczeniowy przy użyciu następującego kodu:

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)

Po przesłaniu zadania korzystającego z klastra obliczeniowego klaster obliczeniowy jest skalowany w poziomie do co najmniej jednego węzła. Zmiana rozmiaru trwa kilka minut, a zadanie jest uruchamiane po aprowizacji niezbędnych węzłów. Gdy stan zadania jest przygotowywany, klaster obliczeniowy jest przygotowywany. Gdy stan jest uruchomiony, klaster obliczeniowy jest gotowy, a zadanie jest uruchomione.