Funktionsweise von Azure Machine Learning: Ressourcen und Objekte

GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

Dieser Artikel bezieht sich auf die zweite Version der Azure Machine Learning-CLI und des Python SDK (v2). Informationen zu Version 1 (v1) finden Sie unter Funktionsweise von Azure Machine Learning: Architektur und Konzepte(v1).

Azure Machine Learning umfasst mehrere Ressourcen und Objekte, mit denen Sie Ihre Machine Learning-Aufgaben ausführen können. Diese Ressourcen und Objekte werden für jeden Auftrag benötigt.

  • Ressourcen: Setup- oder Infrastrukturressourcen, die für die Ausführung eines Machine Learning- Workflows benötigt werden. Zu den Ressourcen gehören:
  • Objekte werden mit Azure ML-Befehlen oder im Rahmen einer Trainings-/Bewertungsausführung erstellt. Objekte sind versioniert und können im Azure Machine Learning-Arbeitsbereich registriert werden. Dazu gehören:

Das vorliegende Dokument bietet einen kurzen Überblick über diese Ressourcen und Objekte.

Voraussetzungen

So verwenden Sie die Python SDK-Codebeispiele in diesem Artikel:

  1. Installieren Sie das Python SDK v2.

  2. Erstellen Sie eine Verbindung mit Ihrem Azure Machine Learning-Abonnement. Die Beispiele basieren alle auf ml_client. Zum Erstellen eines Arbeitsbereichs benötigt die Verbindung keinen Arbeitsbereichsnamen, da möglicherweise noch kein Arbeitsbereich vorhanden ist. Bei allen anderen Beispielen in diesem Artikel ist es erforderlich, dass der Arbeitsbereichsname in der Verbindung enthalten ist.

    # import required libraries
    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription (use this if you haven't created a workspace yet)
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
    
    # all other examples in this article require the connection to include workspace name
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Arbeitsbereich

Der Arbeitsbereich ist die Ressource der obersten Ebene für Azure Machine Learning und ein zentraler Ort für die Arbeit mit allen Artefakten, die Sie während der Nutzung von Azure Machine Learning erstellen. Im Arbeitsbereich wird ein Verlauf aller Aufträge gespeichert, Protokolle, Metriken, Ausgabe und eine Momentaufnahme Ihrer Skripts eingeschlossen. Der Arbeitsbereich speichert Verweise auf Ressourcen wie z. B. Datenspeicher und Compute-Instanzen. Er enthält zudem alle Objekte, beispielsweise Modelle, Umgebungen, Komponenten und Datenobjekte.

Erstellen eines Arbeitsbereichs

Um einen Arbeitsbereich mit dem Python SDK v2 zu erstellen, können Sie den folgenden Code verwenden:

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    tags=dict(purpose="demo"),
)

ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace

Dieses Jupyter Notebook zeigt weitere Möglichkeiten zum Erstellen eines Azure Machine Learning-Arbeitsbereichs mit dem SDK v2.

Compute

Ein Computeziel ist eine zugewiesene Computeressource, auf der Sie Ihren Auftrag ausführen oder Ihren Endpunkt hosten. Azure Machine Learning unterstützt die folgenden Compute-Typen:

  • Compute-Instanz: Eine vollständig konfigurierte und verwaltete Entwicklungsumgebung in der Cloud. Sie können die Instanz als Computeressource zu Entwicklungs- und Testzwecken für Training oder Rückschlüsse nutzen. Sie ähnelt einem virtuellen Computer in der Cloud.
  • Computecluster: Eine verwaltete Compute-Infrastruktur, mit der Sie ganz einfach einen Cluster mit CPU- oder GPU-Computeknoten in der Cloud erstellen können.
  • Serverloses Computing: Ein Computecluster, auf den Sie dynamisch zugreifen. Wenn Sie serverloses Computing verwenden, müssen Sie keinen eigenen Cluster erstellen. Die gesamte Computelebenszyklusverwaltung wird in Azure Machine Learning ausgelagert.
  • Rückschlusscluster: Wird verwendet, um trainierte Machine Learning-Modelle in Azure Kubernetes Service bereitzustellen. Sie können einen AKS-Cluster (Azure Kubernetes Service) aus Ihrem Azure Machine Learning-Arbeitsbereich erstellen oder einen vorhandenen AKS-Cluster anfügen.
  • Angefügte Computeressource: Sie können eigene Computeressourcen an Ihren Arbeitsbereich anfügen und sie für Training und Rückschlüsse verwenden.

Erstellen eines Compute

Um einen Computecluster mit dem Python SDK v2 zu erstellen, können Sie den folgenden Code verwenden:

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

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)

Dieses Jupyter Notebook zeigt weitere Möglichkeiten zum Erstellen eines Computeziels mit dem SDK v2.

Datenspeicher

Azure Machine Learning-Datenspeicher speichern die Verbindungsinformationen für Ihren Datenspeicher sicher in Azure, sodass Sie sie nicht in Ihren Skripts programmieren müssen. Sie können einen Datenspeicher registrieren und erstellen, um eine einfache Verbindung mit Ihrem Speicherkonto herzustellen und auf die Daten im zugrunde liegenden Speicherdienst zuzugreifen. CLI v2 und SDK v2 unterstützen die folgenden Arten von cloudbasierten Speicherdiensten:

  • Azure-Blobcontainer
  • Azure-Dateifreigabe
  • Azure Data Lake
  • Azure Data Lake Gen2

Erstellen eines Datenspeichers

