Delen via


Een model bouwen met SynapseML

In dit artikel wordt beschreven hoe u een machine learning-model bouwt met behulp van SynapseML en hoe SynapseML complexe machine learning-taken kan vereenvoudigen. U gebruikt SynapseML om een kleine machine learning-trainingspijplijn te maken die een featurization-fase en een LightGBM-regressiefase bevat. De pijplijn voorspelt beoordelingen op basis van beoordelingstekst uit een gegevensset met boekbeoordelingen. U ziet ook hoe SynapseML het gebruik van vooraf samengestelde modellen kan vereenvoudigen om machine learning-problemen op te lossen.

Vereisten

Resources voorbereiden

Maak de hulpprogramma's en resources die u nodig hebt om het model en de pijplijn te bouwen.

  1. Maak een nieuw notitieblok.
  2. Koppel uw notitieblok aan een lakehouse. Als u een bestaand lakehouse wilt toevoegen of een nieuw lakehouse wilt maken, vouwt u Lakehouses uit onder Explorer aan de linkerkant en selecteert u Vervolgens Toevoegen.
  3. Haal een Azure AI-servicessleutel op door de instructies in de quickstart te volgen: Een resource voor meerdere services maken voor Azure AI-services.
  4. Maak een Azure Key Vault-exemplaar en voeg uw Azure AI-servicessleutel als geheim toe aan de sleutelkluis.
  5. Noteer de naam en de geheime naam van uw sleutelkluis. U hebt deze informatie nodig om de transformatie in één stap verderop in dit artikel uit te voeren.

De omgeving instellen

Importeer synapseML-bibliotheken in uw notebook en initialiseer uw Spark-sessie.

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

spark = SparkSession.builder.getOrCreate()

Een gegevensset laden

Laad uw gegevensset en splits deze in trainings- en testsets.

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

display(train)

De trainingspijplijn maken

Maak een pijplijn die gegevens TextFeaturizer uit de synapse.ml.featurize.text bibliotheek bevat en een classificatie afleidt met behulp van de LightGBMRegressor functie.

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)

De uitvoer van de testgegevens voorspellen

Roep de transform functie op het model aan om de uitvoer van de testgegevens te voorspellen en weer te geven als een dataframe.

display(model.transform(test))

Azure AI-services gebruiken om gegevens in één stap te transformeren

U kunt ook de integratie van SynapseML met Azure AI-services gebruiken om uw gegevens in één stap te transformeren voor dit soort taken met een vooraf samengestelde oplossing. Voer de volgende code uit met deze vervangingen:

  • Vervang door <secret-name> de naam van uw Azure AI Services-sleutelgeheim.
  • Vervang <key-vault-name> door de naam van uw sleutelkluis.
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))