Crie um modelo com SynapseML

Este artigo descreve como criar um modelo de aprendizado de máquina usando SynapseML e demonstra como SynapseML pode simplificar tarefas complexas de aprendizado de máquina. Você usa o SynapseML para criar um pequeno pipeline de treinamento de aprendizado de máquina que inclui um estágio de featurização e um estágio de regressão LightGBM. O pipeline prevê classificações com base no texto de revisão de um conjunto de dados de resenhas de livros. Você também vê como o SynapseML pode simplificar o uso de modelos pré-construídos para resolver problemas de aprendizado de máquina.

Pré-requisitos

  • Obtenha uma assinatura do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.

  • Entre no Microsoft Fabric.

  • Use o seletor de experiência no lado esquerdo da sua página inicial para alternar para a experiência Synapse Data Science.

    Captura de tela do menu do seletor de experiência, mostrando onde selecionar Ciência de Dados.

Preparar recursos

Crie as ferramentas e os recursos necessários para criar o modelo e o pipeline.

  1. Crie um novo bloco de notas.
  2. Ligue o seu bloco de notas a uma casa no lago. Para adicionar uma casa de lago existente ou criar uma nova, expanda Lakehouses em Explorer à esquerda e selecione Adicionar.
  3. Obtenha uma chave de serviços de IA do Azure seguindo as instruções em Guia de início rápido: criar um recurso multisserviço para serviços de IA do Azure.
  4. Crie uma instância do Azure Key Vault e adicione sua chave de serviços de IA do Azure ao cofre de chaves como um segredo.
  5. Anote o nome do cofre da chave e o nome secreto. Você precisa dessas informações para executar a transformação de uma etapa mais adiante neste artigo.

Configurar o ambiente

No seu bloco de notas, importe bibliotecas SynapseML e inicialize a sessão do Spark.

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

spark = SparkSession.builder.getOrCreate()

Carregar um conjunto de dados

Carregue seu conjunto de dados e divida-o em conjuntos de trem e teste.

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

display(train)

Criar o pipeline de treinamento

Crie um pipeline que featurize dados usando TextFeaturizer a biblioteca e derive synapse.ml.featurize.text uma classificação usando a LightGBMRegressor função.

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)

Prever a saída dos dados de teste

Chame a transform função no modelo para prever e exibir a saída dos dados de teste como um dataframe.

display(model.transform(test))

Usar os serviços de IA do Azure para transformar dados em uma etapa

Como alternativa, para esses tipos de tarefas que têm uma solução pré-criada, você pode usar a integração do SynapseML com os serviços de IA do Azure para transformar seus dados em uma etapa. Execute o seguinte código com estas substituições:

  • Substitua <secret-name> pelo nome do segredo da chave dos Serviços de IA do Azure.
  • Substitua <key-vault-name> pelo nome do cofre de chaves.
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))