Um einen Datenspeicher mit dem Python SDK v2 zu erstellen, können Sie den folgenden Code verwenden:

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

import AzureBlobDatastore

blob_datastore1 = AzureBlobDatastore(
    name="blob_example",
    description="Datastore pointing to a blob container.",
    account_name="mytestblobstore",
    container_name="data-container",
    credentials={
        "account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
    },
)
ml_client.create_or_update(blob_datastore1)

Dieses Jupyter Notebook zeigt weitere Möglichkeiten zum Erstellen von Datenspeichern mit dem SDK v2.

Weitere Informationen zur Verwendung eines Datenspeichers finden Sie unter Erstellen und Verwalten von Datenressourcen.

Modell

Azure Machine Learning-Modelle bestehen aus den Binärdateien, die ein Machine Learning-Modell repräsentieren, sowie allen zugehörigen Metadaten. Modelle können aus einer lokalen oder Remotedatei oder einem Verzeichnis erstellt werden. Für Remotespeicherorte werden https-, wasbs- und azureml-Standorte unterstützt. Das erstellte Modell wird im Arbeitsbereich anhand des angegebenen Namens und der Version nachverfolgt. Azure Machine Learning unterstützt drei Arten von Speicherformaten für Modelle:

  • custom_model
  • mlflow_model
  • triton_model

Erstellen eines Modells in der Modellregistrierung

Die Modellregistrierung ermöglicht es Ihnen, Ihre Modelle in der Azure-Cloud in Ihrem Arbeitsbereich zu speichern und zu versionieren. Mithilfe der Modellregistrierung können Sie Ihre trainierten Modelle organisieren und nachverfolgen.

Weitere Informationen zum Erstellen von Modellen in der Registrierung finden Sie unter Arbeiten mit Modellen in Azure Machine Learning.

Environment

Azure Machine Learning-Umgebungen sind eine Kapselung der Umgebung, in der Ihre Machine Learning-Aufgabe ausgeführt wird. Sie geben die Softwarepakete, Umgebungsvariablen und Softwareeinstellungen für Ihre Trainings- und Bewertungsskripts an. Die Umgebungen sind verwaltete und versionierte Entitäten innerhalb Ihres Machine Learning-Arbeitsbereichs. Sie ermöglichen reproduzierbare, überprüfbare und übertragbare Machine Learning-Workflows für eine Vielzahl von Computezielen.

Umgebungstypen

Azure Machine Learning unterstützt zwei Arten von Umgebungen: kuratiert und benutzerdefiniert.

Zusammengestellte Umgebungen werden von Azure Machine Learning bereitgestellt und sind standardmäßig in Ihrem Arbeitsbereich verfügbar. Sie sind zur sofortigen Verwendung gedacht und enthalten Sammlungen von Python-Paketen und -Einstellungen, die Ihnen den Einstieg in die verschiedenen Machine Learning-Frameworks erleichtern sollen. Diese vorab erstellten Umgebungen ermöglichen auch eine schnellere Bereitstellungszeit. Eine vollständige Liste finden Sie im Artikel zu zusammengestellten Umgebungen.

In benutzerdefinierten Umgebungen sind Sie dafür verantwortlich, Ihre Umgebung einzurichten und Pakete oder andere Abhängigkeiten zu installieren, die Ihr Trainings- oder Bewertungsskript auf dem Computeziel benötigt. Azure Machine Learning ermöglicht Ihnen das Erstellen einer eigenen Umgebung mithilfe folgender Elemente:

  • Docker-Image
  • Basis-Docker-Image mit Conda-YAML-Code zur weiteren Anpassung
  • Docker-Buildkontext

Erstellen einer benutzerdefinierten Azure Machine Learning-Umgebung

Informationen zum Erstellen einer Umgebung mit dem Python SDK v2 finden Sie unter Erstellen einer Umgebung.

Dieses Jupyter Notebook zeigt weitere Möglichkeiten zum Erstellen von Umgebungen mit dem SDK v2.

Daten

Azure Machine Learning ermöglicht es Ihnen, mit verschiedenen Datentypen zu arbeiten:

  • URIs (Standort im lokalen Speicher/Cloudspeicher)
    • uri_folder
    • uri_file
  • Tabellen (tabellarische Datenabstraktion)
    • mltable
  • Primitive
    • string
    • boolean
    • number

In den meisten Szenarien werden Sie URIs (uri_folder und uri_file) verwenden – einen Speicherort, der problemlos dem Dateisystem eines Computeknotens in einem Auftrag zugeordnet werden kann, indem der Speicher entweder eingebunden oder auf den Knoten heruntergeladen wird.

mltable ist eine Abstraktion für tabellarische Daten, die für AutoML-Aufträge, Parallelaufträge und einige erweiterte Szenarien verwendet werden sollen. Wenn Sie Azure Machine Learning noch nicht lange verwenden und AutoML nicht nutzen, sollten Sie unbedingt mit URIs beginnen.

Komponente

Eine Azure Machine Learning-Komponente ist ein eigenständiger Codeabschnitt, der einen Schritt in einer Machine Learning-Pipeline ausführt. Komponenten sind die wesentlichen Bausteine einer erweiterten Pipeline für maschinelles Lernen. Komponenten können Aufgaben wie Datenverarbeitung, Modelltraining, Modellbewertung usw. ausführen. Eine Komponente ist vergleichbar mit einer Funktion – sie hat einen Namen, Parameter, erwartet eine Eingabe und gibt eine Ausgabe zurück.

Nächste Schritte