Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie ein Machine Learning-Modell mit SynapseML in einem Microsoft Fabric-Notizbuch erstellen. Sie erstellen eine Schulungspipeline, die text featurization und LightGBM Regression verwendet, um Buchbewertungen von Rezensionstext vorherzusagen. Außerdem erfahren Sie, wie Sie Foundry Tools für vorgefertigte Stimmungsanalysen verwenden.
- Erstellen eines Fabric Notizbuchs und Anfügen eines Seehauses
- Importieren von Bibliotheken und Laden von Daten
- Erstellen und Trainieren einer Text-Featurisierungs- und LightGBM-Regressionspipeline
- Generieren von Vorhersagen
- (Optional) Foundry Tools-Stimmungsanalyse ausführen
Voraussetzungen
Erwerben Sie ein Microsoft Fabric-Abonnement. Registrieren Sie sich alternativ für eine kostenlose Microsoft Fabric-Testversion.
Melden Sie sich bei Microsoft Fabric an.
Wechseln Sie zu Fabric, indem Sie den Benutzeroberflächenschalter auf der unteren linken Seite Ihrer Startseite verwenden.
- Erstellen Sie ein neues Notebook in Ihrem Fabric-Arbeitsbereich.
- Fügen Sie ein Seehaus an das Notizbuch an. Erweitern Sie im Explorer-BereichLakehouses, und wählen Sie dann "Hinzufügen" aus.
- (Optional) Um den Schritt der Stimmungsanalyse auszuführen, benötigen Sie Folgendes:
- Ein Foundry-Tools-Schlüssel. Folgen Sie den Anweisungen in der Schnellstartanleitung: Erstellen einer Multi-Service-Ressource für Foundry Tools.
- Eine Azure Key Vault Instanz mit dem Schlüssel "Foundry Tools", der als geheimer Schlüssel gespeichert ist.
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()
Überprüfung: Führen Sie die folgende Zelle aus, um zu bestätigen, dass Spark ausgeführt wird:
print(f"Spark version: {spark.version}")
Die Ausgabe zeigt die Spark-Versionsnummer an. Jede Version 3.4 oder höher wird erwartet. Die genaue Version hängt von Ihrer Fabric Laufzeit ab.
Laden eines Datasets
Laden Sie den Datensatz für Buchrezensionen und teilen Sie ihn in Trainings- und Testdatensätze auf. Das Dataset enthält zwei Spalten: rating (ganze Zahl 1-5) und text (Inhalt überprüfen).
train, test = (
spark.read.parquet(
"wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
)
.limit(1000)
.cache()
.randomSplit([0.8, 0.2])
)
display(train)
Überprüfung: Führen Sie die folgende Zelle aus, um die ordnungsgemäß geladenen Daten zu bestätigen:
print(f"Training rows: {train.count()}, Test rows: {test.count()}")
print(f"Columns: {train.columns}")
train.printSchema()
Die Ausgabe zeigt ungefähr 800 Schulungszeilen und 200 Testzeilen mit zwei Spalten: rating (ganze Zahl) und text (Zeichenfolge). Die genaue Zeilenanzahl variiert, da randomSplit sie nicht deterministisch ist.
Erstellen der Trainingspipeline
Erstellen Sie eine Pipeline, die den Prüftext mit TextFeaturizer featurisiert, und prognostiziert die Bewertung mit LightGBMRegressor.
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)
Überprüfung: Führen Sie die folgende Zelle aus, um die trainierte Pipeline zu bestätigen:
print(f"Pipeline stages: {len(model.stages)}")
print(f"Stage 1: {type(model.stages[0]).__name__}")
print(f"Stage 2: {type(model.stages[1]).__name__}")
Die Ausgabe zeigt zwei Pipelinephasen an: TextFeaturizerModel und LightGBMRegressionModel.
Sagen Sie die Ausgabe der Testdaten voraus
Rufen Sie die transform Methode für das Modell auf, um Bewertungen für die Testdaten vorherzusagen und die Ergebnisse anzuzeigen.
predictions = model.transform(test)
display(predictions)
Überprüfung: Führen Sie die folgende Zelle aus, um zu bestätigen, dass Vorhersagen generiert wurden:
print(f"Prediction columns: {predictions.columns}")
print(f"Prediction count: {predictions.count()}")
predictions.select("rating", "prediction").show(5)
Die Ausgabe listet vier Spalten (rating, text, features, prediction) und ca. 200 Zeilen auf. Die Spalte enthält die vorhergesagte Bewertung des Modells als Float.The prediction column contains the model's predicted rating as a float. Vergleichen Sie sie mit der tatsächlichen rating Spalte, um die Modellleistung zu bewerten.
(Optional) Verwenden von Foundry Tools für die Stimmungsanalyse
Wenn Sie die Stimmung Ihrer Buchrezensionen analysieren möchten, können Sie die Integration von SynapseML in Foundry Tools verwenden. In diesem Schritt wird das vordefinierte TextSentiment Modell verwendet, um die Textstimmung zu klassifizieren, was eine andere Aufgabe ist als die Bewertungsvorhersage in den vorherigen Schritten.
Important
Für diesen Schritt ist ein in Azure Key Vault gespeicherter Schlüssel "Foundry Tools" erforderlich. Wenn Sie diese Voraussetzungen übersprungen haben, schließen Sie sie zuerst ab, oder überspringen Sie diesen Abschnitt.
Führe den folgenden Code mit diesen Ersetzungen aus:
- Ersetzen Sie
<your-secret-name>durch den Namen Ihres Schlüsselschlüssels "Foundry Tools" in Key Vault. - Ersetzen Sie
<your-key-vault-name>durch den Namen Ihrer Azure Key Vault Instanz.
from synapse.ml.services import TextSentiment
from synapse.ml.core.platform import find_secret
sentiment_model = TextSentiment(
textCol="text",
outputCol="sentiment",
subscriptionKey=find_secret("<your-secret-name>", "<your-key-vault-name>")
).setLocation("eastus")
sentiment_results = sentiment_model.transform(test)
display(sentiment_results)
Note
Aktualisieren Sie den Wert setLocation, wenn sich die Ressource "Foundry Tools" in einem anderen Azure Bereich befindet (z. B. "westus2" oder "westeurope").
Überprüfung: Führen Sie die folgende Zelle aus, um zu bestätigen, dass die Stimmungsanalyse abgeschlossen wurde:
print(f"Sentiment columns: {sentiment_results.columns}")
sentiment_results.select("text", "sentiment").show(3, truncate=50)
Die Ausgabe zeigt drei Spalten (rating, text, sentiment). Die sentiment Spalte enthält strukturierte Ergebnisse mit Bezeichnungen wie positive, , negative, neutraloder mixed für jede Überprüfung.
Troubleshooting
| Thema | Ursache | Resolution |
|---|---|---|
JAVA_GATEWAY_EXITED Fehler beim Erstellen von SparkSession |
Ausführen von Code außerhalb eines Fabric Notizbuchs | Führen Sie diesen Code in einem Fabric Notizbuch aus, in dem Spark vorkonfiguriert ist. Führen Sie die Ausführung nicht lokal ohne eine Spark-Installation aus. |
Could not find <secret> in keyvault <vault> |
Der Key Vault-Name oder der Name des Geheimnisses ist falsch, oder die Notebook-Identität hat keinen Zugriff. | Überprüfen Sie, ob Namen exakt übereinstimmen. Bestätigen Sie im Azure-Portal, dass Ihre Fabric-Arbeitsbereichsidentität über die Berechtigung Get für Key Vault-Geheimnisse verfügt. |
TextFeaturizer gibt leere Features zurück. |
Eingabetextspalte ist null oder leer | Überprüfen Sie auf NULL-Werte: train.filter(train.text.isNull()).count() - Entfernen Sie NULL-Werte vor dem Training. |
randomSplit gibt unerwartete Zeilenanzahl zurück. |
Die zufällige Aufteilung von Spark ist nicht deterministisch. | Dieses Verhalten wird erwartet. Legen Sie einen Samen zur Reproduzierbarkeit fest: .randomSplit([0.8, 0.2], seed=42) |
AnalysisException: Path does not exist |
Netzwerkproblem beim Zugriff auf das Beispieldaten-BLOB | Überprüfen Sie die Netzwerkkonnektivität. Bestätigen Sie in Fabric, dass Ihr Arbeitsbereich auf externe Azure Blob Storage-URLs zugreifen kann. |
| Foundry Tools gibt 401 oder 403 zurück. | Ungültiger oder abgelaufener Abonnementschlüssel | Generieren Sie im Azure-Portal im Abschnitt Keys and Endpoint Ihrer Ressource „Foundry Tools“ einen neuen Schlüssel. Aktualisieren Sie das Key Vault-Geheimnis. |
setLocation gibt 404 zurück. |
Nichtübereinstimmung zwischen Regionen | Legen Sie den Speicherort so fest, dass er der Azure-Region entspricht, in der Sie Ihre Foundry Tools-Ressource erstellt haben. |
Bereinigen von Ressourcen
Wenn Sie Azure Ressourcen für den optionalen Schritt "Foundry Tools" erstellt haben und diese nicht mehr benötigen, löschen Sie sie, um Gebühren zu vermeiden:
- Löschen Sie im Azure-Portal die Ressource "Foundry Tools multi-service".
- Löschen Sie im Azure-Portal die Key Vault Instanz.
- Löschen Sie in Ihrem Fabric Arbeitsbereich das Testnotizbuch, wenn Sie es nicht mehr benötigen.