Créer un modèle avec SynapseML
Cet article décrit comment créer un modèle d'apprentissage automatique à l'aide de SynapseML et montre comment SynapseML peut simplifier les tâches complexes d'apprentissage automatique. Vous utilisez SynapseML pour créer un petit pipeline de formation d’apprentissage automatique qui comprend une étape de caractérisation et une étape de régression LightGBM. Le pipeline prédit les notes en fonction du texte de révision d'un ensemble de données de critiques de livres. Vous voyez également comment SynapseML peut simplifier l’utilisation de modèles prédéfinis pour résoudre les problèmes d’apprentissage automatique.
Prérequis
Obtenir un abonnement Microsoft Fabric. Ou, inscrivez-vous pour un essai gratuit de Microsoft Fabric.
Connectez-vous à Microsoft Fabric.
Utilisez le sélecteur d’expérience sur le côté gauche de votre page d’accueil pour passer à l’expérience science des données Synapse.
Préparer les ressources
Créez les outils et les ressources dont vous avez besoin pour générer le modèle et le pipeline.
- Créez un nouveau notebook.
- Attachez votre notebook à lakehouse. Pour ajouter un lakehouse existant ou en créer un nouveau, développez Lakehouses sous Explorateur à gauche, puis sélectionnez Ajouter.
- Obtenez une clé Azure AI services en suivant les instructions du Guide de démarrage rapide : créer une ressource multiservices pour Azure AI services.
- Créez une instance Azure Key Vault et ajoutez votre clé de services Azure AI au coffre de clés en tant que secret.
- Notez le nom de votre coffre de clés et le nom secret. Vous aurez besoin de ces informations pour exécuter la transformation en une étape plus loin dans cet article.
Configurer l’environnement
Dans votre notebook, importez des bibliothèques SynapseML et initialisez votre session Spark.
from pyspark.sql import SparkSession
from synapse.ml.core.platform import *
spark = SparkSession.builder.getOrCreate()
Charger un jeu de données
Chargez votre ensemble de données et divisez-le en ensembles d'apprentissage et de test.
train, test = (
spark.read.parquet(
"wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
)
.limit(1000)
.cache()
.randomSplit([0.8, 0.2])
)
display(train)
Créer le pipeline de formation
Créez un pipeline qui présente les données à l'aide de TextFeaturizer
de la bibliothèque synapse.ml.featurize.text
et dérive une note à l'aide de la fonction 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)
Prédire la sortie des données de test
Appelez la fonction transform
sur le modèle pour prédire et afficher la sortie des données de test sous forme de dataframe.
display(model.transform(test))
Utiliser Azure AI services pour transformer des données en une seule étape
Une alternative pour ces types de tâches qui ont une solution prédéfinie consiste à utiliser l'intégration de SynapseML avec Azure AI services pour transformer vos données en une seule étape. Exécutez ensuite le code suivant avec ces remplacements :
- Remplacez
<secret-name>
par le nom de secret de votre clé Azure AI Services. - Remplacez
<key-vault-name>
par le nom de votre coffre de clés.
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))