Dela via


Skapa en modell med SynapseML

Den här artikeln beskriver hur du skapar en maskininlärningsmodell med hjälp av SynapseML och visar hur SynapseML kan förenkla komplexa maskininlärningsuppgifter. Du använder SynapseML för att skapa en liten pipeline för maskininlärningsträning som innehåller en funktionaliseringsfas och ett LightGBM-regressionssteg. Pipelinen förutsäger klassificeringar baserat på granskningstext från en datamängd med bokrecensioner. Du ser också hur SynapseML kan förenkla användningen av fördefinierade modeller för att lösa maskininlärningsproblem.

Förutsättningar

Förbereda resurser

Skapa de verktyg och resurser som du behöver för att skapa modellen och pipelinen.

  1. Skapa en ny notebook-fil.
  2. Bifoga anteckningsboken till ett sjöhus. Om du vill lägga till ett befintligt lakehouse eller skapa ett nytt expanderar du Lakehouses under Utforskaren till vänster och väljer sedan Lägg till.
  3. Hämta en Azure AI-tjänstnyckel genom att följa anvisningarna i Snabbstart: Skapa en resurs med flera tjänster för Azure AI-tjänster.
  4. Skapa en Azure Key Vault-instans och lägg till din Azure AI-tjänstnyckel i nyckelvalvet som en hemlighet.
  5. Anteckna namnet på ditt nyckelvalv och ditt hemliga namn. Du behöver den här informationen för att köra enstegstransformationen senare i den här artikeln.

Konfigurera miljön

Importera SynapseML-bibliotek i anteckningsboken och initiera Spark-sessionen.

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

spark = SparkSession.builder.getOrCreate()

Läsa in en datauppsättning

Läs in din datauppsättning och dela upp den i tränings- och testuppsättningar.

train, test = (
    spark.read.parquet(
        "wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
    )
    .limit(1000)
    .cache()
    .randomSplit([0.8, 0.2])
)

display(train)

Skapa träningspipelinen

Skapa en pipeline som funktionaliserar data med hjälp av TextFeaturizer synapse.ml.featurize.text från biblioteket och härleder ett omdöme med hjälp av LightGBMRegressor funktionen.

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)

Förutsäga utdata från testdata

transform Anropa funktionen i modellen för att förutsäga och visa utdata från testdata som en dataram.

display(model.transform(test))

Använda Azure AI-tjänster för att transformera data i ett steg

För den här typen av uppgifter som har en fördefinierad lösning kan du också använda SynapseML:s integrering med Azure AI-tjänster för att transformera dina data i ett enda steg. Kör följande kod med dessa ersättningar:

  • Ersätt <secret-name> med namnet på din Azure AI Services-nyckelhemlighet.
  • Ersätt <key-vault-name> med namnet på ditt nyckelvalv.
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))