Freigeben von Daten über Arbeitsbereiche mit Registrierungen (Vorschau)

Mit Azure Machine Learning-Registrierungen können Sie in Ihrer Organisation über Arbeitsbereiche hinweg zusammenarbeiten. Mithilfe von Registrierungen können Sie Modelle, Komponenten, Umgebungen und Umgebungen freigeben. Das Freigeben von Daten mit Registrierungen ist derzeit eine Previewfunktion. In diesem Artikel werden folgende Vorgehensweisen behandelt:

  • Erstellen einer Datenressource in der Registrierung.
  • Freigeben einer vorhandenen Datenressource vom Arbeitsbereich für die Registrierung
  • Verwenden der Datenressource aus der Registrierung als Eingabe für einen eine Modelltrainingsauftrag in einen Arbeitsbereich.

Wichtig

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.

Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Schlüsselszenario, das durch die Datenfreigabe mithilfe der Azure Machine Learning-Registrierung behandelt wird

Möglicherweise möchten Sie Daten für mehrere Teams, Projekte oder Arbeitsbereiche an einem zentralen Speicherort freigeben. Solche Daten verfügen nicht über vertrauliche Zugriffssteuerungen und können in der Organisation umfassend genutzt werden.

Beispiele:

  • Ein Team möchte ein öffentliches Dataset freigeben, das vorverarbeitet ist und in Experimenten verwendet werden kann.
  • Ihre Organisation hat ein bestimmtes Dataset für ein Projekt von einem externen Anbieter abgerufen und möchte es allen Teams zur Verfügung stellen, die an einem Projekt arbeiten.
  • Ein Team möchte Datenressourcen über Arbeitsbereiche in verschiedenen Regionen hinweg freigeben.

In diesen Szenarien können Sie eine Datenressource in einer Registrierung erstellen oder eine vorhandene Datenressource aus einem Arbeitsbereich für eine Registrierung freigeben. Diese Datenressource kann dann über mehrere Arbeitsbereichen hinweg verwendet werden.

Szenarien, die NICHT von der Datenfreigabe mittels Azure Machine Learning-Registrierung behandelt werden

  • Freigeben vertraulicher Daten, die eine feingranulare Zugriffssteuerung erfordern. Sie können keine Datenressource in einer Registrierung erstellen, die für eine kleine Teilmenge von Benutzern/Arbeitsbereichen freigegeben werden soll, während die Registrierung für viele andere Benutzer in der Organisation zugreifbar bleibt.

  • Freigeben von Daten, die im vorhandenen Speicher verfügbar sind und nicht kopiert werden dürfen oder zu groß oder zu teuer sind, um kopiert zu werden. Bei jeder Erstellung einer Datenressource in einer Registrierung wird eine Kopie der Daten in den Registrierungsspeicher erfasst, damit sie repliziert werden können.

Von der Azure Machine Learning-Registrierung unterstützte Datenressourcentypen

Tipp

Überprüfen Sie die folgenden kanonischen Szenarien, wenn Sie entscheiden, ob Sie uri_file, uri_folder oder mltable für Ihr Szenario verwenden wollen.

Sie können drei Typen von Datenressourcen erstellen:

type V2-API Kanonisches Szenario
Datei: Verweis auf eine einzelne Datei uri_file Lesen/Schreiben einer einzelnen Datei: Die Datei kann ein beliebiges Format aufweisen.
Ordner: Verweis auf einen einzelnen Ordner uri_folder Sie müssen ein Verzeichnis mit Parquet-/CSV-Dateien in Pandas/Spark lesen/schreiben. Deep Learning mit Bildern, Text, Audio- und Videodateien, die sich in einem Verzeichnis befinden.
Tabelle: Verweis auf eine Datentabelle mltable Sie verfügen über ein komplexes Schema, das häufig geändert wird, oder Sie benötigen eine Teilmenge umfangreicher Tabellendaten.

Von der Azure Machine Learning-Registrierung unterstützte Pfade

Wenn Sie eine Datenressource erstellen, müssen Sie einen Pfad-Parameter angeben, der auf den Speicherort der Daten verweist. Derzeit werden nur Pfade zu Speicherorten auf Ihrem lokalen Computer unterstützt.

Tipp

