Criar um modelo com SynapseML

Este artigo descreve como criar seu primeiro modelo de machine learning usando o SynapseML e demonstra como o SynapseML simplifica tarefas complexas de machine learning. O SynapseML é usado para criar um pequeno pipeline de treinamento de machine learning que inclui um estágio de definição de recursos e um estágio de regressão do LightGBM. O pipeline prevê classificações com base no texto de análise de um conjunto de dados de revisões de livros. Você também vê como o SynapseML pode simplificar o uso de modelos pré-criados para resolver problemas de machine learning.

Pré-requisitos

Preparar os recursos

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

  1. Criar um notebook novo.
  2. Anexe o notebook a um lakehouse. Para adicionar um lakehouse existente ou criar um novo, expanda Lakehouses no Explorer à esquerda e selecione Adicionar.
  3. Obtenha uma chave de serviços de IA do Azure seguindo as instruções em Início Rápido: criar um recurso multisserviço para os 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 seu cofre de chaves e o nome do segredo. Você precisa dessas informações para executar a transformação de uma etapa, mais adiante neste artigo.

Configurar o ambiente

No seu notebook, importe bibliotecas do SynapseML e inicialize sua 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 nos conjuntos de treinamento 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 apresente dados usando TextFeaturizer da biblioteca synapse.ml.featurize.text e deriva uma classificação usando a função 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)

Prever a saída dos dados de teste

Chame a função transform 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 única etapa

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

  • Substitua <secret-name> pelo nome do segredo de 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))