Partager via


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

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.

  1. Créez un nouveau notebook.
  2. 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.
  3. 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.
  4. Créez une instance Azure Key Vault et ajoutez votre clé de services Azure AI au coffre de clés en tant que secret.
  5. 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))