„Lokal“ bezeichnet den lokalen Speicher für den von Ihnen verwendeten Computer. Wenn Sie z. B. einen Laptop verwenden, ist das lokale Laufwerk gemeint. Bei einer Azure Machine Learning-Compute-Instanz, ist das „lokale“ Laufwert der Compute-Instanz gemeint.

Voraussetzungen

Stellen Sie vor dem Ausführen der Schritte in diesem Artikel sicher, dass Sie über die folgenden erforderlichen Komponenten verfügen:

  • Vertrautheit mit Azure Machine Learning-Registrierungen und Datenkonzepten in Azure Machine Learning.

  • Eine Azure Machine Learning-Registrierung zum Freigeben von Daten. Informationen zum Erstellen einer Registrierung finden Sie unter Informationen zum Erstellen einer Registrierung.

  • Ein Azure Machine Learning-Arbeitsbereich. Wenn keiner vorliegt, führen Sie die Schritte unter Schnellstart: Erstellen von Arbeitsbereichsressourcen aus, um einen Arbeitsbereich zu erstellen.

    Wichtig

    Die Azure-Region (Standort), in der Sie Ihren Arbeitsbereich erstellen, muss sich in der Liste der unterstützten Regionen für die Azure Machine Learning-Registrierung befinden.

  • Die Umgebung und Komponente, die aus dem Artikel Freigeben von Modellen, Komponenten und Umgebungen erstellt wurden.

  • Die Azure CLI und die ml-Erweiterung oder das Azure Machine Learning Python SDK v2:

    Informationen zum Installieren der Azure CLI und der Erweiterung finden Sie unter Installieren, Einrichten und Verwenden der CLI (v2).

    Wichtig

    • In den CLI-Beispielen in diesem Artikel wird davon ausgegangen, dass Sie die Bash-Shell (oder eine kompatible Shell) verwenden, beispielsweise über ein Linux-System oder ein Windows-Subsystem für Linux.

    • In den Beispielen wird außerdem davon ausgegangen, dass Sie Standardeinstellungen für die Azure-Befehlszeilenschnittstelle konfiguriert haben, sodass Sie für Ihr Abonnement, Ihren Arbeitsbereich, Ihre Ressourcengruppe und Ihren Standort keine Parameter angeben müssen. Verwenden Sie zum Festlegen von Standardeinstellungen die folgenden Befehle. Ersetzen Sie die folgenden Parameter durch die Werte für Ihre Konfiguration:

      • Ersetzen Sie <subscription> durch Ihre Azure-Abonnement-ID.
      • Ersetzen Sie <workspace> durch den Namen Ihres Azure Machine Learning-Arbeitsbereichs.
      • Ersetzen Sie <resource-group> durch die Azure-Ressourcengruppe, die Ihren Arbeitsbereich enthält.
      • Ersetzen Sie <location> durch die Azure-Region, die Ihren Arbeitsbereich enthält.
      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
      

      Mit dem Befehl az configure -l können Sie die aktuellen Standardwerte anzeigen.

Repository für Klonbeispiele

Die Codebeispiele in diesem Artikel basieren auf dem nyc_taxi_data_regression-Beispiel im Beispielrepository. Wenn Sie diese Dateien in Ihrer Entwicklungsumgebung verwenden möchten, klonen Sie das Repository, und ändern Sie die Verzeichnisse in das Beispiel mit den folgenden Befehlen:

git clone https://github.com/Azure/azureml-examples
cd azureml-examples

Ändern Sie für das CLI-Beispiel Verzeichnisse cli/jobs/pipelines-with-components/nyc_taxi_data_regression in Ihrem lokalen Klon des Beispielrepositorys.

cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression

Erstellen einer SDK-Verbindung

Tipp

Dieser Schritt ist nur erforderlich, wenn das Python SDK verwendet wird.

Erstellen Sie eine Clientverbindung sowohl mit dem Arbeitsbereich als auch der Registrierung in Azure Machine Learning. Ersetzen Sie im folgenden Beispiel die <...>-Platzhalterwerte durch die Werte, die für Ihre Konfiguration geeignet sind. Beispielsweise Ihre Azure-Abonnement-ID, Ihren Arbeitsbereichsnamen, Ihren Registrierungsnamen usw.:

ml_client_workspace = MLClient( credential=credential,
    subscription_id = "<workspace-subscription>",
    resource_group_name = "<workspace-resource-group",
    workspace_name = "<workspace-name>")
print(ml_client_workspace)

ml_client_registry = MLClient(credential=credential,
                        registry_name="<REGISTRY_NAME>",
                        registry_location="<REGISTRY_REGION>")
print(ml_client_registry)

Erstellen von Daten in der Registrierung

Die in diesem Schritt erstellte Datenressource wird später in diesem Artikel beim Übermitteln eines Trainingsauftrags verwendet.

Tipp

Der gleiche CLI-Befehl az ml data create kann verwendet werden, um Daten in einem Arbeitsbereich oder einer Registrierung zu erstellen. Wenn Sie den Befehl mit --workspace-name ausführen, werden die Daten in einem Arbeitsbereich erstellt, während beim Ausführen des Befehls mit --registry-name die Daten in der Registrierung erstellt werden.

Die Datenquelle befindet sich im Beispielrepository, das Sie früher geklont haben. Wechseln Sie unter dem lokalen Klon zum folgenden Verzeichnispfad: cli/jobs/pipelines-with-components/nyc_taxi_data_regression. Erstellen Sie in diesem Verzeichnis eine YAML-Datei mit dem Namen data-registry.yml, und verwenden Sie die folgende YAML als den Inhalt der Datei:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: transformed-nyc-taxt-data
description: Transformed NYC Taxi data created from local folder.
version: 1
type: uri_folder
path: data_transformed/

Der path-Wert zeigt auf das data_transformed-Unterverzeichnis, das die Daten enthält, die mithilfe der Registrierung freigegeben werden.

Um die Daten in der Registrierung zu erstellen, verwenden Sie az ml data create. Ersetzen Sie in den folgenden Beispielen <registry-name> durch den Namen Ihrer Registrierung.

az ml data create --file data-registry.yml --registry-name <registry-name>

Wenn Sie einen Fehler erhalten, dass Daten mit diesem Namen und dieser Version bereits in der Registrierung vorhanden ist, können Sie entweder das Feld version in data-registry.yml bearbeiten oder eine andere Version in der Befehlszeilenschnittstelle angeben, die den Versionswert in data-registry.yml überschreibt.

# use shell epoch time as the version
version=$(date +%s)
az ml data create --file data-registry.yml --registry-name <registry-name> --set version=$version

Tipp

Wenn der version=$(date +%s)-Befehl die $version-Variable in Ihrer Umgebung nicht festlegt, ersetzen Sie $version durch eine Zufallszahl.

Speichern Sie den name und die version der Daten aus der Ausgabe des az ml data create-Befehls, und verwenden Sie diese mit dem Befehl az ml data show, um Details für die Ressource anzuzeigen.

az ml data show --name transformed-nyc-taxt-data --version 1 --registry-name <registry-name>

Tipp

Wenn Sie einen anderen Datennamen oder eine andere Version verwendet haben, ersetzen Sie die Parameter --name und --version entsprechend.

Sie können auch az ml data list --registry-name <registry-name> verwenden, um alle Datenressourcen in der Registrierung aufzulisten.

Erstellen einer Umgebung und einer Komponente in einer Registrierung

Führen Sie zum Erstellen einer Umgebung und einer Komponente in der Registrierung die Schritte im Artikel Freigeben von Modellen, Komponenten und Umgebungen aus. Die Umgebung und die Komponente werden im nächsten Abschnitt im Trainingsauftrag verwendet.

Tipp

Sie können eine Umgebung und eine Komponente aus dem Arbeitsbereich verwenden, anstatt solche aus der Registrierung zu verwenden.

Ausführen eines Pipelineauftrags in einem Arbeitsbereich mithilfe einer Komponente aus der Registrierung

Wenn Sie einen Pipelineauftrag ausführen, der eine Komponente und Daten aus einer Registrierung verwendet, sind die Computeressourcen lokal für den Arbeitsbereich. Im folgenden Beispiel verwendet der Auftrag die Scikit Learn-Trainingskomponente und die in den vorherigen Abschnitten erstellte Datenressource, um ein Modell zu trainieren.

Hinweis

Der wichtigste Aspekt ist, dass diese Pipeline in einem Arbeitsbereich unter Verwendung von Trainingsdaten ausgeführt wird, die sich nicht in einem bestimmten Arbeitsbereich befinden. Die Daten befinden sich in einer Registrierung, die mit jedem Arbeitsbereich in Ihrer Organisation verwendet werden kann. Sie können diesen Trainingsauftrag in jedem Arbeitsbereich ausführen, auf den Sie Zugriff haben, ohne sich Gedanken darüber zu machen, ob die Trainingsdaten in diesem Arbeitsbereich verfügbar sind.

Vergewissern Sie sich, dass Sie sich im cli/jobs/pipelines-with-components/nyc_taxi_data_regression-Verzeichnis befinden. Bearbeiten Sie den Abschnitt component im Abschnitt train_job der Datei single-job-pipeline.yml, um auf die Trainingskomponente zu verweisen, und path im Abschnitt training_data, um auf die im vorherigen Abschnitt erstellte Datenressource zu verweisen. Das folgende Beispiel zeigt, wie die single-job-pipeline.yml nach der Bearbeitung aussieht. Ersetzen Sie den <registry_name> durch den Namen Ihrer Registrierung:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc_taxi_data_regression_single_job
description: Single job pipeline to train regression model based on nyc taxi dataset

jobs:
  train_job:
    type: command
    component: azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
    compute: azureml:cpu-cluster
    inputs:
      training_data: 
        type: uri_folder
        path: azureml://registries/<registry-name>/data/transformed-nyc-taxt-data/versions/1
    outputs:
      model_output: 
        type: mlflow_model
      test_data: 

Warnung

  • Bestätigen Sie vor dem Ausführen des Pipelineauftrags, dass sich der Arbeitsbereich für die Ausführung des Auftrags in einer Azure-Region befindet, die von der Registrierung, in der Sie die Daten erstellt haben, unterstützt wird.
  • Vergewissern Sie sich, dass der Arbeitsbereich über einen Computecluster mit dem Namen cpu-cluster verfügt, oder bearbeiten Sie das Feld compute unter jobs.train_job.compute mit dem Namen Ihres Compute.

Führen Sie den Pipelineauftrag mit dem Befehl az ml job create aus.

az ml job create --file single-job-pipeline.yml 

Tipp

Wenn Sie den Standardarbeitsbereich und die Ressourcengruppe nicht gemäß dem Abschnitt „Voraussetzungen“ konfiguriert haben, müssen Sie die Parameter --workspace-name und --resource-group angeben, damit az ml job create funktioniert.

Weitere Informationen zum Ausführen von Aufträgen finden Sie in den folgenden Artikeln:

Freigeben von Daten aus dem Arbeitsbereich für die Registrierung

Die folgenden Schritte zeigen, wie Sie eine vorhandene Datenressource aus einem Arbeitsbereich für eine Registrierung freigeben.

Erstellen Sie zunächst eine Datenressource im Arbeitsbereich. Vergewissern Sie sich, dass Sie sich im cli/assets/data-Verzeichnis befinden. Die local-folder.yml, die sich in diesem Verzeichnis befindet, wird verwendet, um eine Datenressource im Arbeitsbereich zu erstellen. Die in dieser Datei angegebenen Daten sind im cli/assets/data/sample-data-Verzeichnis verfügbar. Der folgende YAML ist der Inhalt der local-folder.yml-Datei:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: local-folder-example-titanic
description: Dataset created from local folder.
type: uri_folder
path: sample-data/

Verwenden Sie den folgenden Befehl, um die Datenressource im Arbeitsbereich zu erstellen:

az ml data create -f local-folder.yml

Weitere Informationen zum Erstellen von Datenressourcen in einem Arbeitsbereich finden Sie unter Erstellen von Datenressourcen.

Die im Arbeitsbereich erstellte Datenressource kann für eine Registrierung freigegeben werden. Von der Registrierung aus kann sie in mehreren Arbeitsbereichen verwendet werden. Beachten Sie, dass wir die Parameter --share_with_name und --share_with_version in der Freigabefunktion übergeben. Diese Parameter sind optional, und wenn Sie nicht übergeben, werden diese Daten mit demselben Namen und derselben Version wie im Arbeitsbereich freigegeben.

Das folgende Beispiel zeigt, wie Sie mit dem Befehl share eine Ressource freigeben können. Ersetzen Sie <registry-name> durch den Namen der Registrierung, für welche die Daten freigegeben werden.

az ml data share --name local-folder-example-titanic --version <version-in-workspace> --share-with-name <name-in-registry> --share-with-version <version-in-registry> --registry-name <registry-name>

Nächste Schritte