Aprendizagem automática com o Apache Spark

O Apache Spark no Azure Synapse Analytics permite o aprendizado de máquina com big data, fornecendo a capacidade de obter informações valiosas de grandes quantidades de dados estruturados, não estruturados e em rápida movimentação.

Esta seção inclui uma visão geral e tutoriais para fluxos de trabalho de aprendizado de máquina, incluindo análise exploratória de dados, engenharia de recursos, treinamento de modelos, pontuação de modelos e implantação.

Runtime do Synapse

O Synapse Runtime é um ambiente com curadoria otimizado para ciência de dados e aprendizado de máquina. O Synapse Runtime oferece uma variedade de bibliotecas de código aberto populares e cria no SDK do Azure Machine Learning por padrão. O Synapse Runtime também inclui muitas bibliotecas externas, incluindo PyTorch, Scikit-Learn, XGBoost e muito mais.

Saiba mais sobre as bibliotecas disponíveis e as versões relacionadas exibindo o tempo de execução publicado do Azure Synapse Analytics.

Análise exploratória de dados

Ao usar o Apache Spark no Azure Synapse Analytics, há várias opções internas para ajudá-lo a visualizar seus dados, incluindo opções de gráfico de bloco de anotações Synapse, acesso a bibliotecas de código aberto populares como Seaborn e Matplotlib, bem como integração com Synapse SQL e Power BI.

Saiba mais sobre as opções de visualização e análise de dados exibindo o artigo sobre como visualizar dados usando os Blocos de Anotações Synapse do Azure.

Desenvolvimento de funcionalidades

Por padrão, o Synapse Runtime inclui um conjunto de bibliotecas que são comumente usadas para engenharia de recursos. Para grandes conjuntos de dados, você pode usar o Spark SQL, MLlib e Koalas para engenharia de recursos. Para conjuntos de dados menores, bibliotecas de terceiros como Numpy, Pandas e Scikit-learn também fornecem métodos úteis para esses cenários.

Preparar modelos

Há várias opções ao treinar modelos de aprendizado de máquina usando o Azure Spark no Azure Synapse Analytics: Apache Spark MLlib, Azure Machine Learning e várias outras bibliotecas de código aberto.

Saiba mais sobre os recursos de aprendizado de máquina exibindo o artigo sobre como treinar modelos no Azure Synapse Analytics.

SparkML e MLlib

Os recursos de computação distribuída em memória do Spark o tornam uma boa escolha para os algoritmos iterativos usados em aprendizado de máquina e cálculos gráficos. spark.mlfornece um conjunto uniforme de APIs de alto nível que ajudam os usuários a criar e ajustar pipelines de aprendizado de máquina. Para saber mais sobre spark.mlo , você pode visitar o guia de programação do Apache Spark ML.

ML automatizado do Azure Machine Learning (preterido)

O Azure Machine Learning automatizado ML (aprendizagem automática de máquina) ajuda a automatizar o processo de desenvolvimento de modelos de aprendizagem automática. Ele permite que cientistas de dados, analistas e desenvolvedores criem modelos de ML com alta escala, eficiência e produtividade, ao mesmo tempo em que sustentam a qualidade do modelo. Os componentes para executar o SDK de ML automatizado do Azure Machine Learning são incorporados diretamente no Synapse Runtime.

Aviso

  • A partir de 29 de setembro de 2023, o Azure Synapse descontinuará o suporte oficial para o Spark 2.4 Runtimes. Após 29 de setembro de 2023, não abordaremos nenhum tíquete de suporte relacionado ao Spark 2.4. Não haverá pipeline de lançamento para bugs ou correções de segurança para o Spark 2.4. A utilização do Spark 2.4 após a data de corte do suporte é realizada por sua conta e risco. Desencorajamos fortemente o seu uso continuado devido a potenciais preocupações de segurança e funcionalidade.
  • Como parte do processo de substituição do Apache Spark 2.4, gostaríamos de notificá-lo de que o AutoML no Azure Synapse Analytics também será preterido. Isso inclui a interface low code e as APIs usadas para criar avaliações do AutoML por meio do código.
  • Observe que a funcionalidade AutoML estava disponível exclusivamente através do tempo de execução do Spark 2.4.
  • Para os clientes que desejam continuar aproveitando os recursos do AutoML, recomendamos salvar seus dados em sua conta do Azure Data Lake Storage Gen2 (ADLSg2). A partir daí, você pode acessar diretamente a experiência do AutoML por meio do Azure Machine Learning (AzureML). Mais informações sobre essa solução alternativa estão disponíveis aqui.

Bibliotecas de código aberto

Cada pool do Apache Spark no Azure Synapse Analytics vem com um conjunto de bibliotecas de aprendizado de máquina pré-carregadas e populares. Algumas das bibliotecas de aprendizado de máquina relevantes incluídas por padrão incluem:

  • O Scikit-learn é uma das bibliotecas de aprendizado de máquina de nó único mais populares para algoritmos clássicos de ML. O Scikit-learn suporta a maioria dos algoritmos de aprendizagem supervisionada e não supervisionada e também pode ser usado para mineração e análise de dados.

  • XGBoost é uma biblioteca de aprendizado de máquina popular que contém algoritmos otimizados para treinar árvores de decisão e florestas aleatórias.

  • PyTorch & TensorFlow são poderosas bibliotecas de aprendizagem profunda em Python. Dentro de um pool do Apache Spark no Azure Synapse Analytics, você pode usar essas bibliotecas para criar modelos de máquina única definindo o número de executores em seu pool como zero. Mesmo que o Apache Spark não seja funcional nessa configuração, é uma maneira simples e econômica de criar modelos de máquina única.

Monitorizar desenvolvimento de modelos

MLFlow é uma biblioteca de código aberto para gerenciar o ciclo de vida de seus experimentos de aprendizado de máquina. O MLFlow Tracking é um componente do MLflow que registra e rastreia suas métricas de execução de treinamento e artefatos de modelo. Para saber mais sobre como você pode usar o MLFlow Tracking por meio do Azure Synapse Analytics e do Azure Machine Learning, visite este tutorial sobre como usar o MLFlow.

Pontuação do modelo

A pontuação do modelo, ou inferência, é a fase em que um modelo é usado para fazer previsões. Para pontuação de modelo com SparkML ou MLLib, você pode aproveitar os métodos nativos do Spark para executar inferências diretamente em um DataFrame Spark. Para outras bibliotecas de código aberto e tipos de modelo, você também pode criar um UDF do Spark para dimensionar a inferência em grandes conjuntos de dados. Para conjuntos de dados menores, você também pode usar os métodos de inferência de modelo nativo fornecidos pela biblioteca.

Registrar e servir modelos

Registrar um modelo permite armazenar, versionar e rastrear metadados sobre modelos em seu espaço de trabalho. Depois de terminar de treinar seu modelo, você pode registrar seu modelo no registro do modelo do Azure Machine Learning. Uma vez registrados, os modelos ONNX também podem ser usados para enriquecer os dados armazenados em pools SQL dedicados.

Próximos passos

Para começar a usar o aprendizado de máquina no Azure Synapse Analytics, confira os seguintes tutoriais: