Ausführen von Azure Machine Learning-Workloads mit automatisiertem maschinellem Lernen in Apache Spark in HDInsight

Azure Machine Learning vereinfacht und beschleunigt die Erstellung, das Training und die Bereitstellung von Machine Learning-Modellen. Beim automatisierten maschinellen Lernen (AutoML) werden zunächst Trainingsdaten verwendet, die über ein definiertes Zielmerkmal verfügen. Dabei werden die Kombinationen von Algorithmen und auswählbaren Merkmalen durchlaufen, um automatisch das optimale Modell für Ihre Daten basierend auf den Trainingsbewertungen auszuwählen. HDInsight ermöglicht es Kunden, Cluster mit Hunderten von Knoten bereitzustellen. AutoML, das unter Spark in einem HDInsight-Cluster ausgeführt wird, ermöglicht es Benutzern, die Computekapazität knotenübergreifend zu nutzen, um Trainingsaufträge mit horizontaler Skalierung sowie mehrere Trainingsaufträge parallel auszuführen. Dadurch können Benutzer*innen AutoML-Experimente durchführen, während sie den Computevorgang mit ihren anderen Big Data-Workloads teilen.

Installieren von Azure Machine Learning in einem HDInsight-Cluster

Allgemeine Tutorials zum automatisierten maschinellen Lernen finden Sie unter Tutorial: Erstellen Ihres Regressionsmodells mit automatisiertem Machine Learning. Auf allen neuen HDInsight-Spark-Clustern ist das AzureML-AutoML SDK vorinstalliert.

Hinweis

Azure Machine Learning-Pakete werden in einer Python3-Conda-Umgebung installiert. Das installierte Jupyter Notebook sollte mit dem PySpark3-Kernel ausgeführt werden.

Sie können auch Zeppelin-Notebooks für AutoML verwenden.

Authentifizierung für Arbeitsbereich

Zum Erstellen von Arbeitsbereichen und Übermitteln von Experimenten benötigen Sie ein Authentifizierungstoken. Dieses Token können Sie mit einer Microsoft Entra-Anwendung generieren. Mit einem Microsoft Entra-Benutzer können Sie auch das erforderliche Authentifizierungstoken generieren, wenn die mehrstufige Authentifizierung für das Konto nicht aktiviert ist.

Im folgenden Codeausschnitt wird ein Authentifizierungstoken mit einer Microsoft Entra-Anwendung erstellt.

from azureml.core.authentication import ServicePrincipalAuthentication
auth_sp = ServicePrincipalAuthentication(
    tenant_id='<Azure Tenant ID>',
    service_principal_id='<Azure AD Application ID>',
    service_principal_password='<Azure AD Application Key>'
)

Im folgenden Codeausschnitt wird ein Authentifizierungstoken mit einem Microsoft Entra-Benutzer erstellt.

from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials('user@domain.com', 'my_smart_password')

Laden von Datasets

Automatisiertes maschinelles Lernen in Spark verwendet automatisierte Dataflows. Dabei handelt es sich um verzögert ausgewertete, unveränderliche Vorgänge für Daten. Ein Dataflow kann ein Dataset aus einem Blob mit öffentlichem Lesezugriff oder über eine Blob-URL mit einem SAS-Token laden.

import azureml.dataprep as dprep

dataflow_public = dprep.read_csv(
    path='https://commonartifacts.blob.core.windows.net/automl/UCI_Adult_train.csv')

dataflow_with_token = dprep.read_csv(
    path='https://dpreptestfiles.blob.core.windows.net/testfiles/read_csv_duplicate_headers.csv?st=2018-06-15T23%3A01%3A42Z&se=2019-06-16T23%3A01%3A00Z&sp=r&sv=2017-04-17&sr=b&sig=ugQQCmeC2eBamm6ynM7wnI%2BI3TTDTM6z9RPKj4a%2FU6g%3D')

Sie können zudem den Datenspeicher mit einer einmaligen Registrierung beim Arbeitsbereich registrieren.

Experimentübermittlung

In der Konfiguration für automatisiertes maschinelles Lernen legen Sie die Eigenschaft spark_context fest, um das Paket im verteilten Modus auszuführen. Mit der Eigenschaft concurrent_iterations bestimmen Sie, wie viele Iterationen parallel ausgeführt werden dürfen. Legen Sie eine Zahl fest, die kleiner ist als die Anzahl von Executorkernen für die Spark-App.

Nächste Schritte