Esta solução demonstra como uma equipe de machine learning pode usar o Azure Databricks e o Serviço de Kubernetes do Azure para desenvolver e implantar o machine learning como uma API a fim de prever a probabilidade de desgaste dos funcionários. A API pode ser integrada aos aplicativos externos que são usados pela equipe de Recursos Humanos para fornecer insights adicionais sobre a probabilidade de desgaste de determinado funcionário na organização. Essas informações podem ser usadas para reter funcionários de alto impacto que provavelmente deixarão a organização fornecendo aos Recursos Humanos a capacidade de incentivar de maneira proativa esses funcionários a permanecerem.
Apache®, Apache Ignite, Ignite e o logotipo de chamas 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
Baixe um arquivo do PowerPoint para todas as arquiteturas.
Workflow
Em um alto nível, esse design de solução aborda cada fase do ciclo de vida de machine learning:
Preparação de dados, que inclui fornecimento, limpeza e transformação dos dados para processamento e análise. Os dados podem estar em um data lake ou um data warehouse e ser armazenados em um repositório de recursos depois de coletados.
Desenvolvimento de modelo, que inclui os componentes principais do processo de desenvolvimento de modelos, como acompanhamento de experimentos e registro de modelo usando o MLflow.
Implantação de modelo, que inclui a implementação de um pipeline de CI/CD (integração contínua e entrega contínua) para colocar os modelos de machine learning em contêineres como serviços de API. Esses serviços são implantados em clusters do Kubernetes do Azure para consumo dos usuários finais.
Monitoramento de modelo, que inclui o monitoramento do desempenho da API e o descompasso de dados do modelo analisando a telemetria de log com o Azure Monitor.
Depois que a equipe de machine learning implantar o modelo de machine learning como uma API para inferência em tempo real, os desenvolvedores poderão integrar facilmente a API aos aplicativos externos que são usados por equipes externas, como Recursos Humanos. A telemetria é coletada quando uma equipe externa usa o serviço de modelo. A equipe de machine learning pode usar essa telemetria para determinar quando o modelo precisa ser reimplantado. Essa abordagem permite que as equipes trabalhem de maneira independente e possibilita que as equipes externas se beneficiem das habilidades da equipe centralizada de machine learning.
Observação
Use várias ferramentas, como o Pipelines do Azure DevOps e o GitHub Actions, ao implementar um Pipeline de CI/CD.
Os requisitos de negócios específicos do seu caso de uso de análise podem exigir serviços ou recursos diferentes que não são considerados neste design.
Componentes
Os seguintes componentes são usados como parte deste design:
Azure Databricks: um serviço de análise para Big Data que é fácil de usar, facilita a colaboração e é baseado no Apache Spark. O Azure Databricks foi projetado para ciência de dados e engenharia de dados.
Serviço de Kubernetes do Azure: um serviço que fornece implantação e gerenciamento simplificados do Kubernetes descarregando a sobrecarga operacional para o Azure.
Registro de Contêiner do Azure: um serviço de registro privado para gerenciamento de artefatos e imagens de contêiner. Esse serviço é baseado no Docker de código aberto.
Azure Data Lake: um serviço que fornece armazenamento escalonável otimizado para grandes volumes de dados não estruturados. O Data Lake Storage Gen2 oferece semântica do sistema de arquivos, segurança em nível de arquivo e escala.
Azure Monitor: uma solução abrangente para coleta, análise e ação com base na telemetria das suas cargas de trabalho.
MLflow: uma solução de código aberto integrada ao Databricks para gerenciar o ciclo de vida de machine learning de ponta a ponta.
Gerenciamento de API do Azure: um serviço totalmente gerenciado que ajuda os clientes a publicar, proteger, transformar, manter e monitorar APIs.
Gateway de Aplicativo do Azure: um balanceador de carga do tráfego da Web que permite que você gerencie o tráfego para seus aplicativos Web.
Azure DevOps ou GitHub: soluções para implementar práticas de DevOps a fim de impor a automação e a conformidade com seus pipelines de desenvolvimento e implantação de carga de trabalho.
Detalhes do cenário
O problema de desgaste dos funcionários cresceu em destaque desde a pandemia da COVID-19. Essa tendência, na qual os funcionários se demitem voluntariamente em massa dos empregos, é popularmente conhecida como a Grande Demissão. O problema também pode ser ampliado para certos departamentos de uma organização que podem não ter equipes dedicadas que executam análises avançadas, como Recursos Humanos.
Este exemplo de cenário ilustra um modelo operacional de machine learning centralizado. Isso compreende uma equipe central responsável por criar e implantar modelos de machine learning para equipes externas entre departamentos de uma organização. Essa abordagem é útil quando os departamentos são muito pequenos para manter uma equipe dedicada ao machine learning, enquanto a organização pretende infundir análises avançadas em todos os produtos e processos.
Possíveis casos de uso
Este cenário se concentra na criação de um modelo de machine learning de desgaste dos funcionários e na integração dele aos aplicativos externos que são usados pelas equipes de Recursos Humanos. No entanto, o design pode ser generalizado para muitas cargas de trabalho de machine learning criadas por equipes centralizadas e descentralizadas.
Essa abordagem generalizada é mais adequada para:
Equipes de machine learning padronizadas no Databricks para aplicativos de engenharia de dados ou de machine learning.
Equipes de machine learning que têm experiência em implantar e gerenciar cargas de trabalho do Kubernetes e uma preferência para aplicar essas habilidades para operacionalizar cargas de trabalho de machine learning.
Integração de cargas de trabalho de machine learning a aplicativos externos que exigem baixa latência e previsões interativas de modelo (por exemplo, inferência em tempo real).
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.
Antes de você implementar essa solução, alguns fatores que talvez você deseje considerar incluem:
Essa solução foi projetada para equipes que exigem um alto grau de personalização e têm ampla experiência em implantar e gerenciar cargas de trabalho do Kubernetes. Se a sua equipe de ciência de dados não tiver essa experiência, considere a implantação de modelos em outro serviço, como o Azure Machine Learning.
O artigo Melhores práticas de MLOps (DevOps de machine learning) com o Azure Machine Learning apresenta as melhores práticas e as recomendações para adoção de MLOps (operações de ML) na empresa com machine learning.
Siga as recomendações e as diretrizes definidas no Azure Well-Architected Framework para aprimorar a qualidade de suas soluções do Azure.
Ao implementar um pipeline de CI/CD, você pode usar ferramentas diferentes das usadas neste exemplo, como o Azure Pipelines e o GitHub Actions. Para obter mais informações sobre CI/CD, confira CI/CD para arquiteturas de microsserviços.
Os requisitos de negócios específicos do seu caso de uso de análise podem exigir o uso de serviços ou recursos que não são considerados neste design.
Otimização de custo
Todos os serviços implantados nesta solução usam um modelo de preços baseado em consumo. Use a calculadora de preços do Azure para estimar os custos para um cenário específico. Para ver outras considerações, confira Otimização de custos no Well-Architected Framework.
Implantar este cenário
Uma implementação de prova de conceito deste cenário está disponível no GitHub em Retenção de funcionários com Databricks e Kubernetes.
Baixe um arquivo do PowerPoint para todas as arquiteturas.
A prova de conceito ilustra:
- Como treinar um modelo do MLflow no Azure Databricks referente ao desgaste dos funcionários.
- Como empacotar modelos como um serviço Web usando ferramentas de código aberto.
- Como implantá-los no Kubernetes por meio da CI/CD usando o GitHub Actions.
- Como monitorar o desempenho da API e o descompasso de dados do modelo nos workspaces do Azure Monitor e do Azure Log Analytics.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
- Nicholas Moore | Arquiteto de soluções de nuvem
Próximas etapas
Documentação do produto:
- O que é o Azure Databricks?
- Guia do MLflow
- Serviço de Kubernetes do Azure
- Introdução aos registros de contêiner privado do Docker no Azure
- Sobre o gerenciamento de API
- O que é o Gateway de Aplicativo do Azure?
- Introdução ao Azure Data Lake Storage Gen2
- Visão geral do Azure Monitor
- Documentação do Azure DevOps
- Integração do Azure com o GitHub
Módulos do Microsoft Learn:
- Executar a ciência de dados com o Azure Databricks
- Criar e operar soluções de machine learning com o Azure Databricks
- Introdução ao Kubernetes no Azure
- Desenvolver e implantar aplicativos no Kubernetes
- Automatizar o fluxo de trabalho com o GitHub Actions
Recursos relacionados
Estes artigos do Centro de Arquitetura também podem ser úteis: