Conservazione dei dipendenti con Databricks e Kubernetes

Azure Databricks
Servizio Azure Kubernetes
Registro Azure Container
Archiviazione di Azure
Monitoraggio di Azure

Questa soluzione illustra come un team di Machine Learning può usare Azure Databricks e servizio Azure Kubernetes per sviluppare e distribuire Machine Learning, come API, per stimare la probabilità di attrito dei dipendenti. L'API può essere integrata con applicazioni esterne usate dal team delle risorse umane per fornire informazioni aggiuntive sulla probabilità di attrito per un determinato dipendente all'interno dell'organizzazione. Queste informazioni possono essere usate per mantenere dipendenti ad alto impatto che probabilmente lasciano l'organizzazione fornendo alle risorse umane la possibilità di incoraggiare in modo proattivo tali dipendenti a rimanere.

Apache®, Apache Ignite, Ignite e il logo con fiamma sono marchi o marchi registrati di Apache Software Foundation negli Stati Uniti e/o in altri paesi. L'uso di questi marchi non implica alcuna approvazione da parte di Apache Software Foundation.

Architettura

Diagramma dell'architettura in questo articolo, che illustra lo sviluppo, la distribuzione, l'esposizione dell'API e il monitoraggio delle metriche e dei log.

Scaricare un file PowerPoint per tutte le architetture.

Workflow

A livello generale, questa progettazione della soluzione si rivolge a ogni fase del ciclo di vita di Machine Learning:

  • Preparazione dei dati, che include l'origine, la pulizia e la trasformazione dei dati per l'elaborazione e l'analisi. I dati possono trovarsi in un data lake o in un data warehouse e archiviarli in un archivio funzionalità dopo che sono stati curati.

  • Sviluppo di modelli, che include i componenti principali del processo di sviluppo del modello, ad esempio il rilevamento dell'esperimento e la registrazione del modello usando MLflow.

  • Distribuzione del modello, che include l'implementazione di una pipeline di integrazione continua e recapito continuo (CI/CD) per la creazione di contenitori di modelli di Machine Learning come servizi API. Questi servizi vengono distribuiti nei cluster Azure Kubernetes per consentire agli utenti finali di usare.

  • Monitoraggio dei modelli, che include il monitoraggio delle prestazioni dell'API e la deriva dei dati del modello analizzando i dati di telemetria dei log con Monitoraggio di Azure.

Dopo che il team di Machine Learning ha distribuito il modello di Machine Learning come API per l'inferenza in tempo reale, gli sviluppatori possono integrare facilmente l'API con applicazioni esterne usate da team esterni, ad esempio Risorse umane. I dati di telemetria vengono raccolti quando un team esterno usa il servizio modello. Il team di Machine Learning può usare questi dati di telemetria per determinare quando è necessario ridistribuire il modello. Questo approccio consente ai team di lavorare in modo indipendente e consente ai team esterni di trarre vantaggio dalle competenze del team di Machine Learning centralizzato.

Nota

  • È possibile usare vari strumenti, ad esempio Azure Pipelines e GitHub Actions, quando si implementa una pipeline CI/CD.

  • Requisiti aziendali specifici per il proprio caso d'uso di analisi potrebbero richiedere l'uso di servizi o funzionalità diversi che non vengono considerati in questa progettazione.

Componenti

I componenti seguenti vengono usati come parte di questa progettazione:

  • Azure Databricks: un servizio di analisi per Big Data facile da usare, facilita la collaborazione ed è basato su Apache Spark. Azure Databricks è progettato per data science e data engineering.

  • servizio Azure Kubernetes: un servizio che fornisce una distribuzione e una gestione semplificate di Kubernetes eseguendo l'offload del sovraccarico operativo in Azure.

  • Registro Azure Container: un servizio di registro privato per la gestione delle immagini e degli artefatti del contenitore. Questo servizio è basato su Docker open source.

  • Azure Data Lake Storage: servizio che fornisce un'archiviazione scalabile ottimizzata per grandi quantità di dati non strutturati. Data Lake Storage Gen2 offre ad esempio semantica dei file system, sicurezza a livello di file e scalabilità.

  • Monitoraggio di Azure è una soluzione completa per la raccolta, l'analisi e l'esecuzione di operazioni sui dati di telemetria dai carichi di lavoro.

  • MLflow: soluzione open source integrata in Databricks per la gestione del ciclo di vita di Machine Learning da fine a fine.

  • Gestione API di Azure è un servizio cloud completamente gestito che aiuta i clienti a pubblicare, proteggere, trasformare, gestire e monitorare le API.

  • Il gateway applicazione di Azure è un servizio di bilanciamento del carico del traffico Web che consente di gestire il traffico verso le applicazioni Web.

  • Azure DevOps or GitHub: soluzioni che consentono di implementare procedure DevOps per applicare l'automazione e la conformità alle pipeline di sviluppo e distribuzione dei carichi di lavoro per Azure Synapse e Azure ML.

