Editar

Share via


Orquestrar MLOps usando o Azure Databricks

Azure Databricks

Ideias de solução

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Esse artigo fornece uma arquitetura e um processo de operações de aprendizado de máquina (MLOps) que usa o Azure Databricks. Esse processo define uma maneira padronizada de mover modelos e pipelines de aprendizado de máquina do desenvolvimento para a produção, com opções para incluir processos automatizados e manuais.

Arquitetura

Diagram that shows a solution for using Azure Databricks for MLOps.

Baixe um Arquivo Visio dessa arquitetura.

Workflow

Essa solução fornece um processo MLOps robusto que usa o Azure Databricks. Todos os elementos na arquitetura são conectáveis, para que você possa integrar outros serviços do Azure e de terceiros em toda a arquitetura, conforme necessário. Esta arquitetura e descrição são adaptadas do e-book The Big Book of MLOps. Este e-book explora a arquitetura descrita aqui em mais detalhes.

  • Controle do código-fonte: o repositório de código desse projeto organiza os blocos de anotações, módulos e pipelines. Os cientistas de dados criam ramificações de desenvolvimento para testar atualizações e novos modelos. O código é desenvolvido em blocos de anotações ou em IDEs, com suporte do Git, com integração Databricks Repos para sincronização com seus espaços de trabalho do Azure Databricks. O controle do código-fonte promove pipelines de aprendizado de máquina desde o desenvolvimento, passando pelo preparo (para teste) até a produção (para implantação).

  • Lakehouse - dados de produção: os cientistas de dados trabalham no ambiente de desenvolvimento, onde têm acesso somente leitura aos dados de produção. (Como alternativa, os dados podem ser espelhados ou editados.) Eles também têm acesso de leitura/gravação a um ambiente de armazenamento de desenvolvimento para desenvolvimento e experimentação. Recomendamos uma arquitetura Lakehouse para dados, na qual os dados são armazenados no formato Azure Data Lake Storage no formato Delta Lake. Os controles de acesso são definidos com controles de passagem de credencial do Microsoft Entra ou controles de acesso de tabela.

Desenvolvimento

No ambiente de desenvolvimento, cientistas e engenheiros de dados desenvolvem pipelines de aprendizado de máquina.

  1. Análise exploratória de dados (EDA): os cientistas de dados exploram os dados em um processo interativo e iterativo. Esse trabalho ad hoc pode não ser implantado no preparo ou na produção. As ferramentas podem incluir Databricks SQL, dbutils.data.summarize e AutoML.

  2. Treinamento de modeloe outros pipelines de aprendizado de máquina: os pipelines de aprendizado de máquina são desenvolvidos como código modular em notebooks e/ou IDEs. Por exemplo, o pipeline de treinamento de modelo lê dados do Repositório de Recursos e de outras tabelas do Lakehouse. Treinamento e ajuste de parâmetros e métricas do modelo de log para o servidor de rastreamento MLflow. A API do Repositório de Recursos registra o modelo final. Esses logs vinculam o modelo, suas entradas e o código de treinamento.

  3. Confirmar código: para promover o fluxo de trabalho de aprendizado de máquina em direção à produção, o cientista de dados confirma o código para definição de recursos, treinamento e outros pipelines para o controle do código-fonte.

Staging

No ambiente de preparo, a infraestrutura de CI testa as alterações nos pipelines de aprendizado de máquina em um ambiente que imita a produção.

  1. Solicitação de mesclagem: quando uma solicitação de mesclagem (ou pull) é enviada em relação à ramificação de preparo (principal) do projeto no controle de origem, uma ferramenta de integração contínua e entrega contínua (CI/CD) como Azure DevOps executa testes.

  2. Testes de unidade e CI: os testes de unidade são executados na infraestrutura de CI e testes de integração executam fluxos de trabalho de ponta a ponta no Azure Databricks. Se os testes forem aprovados, as alterações de código serão mescladas.

  3. Criar uma ramificação de versão: quando os engenheiros de aprendizado de máquina estiverem prontos para implantar os pipelines de aprendizado de máquina atualizados na produção, eles poderão criar uma nova versão. Um pipeline de implantação na ferramenta CI/CD reimplanta os pipelines atualizados como novos fluxos de trabalho.

Produção

Os engenheiros de aprendizado de máquina gerenciam o ambiente de produção, onde os pipelines de aprendizado de máquina atendem diretamente aos aplicativos finais. Os principais pipelines em produção atualizam tabelas de recursos, treinam e implantam novos modelos, executam inferência ou serviço e monitoram o desempenho do modelo.

  1. Atualização da tabela de recursos: esse pipeline lê dados, computa recursos e grava em tabelas do Repositório de Recursos. Ele é executado continuamente no modo de streaming, é executado em uma programação ou é acionado.

  2. Treinamento do modelo: na produção, o pipeline de treinamento ou reciclagem do modelo é acionado ou programado para treinar um novo modelo nos dados de produção mais recentes. Os modelos são registrados no Registro de Modelo do MLflow.

  3. Implantação contínua: o registro de novas versões do modelo aciona o pipeline de CD, que executa testes para garantir que o modelo terá um bom desempenho em produção. À medida que o modelo passa nos testes, seu progresso é rastreado no Registro de Modelo por meio de transições de estágio do modelo. Os Webhooks de registro podem ser usados para automação. Os testes podem incluir verificações de conformidade, testes A/B para comparar o novo modelo com o modelo de produção atual e testes de infraestrutura. Os resultados e as métricas dos testes são registrados nas tabelas do Lakehouse. Opcionalmente, você pode exigir aprovações manuais antes que os modelos sejam transferidos para a produção.

  4. Implantação de modelo: à medida que um modelo entra em produção, ele é implantado para pontuação ou serviço. Os modos de implantação mais comuns são:

    • Pontuação em lote ou streaming: para latências de minutos ou mais, lote e streaming são as opções mais econômicas. O pipeline de pontuação lê os dados mais recentes do Repositório de Recursos, carrega a versão mais recente do modelo de produção do Registro de Modelo e executa inferência em um trabalho do Databricks. Ele pode publicar previsões em tabelas Lakehouse, uma conexão JDBC (Java Database Connectivity), arquivos simples, filas de mensagens ou outros sistemas downstream.
    • Atendimento online (APIs REST): para casos de uso de baixa latência, o serviço online geralmente é necessário. O MLflow pode implantar modelos no Serviço de Modelo do MLflow no Azure Databricks, sistemas de serviço de provedor de nuvem e outros sistemas. Em todos os casos, o sistema de serviço é inicializado com o modelo de produção mais recente do Registro de Modelo. Para cada solicitação, ele busca recursos de um Repositório de Recursos online e faz previsões.
  5. Monitoramento: fluxos de trabalho contínuos ou periódicos monitoram dados de entrada e previsões de modelo para deriva, desempenho e outras métricas. Delta Live Tables pode simplificar a automação de pipelines de monitoramento, armazenando as métricas em tabelas Lakehouse. Databricks SQL, Power BI e outras ferramentas podem ler essas tabelas para criar painéis e alertas.

  6. Retreinamento: Esta arquitetura suporta retreinamento manual e automático. Os trabalhos de reciclagem programados são a maneira mais fácil de manter os modelos atualizados.

Componentes

  • Data Lakehouse. Uma arquitetura Lakehouse unifica os melhores elementos de data lakes e banco de dados de data warehouse, fornecendo gerenciamento de dados e desempenho normalmente encontrados em bancos de dados de data warehouse com os armazenamentos de objetos flexíveis e de baixo custo oferecidos pelos data lakes.
    • Delta Lake é a escolha recomendada para um formato de dados de código aberto para uma lakehouse. O Azure Databricks armazena dados no Data Lake Storage e fornece um mecanismo de consulta de alto desempenho.
  • MLflow é um projeto de código aberto para gerenciar o ciclo de vida de aprendizado de máquina de ponta a ponta. Esses são seus principais componentes:
    • Rastreamento permite que você acompanhe experimentos para registrar e comparar parâmetros, métricas e artefatos de modelo.
      • Databricks Autologging estende o log automático MLflow para rastrear experimentos de aprendizado de máquina, registrando automaticamente parâmetros de modelo, métricas, arquivos e informações de linhagem.
    • Modelo do MLFlow permite armazenar e implantar modelos de qualquer biblioteca de aprendizado de máquina em várias plataformas de serviço de modelo e inferência.
    • O Registro de Modelo fornece um repositório de modelos centralizado para gerenciar as transições de estágio do ciclo de vida do modelo do desenvolvimento para a produção.
    • O Servidor de Modelo permite hospedar modelos MLflow como pontos de extremidade REST.
  • Azure Databricks. O Azure Databricks fornece um serviço MLflow gerenciado com recursos de segurança empresarial, alta disponibilidade e integrações com outros recursos de espaço de trabalho do Azure Databricks.
    • O Databricks Runtime para Machine Learning automatiza a criação de um cluster otimizado para aprendizado de máquina, pré-instalando bibliotecas populares de aprendizado de máquina como TensorFlow, PyTorch e XGBoost, além de ferramentas do Azure Databricks for Machine Learning como clientes AutoML e Repositório de Recursos.
    • Repositório de recursos é um repositório centralizado de recursos. Ele permite o compartilhamento e a descoberta de recursos e ajuda a evitar a distorção de dados entre o treinamento do modelo e a inferência.
    • Databricks SQL. O Databricks SQL fornece uma experiência simples para consultas SQL em dados do Lakehouse e para visualizações, painéis e alertas.
    • O Databricks Repos fornece integração com seu provedor Git no espaço de trabalho do Azure Databricks, simplificando o desenvolvimento colaborativo de blocos de anotações ou código e integração IDE.
    • Fluxos de trabalho e trabalhos fornecem uma maneira de executar código não interativo em um cluster do Azure Databricks. Para aprendizado de máquina, os trabalhos fornecem automação para preparação de dados, definição de recursos, treinamento, inferência e monitoramento.

Alternativas

Você pode personalizar essa solução para sua infraestrutura do Azure. As personalizações comuns incluem:

  • Vários espaços de trabalho de desenvolvimento que compartilham um espaço de trabalho de produção comum.
  • Troca de um ou mais componentes de arquitetura para sua infraestrutura existente. Por exemplo, você pode usar o Azure Data Factory para orquestrar trabalhos do Databricks.
  • Integração com suas ferramentas de CI/CD existentes por meio das APIs REST do Git e do Azure Databricks.

Detalhes do cenário

O MLOps ajuda a reduzir o risco de falhas em sistemas de aprendizado de máquina e IA e a melhorar a eficiência da colaboração e das ferramentas. Para obter uma introdução ao MLOps e uma visão geral dessa arquitetura, consulte Arquitetando MLOps na Lakehouse.

Usando essa arquitetura, você pode:

  • Conectar os stakeholders de sua empresa com equipes de aprendizado de máquina e ciência de dados. Essa arquitetura permite que os cientistas de dados usem notebooks e IDEs para desenvolvimento. Ela permite que os stakeholders de negócios visualizem métricas e painéis no Databricks SQL, tudo dentro da mesma arquitetura Lakehouse.
  • Torne sua infraestrutura de aprendizado de máquina centrada em dados. Essa arquitetura trata os dados de aprendizado de máquina (dados de engenharia de recursos, treinamento, inferência e monitoramento) da mesma forma que outros dados. Ele reutiliza ferramentas para pipelines de produção, painéis e outros processamentos de dados gerais para processamento de dados de aprendizado de máquina.
  • Implementar MLOps em módulos e pipelines. Como acontece com qualquer aplicativo de software, os pipelines modularizados e o código nessa arquitetura permitem o teste de componentes individuais e diminuem o custo de refatoração futura.
  • Automatize seus processos de MLOps conforme necessário. Nessa arquitetura, você pode automatizar etapas para melhorar a produtividade e reduzir o risco de erro humano, mas nem todas as etapas precisam ser automatizadas. O Azure Databricks permite a interface do usuário e processos manuais, além de APIs para automação.

Possíveis casos de uso

Essa arquitetura se aplica a todos os tipos de aprendizado de máquina, aprendizado profundo e análise avançada. As técnicas comuns de aprendizado de máquina / IA usadas nesta arquitetura incluem:

  • Aprendizado de máquina clássico, como modelos lineares, modelos baseados em árvore e impulsionamento.
  • Aprendizado profundo moderno, como TensorFlow e PyTorch.
  • Análises personalizadas, como estatísticas, métodos bayesianos e análise de gráficos.

A arquitetura suporta dados pequenos (máquina única) e dados grandes (computação distribuída e acelerada por GPU). Em cada estágio da arquitetura, você pode escolher recursos de computação e bibliotecas para se adaptar aos seus dados e dimensões do problema.

A arquitetura se aplica a todos os tipos de indústrias e casos de uso de negócios. Os clientes do Azure Databricks que usam essa e outras arquiteturas semelhantes incluem pequenas e grandes organizações em setores como esses:

  • Bens de consumo e serviços de varejo
  • Serviços financeiros
  • Saúde e ciências naturais
  • Tecnologia da informação

Para obter exemplos, consulte o site do Databricks.

Colaboradores

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

Autor principal:

Outro colaborador:

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

Próximas etapas