Pontuação em lote dos modelos do Spark no Azure Databricks

Microsoft Entra ID
Azure Databricks
Fábrica de dados do Azure
Armazenamento do Blobs do Azure

Essa arquitetura de referência mostra como criar uma solução escalonável para pontuar em lote um modelo de classificação do Apache Spark em um agendamento usando o Azure Databricks. O Azure Databricks é uma plataforma de análise com base no Apache Spark otimizada para o Azure. O Azure Databricks oferece três ambientes para o desenvolvimento de aplicativos com uso intensivo de dados: Databricks SQL, Databricks Data Science & Engineering e Databricks Machine Learning. O Databricks Machine Learning é um ambiente de machine learning integrado de ponta a ponta que incorpora serviços gerenciados para acompanhamento de testes, treinamento de modelo, desenvolvimento e gerenciamento de recursos e fornecimento de recursos e modelos. Essa arquitetura de referência pode ser usada como um modelo que pode ser generalizado para outros cenários. Há uma implantação de referência para essa arquitetura disponível no GitHub.

Apache®, Apache Spark e Spark® são marcas registradas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou em outros países. O uso desta marca não implica aprovação por parte da Apache Software Foundation.

Arquitetura

Diagrama mostrando a pontuação em lote de modelos de classificação do Apache Spark no Azure Databricks.

Baixe um Arquivo Visio dessa arquitetura.

Workflow

A arquitetura define um fluxo de dados que está inteiramente contido dentro do Azure Databricks com base em um conjunto de notebooks executados sequencialmente. Isso consiste nos seguintes componentes:

Arquivos de dados. A implementação de referência usa um conjunto de dados simulados contido em cinco arquivos de dados estáticos.

Ingestão. O notebook de ingestão de dados baixa os arquivos de dados de entrada em uma coleção de conjuntos de dados do Databricks. Em um cenário do mundo real, dados de dispositivos IoT iriam para o armazenamento acessível de Databricks como SQL do Azure ou Armazenamento de Blobs do Azure. O Databricks dá suporte a várias fontes de dados.

Pipeline de treinamento. Este notebook executa o notebook de engenharia de recursos para criar um conjunto de dados de análise de dados ingeridos. Depois, executará um notebook de criação de modelo que treina o modelo de machine learning usando a biblioteca de aprendizado de máquina executa do Apache Spark MLlib.

Pipeline de pontuação. Este notebook executa o notebook de engenharia de recursos para criar o conjunto de dados de pontuação dos dados ingeridos e executa notebook de pontuação. O notebook de pontuação usa o modelo Spark MLlib para gerar previsões para as observações no conjunto de dados de pontuação. As previsões são armazenadas no repositório de resultados, um novo conjunto de dados no repositório de dados do Databricks.

Agendador. Um trabalho do Databricks agendado lida com pontuação em lote com o modelo Spark. O trabalho executa o notebook de pipeline de pontuação, passando argumentos variáveis por meio de parâmetros de bloco de anotações para especificar os detalhes para a construção de conjunto de dados de pontuação e onde armazenar o conjunto de dados de resultados.

Detalhes da solução

O cenário é criado como um fluxo de pipeline. Cada notebook é otimizado para executar em uma configuração de lote para cada uma das operações: ingestão, engenharia de recursos, criação de modelo e pontuações do modelo. O notebook de engenharia de recursos foi projetado para gerar um conjunto de dados geral para qualquer operação de treinamento, calibração teste ou pontuação. Nesse cenário, usamos uma estratégia de divisão temporal para essas operações, portanto, os parâmetros de notebooks são usados para definir a filtragem do intervalo de datas.

Como o cenário cria um pipeline de lote, fornecemos um conjunto de notebooks de exame opcionais para explorar a saída dos notebooks de pipeline. Você pode encontrar esses notebooks na pasta de notebooks do repositório GitHub:

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

Possíveis casos de uso

Uma empresa em um setor de ativos pesados deseja minimizar os custos e o tempo de inatividade associado a falhas mecânicas inesperadas. Usando dados de IoT coletadas dos seus computadores, podem criar um modelo de manutenção preditiva. Esse modelo permite que os negócios mantenham componentes de forma proativa e repara-os antes de falharem. Ao maximizar o uso de componente mecânico, eles podem controlar os custos e reduzir o tempo de inatividade.

Um modelo de manutenção preditiva coleta dados das máquinas e retém os exemplos de histórico de falhas de componente. O modelo pode então ser usado para monitorar o estado atual dos componentes e prever se um determinado componente falhará em breve. Para casos de uso comum e abordagens de modelação, consulte Guia de IA do Azure para soluções de manutenção preditiva.

Essa arquitetura de referência foi projetada para cargas de trabalho que são disparadas pela presença de novos dados de máquinas de componente. O processamento envolve as seguintes etapas:

  1. A ingestão de dados de armazenamento de dados externos no armazenamento de dados do Azure Databricks.

  2. Treine um modelo de aprendizado de máquina transformando um conjunto de dados de treinamento, em seguida, crie um modelo do Spark MLlib. O MLlib consiste em algoritmos de aprendizado de máquina e utilitários otimizados para usufruir os recursos de escalabilidade de dados do Spark mais comuns.

  3. Aplique o modelo treinado para prever (classificar) as falhas de componente, transformando os dados em um conjunto de dados de pontuação. Pontue os dados com o modelo do Spark MLLib.

  4. Armazene resultados no armazenamento de dados de Databricks para consumo de pós-processamento.

Notebooks são fornecidos no GitHub para executar cada uma dessas tarefas.

Recomendações

O Databricks está configurado para que você possa carregar e implantar seus modelos treinados para fazer previsões com novos dados. O Databricks também oferece outras vantagens:

  • Suporte a logon único usando as credenciais do Microsoft Entra.
  • Agendador de trabalhos para executar os trabalhos para os pipelines de produção.
  • O notebook completamente interativo com colaboração, painéis e APIS de REST.
  • Clusters ilimitados que podem ser dimensionados para qualquer tamanho.
  • Segurança avançada, controles de acesso baseado em função e os logs de auditoria.

Para interagir com o serviço do Azure Databricks, use o Databricks Workspace interface em um navegador da web ou a interface de linha de comando (CLI). Acesse a CLI do Databricks de qualquer plataforma que dá suporte ao Python 2.7.9 a 3.6.

A implementação de referência usa os notebooks para executar tarefas em sequência. Cada notebook armazena artefatos de dados intermediários (treinamento, teste, de pontuação ou conjuntos de resultados de dados) para o mesmo armazenamento de dados como dados de entrada. O objetivo é tornar mais fácil para que você possa usá-lo conforme necessário no seu caso de uso específico. Na prática, se conectar a fonte de dados à instância do Azure Databricks aos notebooks para ler e gravar diretamente de volta no seu armazenamento.

Você pode monitorar a execução do trabalho por meio da interface do usuário Databricks, o armazenamento de dados ou a CLI do Databricks conforme necessário. Monitorar o cluster usando o log de eventos e outras métricas que o Databricks fornece.

Considerações

Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.

Desempenho

Um cluster do Azure Databricks habilita o dimensionamento automático por padrão, de modo que, durante o runtime, o Databricks realoca dinamicamente os trabalhadores para levar em conta as características do seu trabalho. Certas partes do seu pipeline podem ser mais exigentes que outras. O Databricks adiciona trabalhos adicionais durante essas fases do seu trabalho (e remove-os quando não forem mais necessários). Com o dimensionamento automático, alcançar uma alta utilização do cluster é mais fácil, porque você não precisa provisionar o cluster de acordo com uma carga de trabalho.

Além disso, os pipelines agendados mais complexos podem ser desenvolvidos usando o Azure Data Factory com o Azure Databricks.

Armazenamento

Nessas implementações de referência, os dados são armazenados diretamente no armazenamento do Databricks para manter a simplicidade. Em um ambiente de produção, no entanto, os dados podem ser armazenados no armazenamento de dados de nuvem, como o Armazenamento de Blobs do Azure. O Databricks também dá suporte ao Azure Data Lake Storage, ao Azure Synapse Analytics, ao Azure Cosmos DB, ao Apache Kafka e ao Apache Hadoop.

Otimização de custo

A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custo.

Em geral, use a calculadora de preços do Azure para estimar os custos. Outras considerações são descritas na seção Custo em Microsoft Azure Well-Architected Framework.

O Azure Databricks é um Spark premium oferecendo com um custo associado. Além disso, tipos de preço de Databricks standard e premium.

Para este cenário, o tipo de preço standard é suficiente. No entanto, se seu aplicativo específico requer que o dimensionamento automático de clusters lide com cargas de trabalho maiores ou painéis interativos do Databricks, o nível premium pode aumentar ainda mais os custos.

Os notebooks de solução podem ser executados em qualquer plataforma com base no Spark com edições mínimas para remover os pacotes específicos do Databricks. Consulte as seguintes soluções semelhantes para várias plataformas do Azure:

Implantar este cenário

Para implantar essa arquitetura de referência, siga as etapas descritas no repositório GitHub para criar uma solução escalonável para modelos de pontuação do Spark em lote no Azure Databricks.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas