Freigeben über


Erstellen eines Modells mit SynapseML

In diesem Artikel wird erläutert, wie Sie ein Machine Learning-Modell mit SynapseML erstellen und wie es komplexe Machine Learning-Aufgaben vereinfacht. Verwenden Sie SynapseML, um eine Schulungspipeline mit einer Featurisierungsphase und einer LightGBM-Regressionsstufe zu erstellen. Die Pipeline sagt Bewertungen aus Buchrezensionstext voraus. Hier erfahren Sie, wie Sie vorgefertigte Modelle mit SynapseML verwenden, um Machine Learning-Probleme zu lösen.

Voraussetzungen

Vorbereiten der Ressourcen

Richten Sie die Tools und Ressourcen ein, die Sie zum Erstellen des Modells und der Pipeline benötigen.

  1. Erstellen eines neuen Notizbuchs
  2. Verbinden Sie Ihr Notebook mit einem Lakehouse. Erweitern Sie im ExplorerLakehouses, und wählen Sie dann "Hinzufügen" aus.
  3. Rufen Sie einen Foundry Tools-Schlüssel ab, indem Sie den Anweisungen in der Schnellstartanleitung folgen: Erstellen einer Multi-Service-Ressource für Foundry Tools.
  4. Erstellen Sie eine Azure Key Vault-Instanz , und fügen Sie dem Schlüsseltresor Ihren Foundry Tools-Schlüssel als geheimen Schlüssel hinzu.
  5. Notieren Sie ihren Schlüsseltresornamen und geheimen Namen. Sie benötigen diese Informationen, um die Ein-Schritt-Transformation später 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)

Sagen Sie die Ausgabe der Testdaten voraus

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 Foundry Tools zum Transformieren von Daten in einem Schritt

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

  • Ersetzen Sie <secret-name> durch den Namen Ihres Foundry Tools-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))