Retenção de funcionários com Databricks e Kubernetes

Azure Databricks
Azure Kubernetes Service (AKS)
Azure Container Registry
Azure Storage
Azure Monitor

Esta solução demonstra como uma equipe de aprendizado de máquina pode usar o Azure Databricks e o Serviço Kubernetes do Azure para desenvolver e implantar o aprendizado de máquina, como uma API, para prever a probabilidade de desgaste dos funcionários. A API pode ser integrada com aplicativos externos que são usados pela equipe de Recursos Humanos para fornecer informações adicionais sobre a probabilidade de desgaste para um determinado funcionário dentro da 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 proativamente a permanência desses funcionários.

Apache®, Apache Ignite, Ignite e o logotipo flame são marcas registradas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou em outros países. Nenhum endosso da Apache Software Foundation está implícito no uso dessas marcas.

Arquitetura

Diagrama da arquitetura neste artigo, mostrando desenvolvimento, implantação, exposição da API e monitoramento de métricas e logs.

Baixe um arquivo do PowerPoint para todas as arquiteturas.

Fluxo de Trabalho

Em um alto nível, esse design de solução aborda cada estágio do ciclo de vida do aprendizado de máquina:

  • Preparação de dados, que inclui o fornecimento, limpeza e transformação dos dados para processamento e análise. Os dados podem viver em um data lake ou data warehouse e ser armazenados em um repositório de recursos após a curadoria.

  • Desenvolvimento de modelo, que inclui componentes principais do processo de desenvolvimento de modelos, como rastreamento de experimentos e registro de modelos usando MLflow.

  • Implantação de modelo, que inclui a implementação de um pipeline de integração contínua e entrega contínua (CI/CD) para contentorizar modelos de aprendizagem automática como serviços de API. Esses serviços são implantados em clusters do Kubernetes do Azure para que os usuários finais consumam.

  • Monitoramento de modelo, que inclui monitorar o desempenho da API e o desvio de dados do modelo analisando a telemetria de log com o Azure Monitor.

Depois que a equipe de aprendizado de máquina implantou o modelo de aprendizado de máquina como uma API para inferência em tempo real, os desenvolvedores podem facilmente integrar a API com aplicativos externos que são usados por equipes externas, como Recursos Humanos. A telemetria é coletada quando uma equipe externa usa o serviço modelo. A equipe de aprendizado de máquina pode usar essa telemetria para determinar quando o modelo precisa ser reimplantado. Essa abordagem permite que as equipes trabalhem de forma independente e permite que equipes externas se beneficiem das habilidades da equipe centralizada de aprendizado de máquina.

Nota

  • Você pode usar várias ferramentas, como Pipelines do Azure e Ações do GitHub, ao implementar um pipeline de CI/CD.

  • Os requisitos de negócios específicos do seu caso de uso para análise podem exigir diferentes serviços ou recursos 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 e engenharia de dados.

  • Serviço Kubernetes do Azure: um serviço que fornece implantação e gerenciamento simplificados do Kubernetes descarregando a sobrecarga operacional para o Azure.

  • Azure Container Registry: Um serviço de registro privado para gerenciar imagens de contêiner e artefatos. Este serviço é baseado no Docker de código aberto.

  • Azure Data Lake: um serviço que fornece armazenamento escalável otimizado para grandes quantidades 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 coletar, analisar e agir em telemetria de suas cargas de trabalho.

  • MLflow: Uma solução de código aberto integrada ao Databricks para gerenciar o ciclo de vida do aprendizado de máquina 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 para tráfego da Web que permite gerenciar o tráfego para seus aplicativos Web.

  • Azure DevOps ou GitHub: Soluções para implementar práticas de DevOps para impor automação e conformidade com seus pipelines de desenvolvimento e implantação de carga de trabalho.

Detalhes do cenário

O problema do desgaste dos funcionários tem crescido em destaque desde a pandemia de COVID-19. Essa tendência, em que os funcionários se demitem voluntariamente de seus empregos em massa, é popularmente conhecida como a Grande Demissão. O problema também pode ser ampliado para determinados departamentos em uma organização que podem não ter equipes dedicadas que executem análises avançadas, como Recursos Humanos.

Este cenário de exemplo ilustra um modelo operacional de aprendizado de máquina centralizado. Isso compreende uma equipe central que é responsável por criar e implantar modelos de aprendizado de máquina para equipes externas em todos os departamentos de uma organização. Essa abordagem é útil quando os departamentos são muito pequenos para manter uma equipe dedicada ao aprendizado de máquina, enquanto a organização visa infundir análises avançadas em todos os produtos e processos.

Potenciais casos de utilização

Este cenário está focado na construção de um modelo de aprendizagem automática de desgaste dos colaboradores e na sua integração com aplicações externas que são utilizadas pelas equipas de Recursos Humanos. No entanto, o design pode ser generalizado para muitas cargas de trabalho de aprendizado de máquina que são criadas por equipes centralizadas e descentralizadas.

Esta abordagem generalizada é mais adequada para:

  • Equipes de aprendizado de máquina que padronizaram o Databricks para engenharia de dados ou aplicativos de aprendizado de máquina.

  • Equipes de aprendizado de máquina que têm experiência em implantar e gerenciar cargas de trabalho do Kubernetes e uma preferência por aplicar essas habilidades para operacionalizar cargas de trabalho de aprendizado de máquina.

  • Integração de cargas de trabalho de aprendizado de máquina com aplicativos externos que exigem baixa latência e previsões de modelo interativo (por exemplo, inferência em tempo real).

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.

Antes de implementar essa solução, alguns fatores que você pode querer considerar incluem:

  • Esta solução foi projetada para equipes que exigem um alto grau de personalização e têm ampla experiência na implantação e gerenciamento de cargas de trabalho do Kubernetes. Se sua equipe de ciência de dados não tiver essa experiência, considere implantar modelos em outro serviço, como o Azure Machine Learning.

  • As práticas recomendadas de DevOps (MLOps) de aprendizado de máquina com o Azure Machine Learning apresentam práticas recomendadas e recomendações para a adoção de operações de ML (MLOps) na empresa com aprendizado de máquina.

  • Siga as recomendações e diretrizes definidas no Azure Well-Architected Framework para melhorar 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 Pipelines do Azure e Ações do GitHub. Para obter mais informações sobre CI/CD, consulte CI/CD para arquiteturas de microsserviços.

  • Requisitos de negócios específicos para 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 custos

Todos os serviços implementados nesta solução utilizam um modelo de preços baseado no consumo. Você pode usar a calculadora de preços do Azure para estimar custos para um cenário específico. Para outras considerações, consulte Otimização de custos no Well-Architected Framework.

Implementar este cenário

Uma implementação de prova de conceito desse cenário está disponível no GitHub em Retenção de funcionários com Databricks e Kubernetes.

Diagrama da implantação da arquitetura neste artigo, mostrando desenvolver, compilar, implantar e monitorar.

Baixe um arquivo do PowerPoint para todas as arquiteturas.

Esta prova de conceito ilustra:

  • Como treinar um modelo MLflow para atrito de funcionários no Azure Databricks.
  • Como empacotar modelos como um serviço Web usando ferramentas de código aberto.
  • Como implantar no Kubernetes via CI/CD usando as ações do GitHub.
  • Como monitorar o desempenho da API e o desvio de dados do modelo nos espaços de trabalho do Azure Monitor e do Azure Log Analytics.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Próximos passos

Documentação do produto:

Módulos do Microsoft Learn:

Você também pode achar estes artigos do Centro de Arquitetura úteis: