Esta solución demuestra cómo un equipo de aprendizaje automático puede usar Azure Databricks y Azure Kubernetes Service para desarrollar e implementar el aprendizaje automático, como una API, para predecir la probabilidad de deserción de los empleados. La API puede integrarse con aplicaciones externas que el equipo de Recursos Humanos usa para proporcionar información adicional sobre la probabilidad de reducción de un empleado determinado dentro de la organización. Esta información se puede usar para retener a los empleados que tienen un alto impacto y que es probable que se vayan de la organización, proporcionando a Recursos Humanos la capacidad de incentivar proactivamente a dichos empleados para que se queden.
Apache®, Apache Ignite, Ignite y el logotipo de la llama son marcas registradas o marcas comerciales de Apache Software Foundation en Estados Unidos y otros países. El uso de estas marcas no implica la aprobación de Apache Software Foundation.
Architecture
Descargar un archivo de PowerPoint para todas las arquitecturas.
Flujo de trabajo
A gran escala, este diseño de solución aborda cada etapa del ciclo de vida del aprendizaje automático:
La preparación de los datos, que incluye la obtención, limpieza y transformación de los datos para su procesamiento y análisis. Los datos pueden estar en un lago de datos o en un almacén de datos y almacenarse en un almacén de características después del mantenimiento.
Desarrollo de modelos, que incluye los componentes principales del proceso de desarrollo de modelos, como el seguimiento de experimentos y el registro de modelos mediante el uso de MLflow.
Implementación de modelos, que incluye la implementación de una canalización de integración continua y entrega continua (CI/CD) para contener los modelos de aprendizaje automático como servicios de API. Estos servicios se implementan en clústeres Azure Kubernetes para que los usuarios finales los consuman.
La supervisión del modelo, que incluye la supervisión del rendimiento de la API y la deriva de los datos del modelo mediante el análisis de la telemetría de registro con Azure Monitor.
Después de que el equipo de aprendizaje automático haya implementado el modelo de aprendizaje automático como una API para la inferencia en tiempo real, los desarrolladores pueden integrar fácilmente la API con aplicaciones externas que se usan por equipos externos, como Recursos Humanos. La telemetría se recopila cuando un equipo externo usa el servicio del modelo. El equipo de aprendizaje automático puede usar esta telemetría para determinar cuándo es necesario volver a implementar el modelo. Este enfoque permite que los equipos trabajen de forma independiente y que los equipos externos se beneficien de las habilidades del equipo de aprendizaje automático centralizado.
Nota:
Puede usar varias herramientas, como Azure Pipelines y Acciones de GitHub, cuando implemente una canalización CI/CD.
Los requisitos empresariales específicos de su caso de uso para el análisis podrían requerir diferentes servicios o características que no se consideran en este diseño.
Componentes
Los siguientes componentes se usan como parte de este diseño:
Azure Databricks: un servicio de análisis para big data que es fácil de usar, facilita la colaboración y está basado en Apache Spark. Azure Databricks está diseñado para la ciencia de datos y la ingeniería de datos.
Azure Kubernetes Service: un servicio que proporciona una implementación y administración simplificada de Kubernetes descargando la sobrecarga operativa a Azure.
Azure Container Registry: un servicio de registro privado para administrar imágenes y artefactos de contenedores. Este servicio se basa en el código abierto Docker.
Azure Data Lake Storage: un servicio que proporciona almacenamiento escalable optimizado para grandes cantidades de datos no estructurados. Data Lake Storage Gen2 ofrece semántica de sistema de archivos, seguridad a nivel de archivo y escala.
Azure Monitor: una solución integral para recopilar, analizar y actuar sobre la telemetría de sus cargas de trabajo.
MLflow: una solución de código abierto integrada en Databricks para administrar el ciclo de vida del aprendizaje automático de principio a fin.
Azure API Management: un servicio completamente administrado que ayuda a los clientes a publicar, asegurar, transformar, mantener y supervisar las API.
Azure Application Gateway: un equilibrador de carga para el tráfico web que permite gestionar el tráfico de las aplicaciones web.
Azure DevOps o GitHub: son soluciones para implementar prácticas de DevOps que permiten aplicar la automatización y el cumplimiento de las canalizaciones de desarrollo e implementación de la carga de trabajo.
Detalles del escenario
El problema de la reducción de empleados ha cobrado importancia desde la pandemia de la COVID-19. Esta tendencia, en la que los empleados renuncian voluntariamente a sus puestos de trabajo en masa, se conoce popularmente como la Gran Dimisión. El problema también puede agravarse en ciertos departamentos de una organización que pueden carecer de equipos dedicados a la realización de análisis avanzados, como el de Recursos Humanos.
Este escenario de ejemplo ilustra un modelo operativo de aprendizaje automático centralizado. Se trata de un equipo central que se encarga de crear e implementar modelos de Machine Learning para equipos externos en todos los departamentos de una organización. Este enfoque es útil cuando los departamentos son muy pequeños para mantener un equipo dedicado al aprendizaje automático, mientras que la organización pretende infundir la analítica avanzada en todos los productos y procesos.
Posibles casos de uso
Este escenario se centra en la creación de un modelo de aprendizaje automático sobre el retiro de los empleados y su integración con aplicaciones externas que usan los equipos de Recursos Humanos. Sin embargo, el diseño puede generalizarse a muchas cargas de trabajo de aprendizaje automático que son creadas por equipos centralizados y descentralizados por igual.
Este enfoque generalizado es el más adecuado para:
Equipos de aprendizaje automático que se encuentran estandarizados en Databricks para aplicaciones de ingeniería de datos o de aprendizaje automático.
Equipos de aprendizaje automático que tienen experiencia en la implementación y administración de cargas de trabajo de Kubernetes y una preferencia por aplicar estas habilidades para la operacionalización de las cargas de trabajo de aprendizaje automático.
Integrar las cargas de trabajo de aprendizaje automático con aplicaciones externas que requieren una baja latencia y predicciones interactivas del modelo (por ejemplo, inferencia en tiempo real).
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.
Antes de implementar esta solución, algunos factores que puede considerar son:
Esta solución está diseñada para equipos que requieren un alto grado de personalización y tienen una amplia experiencia en la implementación y administración de cargas de trabajo de Kubernetes. Si el equipo de ciencia de datos no tiene esta experiencia, considere la posibilidad de implementar modelos en otro servicio, como Azure Machine Learning.
Procedimientos recomendados de DevOps de aprendizaje automático (MLOps) con Azure Machine Learning presenta los procedimientos recomendados y las recomendaciones para adoptar operaciones de ML (MLOps) en la empresa con aprendizaje automático.
Siga las recomendaciones y directrices definidas en el Marco de buena arquitectura de Azure para mejorar la calidad de sus soluciones Azure.
Al implementar una canalización CI/CD, puede usar herramientas diferentes a las que usa este ejemplo, como Azure Pipelines y Acciones de GitHub. Para obtener más información sobre CI/CD, consulte CI/CD para arquitecturas de microservicios.
Los requisitos empresariales específicos de su caso de uso de análisis podrían requerir el uso de servicios o funciones que no se tienen en cuenta en este diseño.
Optimización de costos
La optimización de costes trata de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costes.
Todos los servicios implementados en esta solución usan un modelo de precios basado en el consumo. Puede usar la calculadora de precios de Azure para estimar los costos para un escenario específico. Para otras consideraciones, consulte Optimización de costos en el marco de buena arquitectura.
Implementación de este escenario
Hay una implementación de prueba de concepto de este escenario disponible en GitHub en Retención de empleados con Databricks y Kubernetes.
Descargar un archivo de PowerPoint para toda la arquitectura.
Esta prueba de concepto ilustra:
- Cómo entrenar un modelo MLflow para el retiro de los empleados en Azure Databricks.
- Cómo empaquetar modelos como un servicio web mediante el uso de herramientas de código abierto.
- Cómo implementar en Kubernetes a través de CI/CD por medio de Acciones de GitHub.
- Cómo supervisar el rendimiento de la API y la variación de los datos del modelo en las áreas de trabajo de Azure Monitor y Azure Log Analytics.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
- Nicholas Moore | Arquitecto de soluciones en la nube
Pasos siguientes
Documentación del producto:
- ¿Qué es Azure Databricks?
- Guía de MLflow
- Azure Kubernetes Service
- Introducción a los registros de contenedores privados de Docker en Azure
- Acerca de API Management
- ¿Qué es Azure Application Gateway?
- Introducción a Azure Data Lake Storage Gen2
- Introducción a Azure Monitor
- Documentación de Azure DevOps
- Integración de Azure y GitHub
Módulos de Microsoft Learn:
- Ciencia de datos con Azure Databricks
- Creación y funcionamiento de soluciones de aprendizaje automático con Azure Databricks
- Introducción a Kubernetes en Azure
- Desarrollo e implementación de aplicaciones en Kubernetes
- Automatización del flujo de trabajo con Acciones de GitHub
Recursos relacionados
También pueden resultarle útiles estos artículos del Centro de arquitectura: