Sestavení modelu pomocí SynapseML

Tento článek ukazuje, jak vytvořit model strojového učení pomocí SynapseML a jak zjednodušuje složité úlohy strojového učení. Pomocí SynapseML sestavte trénovací kanál s fází featurizace a regresní fází LightGBM. Pipeline predikuje hodnocení z textu recenze knihy. Tady je postup použití předem připravených modelů se službou SynapseML k řešení problémů se strojovým učením.

Požadavky

Příprava prostředků

Nastavte nástroje a prostředky, které potřebujete k sestavení modelu a datového toku.

  1. Vytvoření nového poznámkového bloku
  2. Připojte poznámkový blok k jezeru. V Průzkumníku rozbalte položku Lakehouses a pak vyberte Přidat.
  3. Získejte klíč Foundry Tools podle pokynů v rychlém startu: Vytvoření prostředku s více službami pro Foundry Tools.
  4. Vytvořte instanci služby Azure Key Vault a přidejte klíč Foundry Tools do trezoru klíčů jako tajný klíč.
  5. Poznamenejte si název trezoru klíčů a název tajného kódu. Tyto informace budete potřebovat ke spuštění transformace jednoho kroku dále v tomto článku.

Nastavení prostředí

V poznámkovém bloku importujte knihovny SynapseML a inicializujte relaci Sparku.

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

spark = SparkSession.builder.getOrCreate()

Načtení datové sady

Načtěte datovou sadu a rozdělte ji do trénovacích a testovacích sad.

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

display(train)

Vytvořte tréninkovou pipeline

Vytvořte kanál, který featurizuje data pomocí TextFeaturizer z knihovny synapse.ml.featurize.text a odvodí hodnocení pomocí funkce 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)

Predikce výstupu testovacích dat

transform Voláním funkce v modelu můžete předpovědět a zobrazit výstup testovacích dat jako datový rámec.

display(model.transform(test))

Použití nástrojů Foundry k transformaci dat v jednom kroku

Pro tyto druhy úloh, které mají předem připravené řešení, můžete pomocí integrace SynapseML s Nástroji Foundry transformovat data v jednom kroku. Spusťte následující kód s těmito nahrazeními:

  • Nahraďte <secret-name> názvem vašeho tajného klíče Foundry Tools.
  • Nahraďte <key-vault-name> názvem trezoru klíčů.
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))