Condividi tramite


Creare un modello con SynapseML

Questo articolo illustra come creare un modello di Machine Learning con SynapseML e come semplifica le attività di Machine Learning complesse. Usare SynapseML per creare una pipeline di training con una fase di definizione delle caratteristiche e una fase di regressione LightGBM. La pipeline stima le valutazioni dal testo della recensione del libro. Ecco come usare modelli predefiniti con SynapseML per risolvere i problemi di Machine Learning.

Prerequisiti

Preparare le risorse

Configurare gli strumenti e le risorse necessari per compilare il modello e la pipeline.

  1. Creare un nuovo notebook
  2. Collegare il notebook a un lakehouse. In Esplora risorse espandere Lakehouses e quindi selezionare Aggiungi.
  3. Ottenere una chiave dei servizi di Azure AI seguendo le istruzioni riportate in Avvio rapido: Creare una risorsa multiservizio per i servizi di Azure AI.
  4. Creare un'istanza di Azure Key Vault e aggiungere la chiave dei servizi di Azure AI all'insieme di credenziali delle chiavi come segreto.
  5. Registrare il nome dell'insieme di credenziali delle chiavi e il nome del segreto. Queste informazioni sono necessarie per eseguire la trasformazione di un passaggio più avanti in questo articolo.

Configurare l'ambiente

Nel notebook importare le librerie SynapseML e inizializzare la sessione Spark.

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

spark = SparkSession.builder.getOrCreate()

Caricare un set di dati

Caricare i propri set di dati e suddividerli in set di training e di 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)

Creare la pipeline di training

Creare una pipeline che definisce le caratteristiche dei dati usando TextFeaturizer dalla libreria synapse.ml.featurize.text e derivare una classificazione usando la funzione 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)

Predire l'output dei dati di test

Chiamare la funzione transform sul modello per stimare e visualizzare l'output dei dati di test come DataFrame.

display(model.transform(test))

Usare i servizi di Azure AI per trasformare i dati in un unico passaggio

In alternativa, per questi tipi di attività con una soluzione predefinita, è possibile usare l'integrazione di SynapseML con i servizi di Azure AI per trasformare i dati in un unico passaggio. Eseguire il codice seguente con queste sostituzioni:

  • Sostituire <secret-name> con il nome del segreto della chiave dei servizi di Azure AI.
  • Sostituire <key-vault-name> con il nome dell'insieme di credenziali delle chiavi.
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))