Dettagli dello scenario

Il problema dell'attrito dei dipendenti è cresciuto in primo piano dopo la pandemia di COVID-19. Questa tendenza, in cui i dipendenti si dimettono volontariamente dal loro lavoro in massa, è noto come la Grande Dimissioni. Il problema può anche essere amplificato per determinati reparti di un'organizzazione che potrebbero non avere team dedicati che eseguono analisi avanzate, ad esempio risorse umane.

Questo scenario di esempio illustra un modello operativo di Machine Learning centralizzato. Si tratta di un team centrale responsabile della creazione e della distribuzione di modelli di Machine Learning per team esterni all'interno di un'organizzazione. Questo approccio è utile quando i reparti sono troppo piccoli per mantenere un team dedicato all'apprendimento automatico, mentre l'organizzazione mira a integrare analisi avanzate in tutti i prodotti e i processi.

Potenziali casi d'uso

Questo scenario è incentrato sulla creazione di un modello di machine learning di attrito dei dipendenti e sull'integrazione con applicazioni esterne usate dai team delle risorse umane. Tuttavia, la progettazione può essere generalizzata a molti carichi di lavoro di Machine Learning creati da team centralizzati e decentralizzati.

Questo approccio generalizzato è più adatto per:

  • Team di Machine Learning standardizzati in Databricks per applicazioni di ingegneria dei dati o machine learning.

  • Team di Machine Learning che hanno esperienza nella distribuzione e nella gestione dei carichi di lavoro Kubernetes e una preferenza per applicare queste competenze per rendere operativi i carichi di lavoro di Machine Learning.

  • Integrazione di carichi di lavoro di Machine Learning con applicazioni esterne che richiedono stime interattive e a bassa latenza (ad esempio, inferenza in tempo reale).

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.

Prima di implementare questa soluzione, è possibile considerare alcuni fattori da considerare:

  • Questa soluzione è progettata per i team che richiedono un elevato grado di personalizzazione e hanno una vasta esperienza nella distribuzione e nella gestione dei carichi di lavoro Kubernetes. Se il team di data science non ha questa esperienza, valutare la possibilità di distribuire modelli in un altro servizio, ad esempio Azure Machine Learning.

  • Le procedure consigliate per DevOps di Machine Learning (MLOps) con Azure Machine Learning presentano le procedure consigliate e le raccomandazioni per l'adozione di operazioni di Machine Learning (MLOps) nell'azienda con Machine Learning.

  • Seguire i consigli e le linee guida descritti in Well-Architected Framework di Azure per migliorare la qualità delle tue soluzioni Azure.

  • Quando si implementa una pipeline CI/CD, è possibile usare strumenti diversi rispetto a questo esempio, ad esempio Azure Pipelines e GitHub Actions. Per altre informazioni su CI/CD, vedere CI/CD per le architetture di microservizi.

  • Requisiti aziendali specifici per il proprio caso d'uso di analisi potrebbero richiedere l'uso di servizi o funzionalità diversi che non vengono considerati in questa progettazione.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda la riduzione delle spese non necessarie e il miglioramento dell'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'ottimizzazione dei costi.

Tutti i servizi distribuiti in questa soluzione usano un modello di determinazione prezzi basato sul consumo. È possibile usare il calcolatore dei prezzi di Azure per stimare i costi per uno scenario specifico. Per altre considerazioni, vedere Ottimizzazione dei costi in Well-Architected Framework.

Distribuire lo scenario

Un'implementazione di modello di verifica di questo scenario è disponibile in GitHub in Conservazione dei dipendenti con Databricks e Kubernetes.

Diagramma della distribuzione dell'architettura in questo articolo, che illustra lo sviluppo, la compilazione, la distribuzione e il monitoraggio.

Scaricare un file PowerPoint per tutte le architetture.

Questo modello di verifica illustra:

  • Come eseguire il training di un modello MLflow per l'attrito dei dipendenti in Azure Databricks.
  • Come creare un pacchetto di modelli come servizio Web usando strumenti open source.
  • Come eseguire la distribuzione in Kubernetes tramite CI/CD usando GitHub Actions.
  • Come monitorare le prestazioni dell'API e la deriva dei dati del modello all'interno di Monitoraggio di Azure e delle aree di lavoro di Azure Log Analytics.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Passaggi successivi

Documentazione sui prodotti:

Moduli di Microsoft Learn:

È anche possibile trovare questi articoli di Architecture Center utili: