Ciência de dados e machine learning com Azure Databricks

Azure Databricks
Armazenamento do Azure Data Lake
AKS (Serviço de Kubernetes do Azure)
Azure Machine Learning

Ideias de solução

Esse artigo é uma ideia de solução. Se você quiser que expandamos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações de implementação ou diretrizes de preços, informe-nos fornecendo comentários do GitHub.

Esta arquitetura mostra como aprimorar as operações usando o Azure Databricks, o Delta Lake e o MLflow para a ciência de dados e o aprendizado de máquina. Você pode aprimorar sua eficiência geral e a experiência do cliente desenvolvendo, treinando e implantando modelos de machine learning.

Arquitetura

Architecture diagram showing how Azure Databricks works with data storage services to refine and analyze data and make it available for other services.

O diagrama contém três retângulos cinzas: um processo, um serviço e um armazenamento rotulados. Os retângulos Processo e Serviço estão lado a lado na parte superior do diagrama. O retângulo Serviço contém uma caixa branca com ícones para Machine Learning e Serviço de Kubernetes do Azure. Outra caixa branca abrange os retângulos Processo e Serviço. Ela contém ícones para o Azure Databricks e o MLflow. Uma seta aponta dessa caixa para a caixa branca no retângulo Serviço. Abaixo do retângulo Processo está o retângulo Armazenamento. Ele contém uma caixa branca com ícones para Data Lake Storage, Delta Lake e três tabelas de banco de dados rotuladas como bronze, prata e ouro. Três linhas conectam os retângulos Processo e Armazenamento, com setas na extremidade de cada linha.

Baixe um Arquivo Visio dessa arquitetura.

A solução armazena, processa e fornece dados:

Fluxo de dados

Repositório

O Data Lake Storage armazena dados no formato Data Lake. O Delta Lake forma a camada coletado do data lake. Uma arquitetura medalhão organiza os dados em três camadas:

  • As tabelas bronze contêm dados brutos.
  • As tabelas prata contêm dados limpos e filtrados.
  • As tabelas outo armazenam dados agregados prontos para análise e relatórios.

Processar

  • O código de várias linguagens, estruturas e bibliotecas prepara, refina e limpa os dados brutos (1). As possibilidades de codificação incluem Python, R, SQL, Spark, Pandas e Koalas.

  • O Azure Databricks executa cargas de trabalho de ciência de dados. Essa plataforma também cria e treina modelos de machine learning (2). O Azure Databricks usa bibliotecas pré-instaladas e otimizadas. Os exemplos incluem scikit-learn, TensorFlow, PyTorch e XGBoost.

  • O acompanhamento do MLflow captura os experimentos de machine learning, as execuções de modelo e os resultados (3). Quando o melhor modelo está pronto para produção, o Azure Databricks implanta-o no repositório de modelos do MLflow. Esse registro centralizado armazena informações sobre os modelos de produção. O registro também disponibiliza modelos para outros componentes:

    • Os pipelines do Spark e do Python podem ingerir modelos. Esses pipelines lidam com cargas de trabalho em lotes ou processos ETL de streaming.
    • As APIs REST fornecem acesso a modelos para muitas finalidades. Os exemplos incluem teste e pontuação interativa em aplicativos Web e móveis.

Serve

O Azure Databricks pode implantar modelos para outros serviços, como Machine Learning e AKS (4).

Componentes

  • O Azure Databricks é uma plataforma de análise de dados. Seus clusters Spark totalmente gerenciados executam cargas de trabalho de ciência de dados. O Azure Databricks também usa bibliotecas pré-instaladas e otimizadas para criar e treinar modelos de machine learning. A integração do MLflow com o Azure Databricks fornece uma maneira de acompanhar experimentos, armazenar modelos em repositórios e disponibilizar modelos para outros serviços. O Azure Databricks oferece escalabilidade:

    • Os clusters de computação de nó único lidam com pequenos conjuntos de dados e execuções de modelo único.
    • Para conjuntos de dados grandes, clusters de computação de vários nós ou clusters de GPU (unidade de processamento gráfico) estão disponíveis. Esses clusters usam bibliotecas e estruturas como HorovodRunner e Hyperopt para execuções de modelo paralelas.
  • O Data Lake Storage é um data lake seguro e escalonável para cargas de trabalho de análise de alto desempenho. Esse serviço gerencia diversos petabytes de informações, mantendo centenas de gigabits de taxa de transferência. Os dados podem ter estas características:

    • São estruturados, semiestruturados ou não estruturados.
    • Vêm de várias fontes heterogêneas, como logs, arquivos e mídia.
    • São estáticos, de lotes ou streaming.
  • Delta Lake é uma camada de armazenamento que usa um formato de arquivo aberto. Essa camada é executada em cima do armazenamento em nuvem, como o Data Lake Storage. O Delta Lake é otimizado para transformar e limpar dados em lote e de streaming. Essa plataforma dá suporte a esses recursos e funcionalidades:

    • Controle de versão e reversão de dados.
    • Transações ACID (atomicidade, consistência, isolamento e durabilidade) para confiabilidade.
    • Um padrão consistente para preparação de dados, treinamento e serviço de modelo.
    • Viagem no tempo para instantâneos consistentes dos dados de origem. Os cientistas de dados podem treinar modelos nos instantâneos em vez de criar cópias separadas.
  • MLflow é uma plataforma de código aberto para o ciclo de vida do aprendizado de máquina (ML). Os componentes do MLflow monitoram os modelos de machine learning durante o treinamento e a execução. As informações armazenadas incluem código, dados, informações de configuração e resultados. O MLflow também armazena modelos e os carrega na produção. Como o MLflow usa estruturas abertas, vários serviços, aplicativos, estruturas e ferramentas podem consumir os modelos.

  • O Machine Learning é um ambiente baseado em nuvem que ajuda você a criar, implantar e gerenciar soluções de análise preditiva. Com esses modelos, você pode prever o comportamento, os resultados e as tendências.

  • O AKs é um serviço de Kubernetes altamente disponível, seguro e totalmente gerenciado. O AKS facilita a implantação e o gerenciamento dos aplicativos em contêineres.

Detalhes do cenário

À medida que sua organização reconhece o poder da ciência de dados e do aprendizado de máquina, você pode melhorar a eficiência, aprimorar as experiências do cliente e prever alterações. Para atingir essas metas em casos de uso comercialmente críticos, você precisa de um padrão consistente e confiável para:

  • Acompanhar os experimentos.
  • Reproduzir os resultados.
  • Implantar os modelos de machine learning na produção.

Este artigo descreve uma solução para uma estrutura de aprendizado de máquina consistente e confiável. O núcleo da arquitetura é o Azure Databricks. A camada de armazenamento Delta Lake e a plataforma de machine learning MLflow também desempenham funções importantes. Esses componentes se integram perfeitamente a outros serviços, como o Azure Data Lake Storage, o Azure Machine Learning e o AKS (Serviço de Kubernetes do Azure).

Juntos, esses serviços fornecem uma solução para a ciência de dados e o aprendizado de máquina que é:

  • Simples: um data lake aberto simplifica a arquitetura. O data lake contém uma camada coletada, Delta Lake. Essa camada fornece acesso aos dados em um formato de código aberto.

  • Aberta: a solução dá suporte a código-fonte aberto, padrões abertos e estruturas abertas. Essa abordagem minimiza a necessidade de atualizações futuras. O Azure Databricks e o Machine Learning dão suporte nativo ao MLflow e ao Delta Lake. Juntos, esses componentes fornecem as MLOps (operações de aprendizado de máquina) líderes do setor ou as DevOps para o aprendizado de máquina. Uma ampla gama de ferramentas de implantação integram-se ao formato do modelo padronizado da solução.

  • Colaborativa: as equipes de ciência de dados e MLOps trabalham juntas com essa solução. Essas equipes usam o acompanhamento do MLflow para registrar e consultar os experimentos. As equipes também implantam modelos no registro do modelo central do MLflow. Então, os engenheiros de dados usam modelos implantados na ingestão de dados, nos processos ETL (extrair-transformar-carregar) e nos pipelines de streaming.

Possíveis casos de uso

Uma plataforma criada pela AGL para a previsão de energia inspirou essa solução. Essa plataforma fornece um treinamento rápido e econômico, implantação e gerenciamento do ciclo de vida para milhares de modelos paralelos.

Além dos provedores de energia, essa solução pode beneficiar qualquer organização que:

  • Usa a ciência de dados.
  • Cria e treina modelos de machine learning.
  • Executa modelos de machine learning na produção.

Os exemplos incluem organizações em:

  • Varejo e comércio eletrônico.
  • Serviços bancários e financeiros.
  • Saúde e ciências naturais.
  • Indústrias automotivas e manufatura.

Próximas etapas

  • AGL Energy cria uma plataforma padronizada para milhares de modelos paralelos. Essa plataforma fornece um treinamento rápido e econômico, implantação e gerenciamento do ciclo de vida para os modelos.
  • OGE (Open Grid Europe) usa modelos de inteligência artificial para monitorar gasodutos. O OGE usa o Azure Databricks e o MLflow para desenvolver os modelos.
  • SAS (Scandinavian Airlines) usa o Azure Databricks durante uma fase de pesquisa colaborativa. A companhia aérea também usa o Machine Learning para desenvolver modelos preditivos. Ao identificar padrões nos dados da empresa, os modelos aprimoram as operações diárias.