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
Obtenga una suscripción a Microsoft Fabric. También puede registrarse para obtener una evaluación gratuita de Microsoft Fabric.
Inicie sesión en Microsoft Fabric.
Cambie a la experiencia de ciencia de datos de Synapse mediante el conmutador de experiencia en el lado izquierdo de la página principal.
Preparación de recursos
Cree las herramientas y los recursos que necesita para compilar el modelo y la canalización.
- Creación de un cuaderno.
- 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.
- 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.
- Cree una instancia de Azure Key Vault y agregue la clave de servicios de Azure AI al almacén de claves como secreto.
- 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))