Usar o Azure Databricks para implementar a pontuação em lote escalável de modelos do Spark
Esta arquitetura de referência mostra como criar uma solução escalável para pontuação em lote de um modelo de classificação Apache Spark em um cronograma usando o Azure Databricks. O Azure Databricks é uma plataforma de análise baseada 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 integrado de aprendizado de máquina de ponta a ponta que incorpora serviços gerenciados para rastreamento de experimentos, treinamento de modelos, desenvolvimento e gerenciamento de recursos e serviço de recursos e modelos. Você pode usar essa arquitetura de referência como um modelo que pode ser generalizado para outros cenários.
Apache® e Apache Spark® são marcas registadas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou noutros países. Nenhum endosso da Apache Software Foundation está implícito no uso dessas marcas.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
A arquitetura define um fluxo de dados que está totalmente contido em do Azure Databricks com base em um conjunto de blocos de anotações executados sequencialmente. É composto pelos seguintes componentes:
Ficheiros de dados. A implementação de referência usa um conjunto de dados simulados contidos em cinco arquivos de dados estáticos.
Ingestão. O bloco de anotações de ingestão de dados baixa os arquivos de dados de entrada em uma coleção de conjuntos de dados Databricks. Em um cenário do mundo real, os dados de dispositivos IoT seriam transmitidos para o armazenamento acessível pelo Databricks, como o Azure SQL ou o armazenamento de Blob do Azure. O Databricks suporta várias fontes de dados.
Melhorias recentes na ingestão de dados incluem replicação de dados em tempo real de vários bancos de dados e aplicativos SaaS, possibilitada por recursos como Lake House Federation.
Pipeline de treinamento. Este bloco de anotações executa o bloco de anotações de engenharia de recursos para criar um conjunto de dados de análise a partir dos dados ingeridos. Em seguida, o pipeline executa um bloco de anotações de construção de modelo que treina o modelo de aprendizado de máquina usando o Apache Spark MLlib biblioteca de aprendizado de máquina escalável.
Os recursos aprimorados de ML no Databricks incluem rastreamento de experimentos e treinamento de modelos, otimizando ainda mais esse pipeline.
Pipeline de pontuação. Este bloco de anotações executa o bloco de anotações de engenharia de recursos para criar um conjunto de dados de pontuação a partir dos dados ingeridos e executa o bloco de anotações de pontuação. O caderno de pontuação usa o modelo Spark MLlib treinado 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 armazenamento de dados Databricks.
O pipeline de pontuação pode usar a função ai_query
para inferência em lote, processando grandes conjuntos de dados de forma eficiente com provisões para escalabilidade e otimização de desempenho.
Agendador. Um trabalho Databricks agendado lida com a pontuação em lote com o modelo Spark. O trabalho executa o bloco de anotações do pipeline de pontuação, passando argumentos variáveis pelos parâmetros do bloco de anotações para especificar os detalhes da construção do conjunto de dados de pontuação e onde armazenar o conjunto de dados de resultados.
Detalhes da solução
O cenário é construído como um fluxo de gasoduto. Cada notebook é otimizado para ser executado em uma configuração de lote para cada uma das operações: ingestão, engenharia de recursos, construção de modelos e pontuações de modelos. O notebook de engenharia de recursos foi projetado para gerar um conjunto de dados gerais para qualquer uma das operações 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 do bloco de anotações são usados para definir a filtragem de intervalo de datas.
Potenciais casos de utilização
Uma empresa em um setor pesado em ativos quer minimizar os custos e o tempo de inatividade associados a falhas mecânicas inesperadas. Usando dados de IoT coletados de suas máquinas, eles podem criar um modelo de manutenção preditiva. Esse modelo permite que a empresa mantenha os componentes de forma proativa e os repare antes que eles falhem. Ao maximizar o uso de componentes mecânicos, 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 exemplos históricos de falhas de componentes. O modelo pode então ser usado para monitorar o estado atual dos componentes e prever se um determinado componente falhará em breve.
Essa arquitetura de referência foi projetada para cargas de trabalho acionadas pela presença de novos dados das máquinas componentes. O processamento envolve as seguintes etapas:
Ingerir os dados do armazenamento de dados externo em um repositório de dados do Azure Databricks.
Treine um modelo de aprendizado de máquina transformando os dados em um conjunto de dados de treinamento e, em seguida, criando um modelo Spark MLlib. O MLlib consiste nos algoritmos e utilitários de aprendizado de máquina mais comuns otimizados para aproveitar os recursos de escalabilidade de dados do Spark.
Aplique o modelo treinado para prever (classificar) falhas de componentes transformando os dados em um conjunto de dados de pontuação. Pontuar os dados com o modelo Spark MLLib.
Armazene resultados no armazenamento de dados Databricks para consumo pós-processamento.
Alternativas
Essa arquitetura pode usar Mosaic AI Model Serving para implantar modelos para inferência em lote e em tempo real usando a computação sem servidor do Azure Databricks. Ele fornece uma interface para dimensionar recursos dinamicamente, melhorando o desempenho e a eficiência de custos no processamento de grandes conjuntos de dados.
Desenvolva pipelines agendados mais complexos usando Microsoft Fabric com o Azure Databricks.
Recomendações
O Databricks é 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 de logon único usando credenciais do Microsoft Entra.
- Agendador de tarefas para executar trabalhos para pipelines de produção.
- Notebook totalmente interativo com colaboração, painéis, APIs REST.
- Clusters ilimitados que podem ser dimensionados para qualquer tamanho.
- Segurança avançada, controles de acesso baseados em função e logs de auditoria.
Para interagir com o serviço Azure Databricks, use a interface do Espaço de Trabalho Databricks em um navegador da Web ou a interface de linha de comando (CLI).
Essa arquitetura usa blocos de anotações para executar tarefas em sequência. Cada bloco de anotações armazena artefatos de dados intermediários (conjuntos de dados de treinamento, teste, pontuação ou resultados) no mesmo armazenamento de dados que os dados de entrada. O objetivo é tornar mais fácil para você usá-lo conforme necessário em seu caso de uso específico. Na prática, você conectaria sua fonte de dados à sua instância do Azure Databricks para que os blocos de anotações lessem e gravassem diretamente em seu armazenamento.
Monitore a execução do trabalho por meio da interface do usuário do Databricks, do armazenamento de dados ou da CLI do Databricks, conforme necessário. Monitore o cluster usando o log de eventos e outras métricas fornecidas pelo Databricks.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Fiabilidade
A confiabilidade garante que seu aplicativo possa atender aos compromissos que você assume com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para Confiabilidade.
Nessa arquitetura, os dados são armazenados diretamente no armazenamento Databricks para simplificar. Em uma configuração de produção, no entanto, você deve armazenar os dados no armazenamento de dados em nuvem, como Armazenamento de Blob do Azure. Databricks também suporta do Repositório Azure Data Lake, Microsoft Fabric, Azure Cosmos DB, Apache Kafkae Apache Hadoop.
Otimização de Custos
A Otimização de Custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de projeto para Otimização de custos.
O Azure Databricks é uma oferta premium do Spark com um custo associado. Além disso, existem níveis de preços padrão e premium do Databricks.
Para este cenário, o nível de preço padrão é suficiente. No entanto, se seu aplicativo específico exigir o dimensionamento automático de clusters para lidar com cargas de trabalho maiores ou painéis interativos do Databricks, a camada Premium poderá aumentar ainda mais os custos.
Eficiência de desempenho
Eficiência de desempenho é a capacidade de sua carga de trabalho de atender às demandas colocadas pelos usuários de maneira eficiente. Para obter mais informações, consulte Lista de verificação de revisão de design para Eficiência de desempenho.
Um cluster do Azure Databricks permite o dimensionamento automático por padrão para que, durante o tempo de execução, o Databricks realoque dinamicamente os trabalhadores para levar em conta as características do seu trabalho. Certas partes do seu pipeline podem ser mais exigentes computacionalmente do que outras. O Databricks adiciona trabalhadores extras durante essas fases do seu trabalho (e os remove quando não são mais necessários). O dimensionamento automático facilita a alta utilização do cluster, pois não é necessário provisionar o cluster para corresponder a uma carga de trabalho.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Principais autores:
- Freddy Ayala - Brasil | Arquiteto de Soluções Cloud
- John Ehrlinger - Brasil | Cientista Aplicado Sénior
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.