Erstellen eines Modells mit SynapseML

In diesem Artikel wird erläutert, wie du ein Machine Learning-Modell mithilfe von SynapseML erstellst. Außerdem wird veranschaulicht, wie SynapseML komplexe Machine Learning-Aufgaben vereinfacht. Du verwendest SynapseML zum Erstellen einer kleinen Mahine Learning-Trainingspipeline, die eine Featurisierungsphase und eine LightGBM-Regressionsphase enthält. Mit der Pipeline werden Bewertungen basierend auf einem Rezensionstext aus einem DataSet von Buchbewertungen vorausgesagt. Du siehst auch, wie SynapseML die Verwendung vordefinierter Modelle vereinfachen kann, um Machine Learning-Probleme zu lösen.

Voraussetzungen

Vorbereiten der Ressourcen

Erstelle die Tools und Ressourcen, die du zum Erstellen des Modells und der Pipeline benötigst.

  1. Erstellen eines neuen Notebooks.
  2. Verbinden Sie Ihr Notebook mit einem Lakehouse. Um ein vorhandenes Lakehouse hinzuzufügen oder ein neues zu erstellen, erweitere Lakehouses unter Explorer links, und wähle dann Hinzufügen aus.
  3. Rufe einen Azure KI Services-Schlüssel ab, indem du die Anweisungen unter Schnellstart: Erstellen einer Ressource für mehrere Dienste für Azure KI Services ausführst.
  4. Erstelle eine Azure Key Vault-Instanz, und füge deine Azure KI Services-Schlüssel als geheimen Schlüssel zum Schlüsseltresor hinzu.
  5. Notiere dir den Namen des Schlüsseltresors sowie den Namen des geheimen Schlüssels. Du benötigst diese Informationen, um die 1-Schritt-Transformation weiter unten in diesem Artikel auszuführen.

Einrichten der Umgebung

Importiere SynapseML-Bibliotheken in dein Notebook, und initialisiere deine Spark-Sitzung.

from pyspark.sql import SparkSession
from synapse.ml.core.platform import *

spark = SparkSession.builder.getOrCreate()

Laden eines Datasets

Laden Sie Ihr Dataset, und teilen Sie es in Trainings- und Testsätze auf.

train, test = (
    spark.read.parquet(
        "wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
    )
    .limit(1000)
    .cache()
    .randomSplit([0.8, 0.2])
)

display(train)

Erstellen der Trainingspipeline

Erstellen Sie eine Pipeline, die Daten mit TextFeaturizer aus der synapse.ml.featurize.text-Bibliothek featurisiert und mithilfe der LightGBMRegressor-Funktion eine Bewertung ableiten kann.

from pyspark.ml import Pipeline
from synapse.ml.featurize.text import TextFeaturizer
from synapse.ml.lightgbm import LightGBMRegressor

model = Pipeline(
    stages=[
        TextFeaturizer(inputCol="text", outputCol="features"),
        LightGBMRegressor(featuresCol="features", labelCol="rating", dataTransferMode="bulk")
    ]
).fit(train)

Vorhersagen der Ausgabe der Testdaten

Rufen Sie die transform-Funktion für das Modell auf, um die Ausgabe der Testdaten vorherzusagen und als Dataframe anzuzeigen.

display(model.transform(test))

Verwenden von Azure KI Services zum Transformieren von Daten in einem Schritt

Alternativ können Sie für diese Arten von Aufgaben, die über eine vordefinierte Lösung verfügen, die Integration von SynapseML in Azure KI Services verwenden, um Ihre Daten in einem Schritt zu transformieren. Führe den folgenden Code mit diesen Ersetzungen aus:

  • Ersetze <secret-name> durch den Namen deines geheimen Azure AI Services-Schlüssels.
  • Ersetzen Sie <key-vault-name> durch den Namen Ihres Schlüsseltresors.
from synapse.ml.services import TextSentiment
from synapse.ml.core.platform import find_secret

model = TextSentiment(
    textCol="text",
    outputCol="sentiment",
    subscriptionKey=find_secret("<secret-name>", "<key-vault-name>")
).setLocation("eastus")

display(model.transform(test))