Condividi tramite


Creare un modello con SynapseML

Questo articolo descrive come creare un modello di Machine Learning usando SynapseML e illustra come SynapseML può semplificare attività complesse di Machine Learning. Si usa SynapseML per creare una piccola pipeline di training di Machine Learning che include una fase di definizione delle caratteristiche e una fase di regressione LightGBM. La pipeline stima le valutazioni in base al testo della revisione da un set di dati di recensioni di libri. Si vedrà anche come SynapseML può semplificare l'uso di modelli predefiniti per risolvere i problemi di Machine Learning.

Prerequisiti

Preparare le risorse

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

  1. Creare un nuovo notebook.
  2. Collegare il notebook a una lakehouse. Per aggiungere una lakehouse esistente o crearne una nuova, espandere Lakehouses in Explorer a sinistra e quindi selezionare Aggiungi.
  3. Ottenere una chiave dei servizi di intelligenza artificiale di Azure seguendo le istruzioni riportate in Avvio rapido: Creare una risorsa multiservizio per i servizi di intelligenza artificiale di Azure.
  4. Creare un'istanza di Azure Key Vault e aggiungere la chiave dei servizi di intelligenza artificiale di Azure all'insieme di credenziali delle chiavi come segreto.
  5. Prendere nota del nome dell'insieme di credenziali delle chiavi e del nome del segreto. Queste informazioni sono necessarie per eseguire la trasformazione in un unico 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 il set di dati e suddividerlo in set di training e 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 la synapse.ml.featurize.text libreria e deriva una classificazione usando la LightGBMRegressor funzione .

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)

Stimare l'output dei dati di test

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

display(model.transform(test))

Usare i servizi di intelligenza artificiale di Azure 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 intelligenza artificiale di Azure 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 di Servizi di intelligenza artificiale di Azure.
  • 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))