Compartir a través de


Compilación de un modelo con SynapseML

Este artículo describe cómo crear un modelo de aprendizaje automático utilizando SynapseML y demuestra cómo SynapseML puede simplificar las tareas complejas de aprendizaje automático. Utiliza SynapseML para crear una pequeña canalización de entrenamiento de aprendizaje automático que incluye una etapa de caracterización y una etapa de regresión LightGBM. La canalización predice las valoraciones basándose en el texto de las reseñas de un conjunto de datos de reseñas de libros. También verá cómo SynapseML puede simplificar el uso de modelos precompilados para resolver problemas de aprendizaje automático.

Requisitos previos

Preparación de recursos

Cree las herramientas y los recursos que necesita para compilar el modelo y la canalización.

  1. Creación de un cuaderno.
  2. Adjunte el cuaderno a un almacén de lago. Para agregar una instancia de Lakehouse existente o crear una nueva, expanda Lakehouses en el Explorador a la izquierda y, a continuación, seleccione Agregar.
  3. Obtenga una clave de servicios de Azure AI siguiendo las instrucciones que aparecen en Inicio rápido: Crear un recurso de varios servicios para los servicios de Azure AI.
  4. Cree una instancia de Azure Key Vault y agregue la clave de servicios de Azure AI al almacén de claves como secreto.
  5. Anote el nombre del almacén de claves y el nombre de la clave secreta. Necesita esta información para ejecutar la transformación de un solo paso más adelante en este artículo.

Configuración del entorno

En su cuaderno, importe las bibliotecas SynapseML e inicialice su sesión Spark.

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

spark = SparkSession.builder.getOrCreate()

Cargar un conjunto de datos

Cargue su conjunto de datos y divídalo en conjuntos de entrenamiento y de prueba.

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

display(train)

Crear la canalización de entrenamiento

Cree una canalización que caracterice los datos utilizando TextFeaturizer de la synapse.ml.featurize.text biblioteca y obtenga una calificación utilizando la función 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)

Predecir el resultado de los datos de prueba

Llame a la función transform en el modelo para predecir y mostrar la salida de los datos de prueba como un marco de datos.

display(model.transform(test))

Utilizar los servicios de Azure AI para transformar los datos en un solo paso

Alternativamente, para este tipo de tareas que tienen una solución precompilada, puede utilizar la integración de SynapseML con servicios de Azure AI para transformar sus datos en un solo paso. Ejecute el código siguiente con estos reemplazos:

  • Reemplace <secret-name> por el nombre del secreto de clave de servicios de Azure AI.
  • Reemplace <key-vault-name> por el nombre del almacén de claves.
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))