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 includa 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
Ottenere una sottoscrizione di Microsoft Fabric. In alternativa, iscriversi per ottenere una versione di valutazione di Microsoft Fabric gratuita.
Accedere a Microsoft Fabric.
Usare l’opzione esperienza sul lato sinistro della home page per passare all'esperienza Science di Synapse.
Preparare le risorse
Creare gli strumenti e le risorse necessari per compilare il modello e la pipeline.
- Creare un nuovo notebook.
- Collegare il notebook a un lakehouse. Per aggiungere un lakehouse esistente o crearne uno nuovo, espandere Lakehouse in Explorer a sinistra e quindi selezionare Aggiungi.
- 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.
- Creare un'istanza di Azure Key Vault e aggiungere la chiave dei servizi di Azure AI all'insieme di credenziali delle chiavi come segreto.
- 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 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))