Udostępnij za pośrednictwem


Tworzenie modelu za pomocą usługi SynapseML

W tym artykule opisano sposób tworzenia modelu uczenia maszynowego przy użyciu języka SynapseML i pokazano, jak usługa SynapseML może uprościć złożone zadania uczenia maszynowego. Usługa SynapseML umożliwia utworzenie małego potoku trenowania uczenia maszynowego obejmującego etap cechowania i etap regresji LightGBM. Potok przewiduje oceny na podstawie tekstu przeglądu z zestawu danych recenzji książek. Zobaczysz również, jak usługa SynapseML może uprościć korzystanie ze wstępnie utworzonych modeli w celu rozwiązywania problemów z uczeniem maszynowym.

Wymagania wstępne

  • Uzyskaj subskrypcję usługi Microsoft Fabric. Możesz też utworzyć konto bezpłatnej wersji próbnej usługi Microsoft Fabric.

  • Zaloguj się do usługi Microsoft Fabric.

  • Użyj przełącznika środowiska po lewej stronie głównej, aby przełączyć się na środowisko usługi Synapse Nauka o danych.

    Zrzut ekranu przedstawiający menu przełącznika środowiska pokazujące, gdzie wybrać Nauka o danych.

Przygotowywanie zasobów

Utwórz narzędzia i zasoby potrzebne do utworzenia modelu i potoku.

  1. Utwórz nowy notes.
  2. Dołącz notes do magazynu lakehouse. Aby dodać istniejący magazyn lakehouse lub utworzyć nowy, rozwiń węzeł Lakehouses w obszarze Eksplorator po lewej stronie, a następnie wybierz pozycję Dodaj.
  3. Pobierz klucz usług AI platformy Azure, postępując zgodnie z instrukcjami w przewodniku Szybki start: tworzenie zasobu wielosługowego dla usług Azure AI.
  4. Utwórz wystąpienie usługi Azure Key Vault i dodaj klucz usług Azure AI do magazynu kluczy jako wpis tajny.
  5. Zanotuj nazwę magazynu kluczy i nazwę wpisu tajnego. Te informacje są potrzebne do uruchomienia przekształcenia jednoetapowego w dalszej części tego artykułu.

Konfigurowanie środowiska

W notesie zaimportuj biblioteki SynapseML i zainicjuj sesję platformy Spark.

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

spark = SparkSession.builder.getOrCreate()

Ładowanie zestawu danych

Załaduj zestaw danych i podziel go na zestawy trenowania i testowania.

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

display(train)

Tworzenie potoku trenowania

Utwórz potok, który featurizuje dane przy użyciu TextFeaturizer synapse.ml.featurize.text biblioteki i uzyskuje klasyfikację przy użyciu LightGBMRegressor funkcji .

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)

Przewidywanie danych wyjściowych danych testowych

Wywołaj transform funkcję w modelu, aby przewidzieć i wyświetlić dane wyjściowe danych testowych jako ramkę danych.

display(model.transform(test))

Przekształcanie danych w jednym kroku za pomocą usług Azure AI

Alternatywnie w przypadku tego rodzaju zadań, które mają wstępnie utworzone rozwiązanie, możesz użyć integracji usługi SynapseML z usługami Azure AI, aby przekształcić dane w jednym kroku. Uruchom następujący kod z następującymi zamianami:

  • Zastąp <secret-name> ciąg nazwą klucza usługi Azure AI Services.
  • Zastąp <key-vault-name> ciąg nazwą magazynu kluczy.
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))