Inteligencia de Negocios

Una introducción a la entrega integrada

single-image


Haga clic aquí para obtener más información sobre el autor Paolo Tamagnini.

Saluda a nuestra serie de blogs de implementación integrada donde nos enfocamos en resolver los desafíos de producir ciencia de datos.

Los temas incluyen:

  • Resolviendo los desafíos al proporcionar modelos
  • Cree aplicaciones de análisis guiado que construyan no solo un modelo, sino un proceso de modelo completo. Utilice nuestro enfoque de componentes para AutoML para colaborar en proyectos
  • Configure una infraestructura no solo para monitorear los flujos de trabajo de producción, sino también para actualizarlos automáticamente

La característica clave para resolver muchos de estos problemas es la entrega integrada. En este blog explicamos este concepto utilizando ejemplos prácticos.

Independientemente del paquete que utilicen, los científicos de datos están acostumbrados a entrenar modelos de aprendizaje automático para resolver problemas comerciales. Los enfoques clásicos para crear ciencia de datos, como el ciclo CRISP-DM, respaldan este enfoque. Sin embargo, la realidad es que un gran modelo nunca puede simplemente entrar en producción. Para un modelo, los datos en producción deben prepararse y mostrarse exactamente como se crearon. Y puede haber otros aspectos asociados con el uso del modelo y mostrar los resultados en la forma correcta que el modelo en sí no contiene.

Hasta ahora, esta enorme brecha en la transición de la construcción de un gran modelo a su uso en producción se le ha dejado al usuario, ya sea que esté usando nuestro paquete u otro paquete como Python. De hecho, siempre tuvo que diseñar manualmente dos flujos de trabajo: uno para entrenar su modelo y otro para implementar. Con nuestra plataforma, el flujo de trabajo de aprovisionamiento ahora se puede crear automáticamente gracias a una nueva extensión.

Aquí hay un pequeño blog introductorio que explica la implementación integrada. Pero en este artículo queremos profundizar un poco más para nuestros fans. Para este propósito, se consideran dos ejemplos de flujo de trabajo existentes para la creación y la implementación de modelos. Luego lo repetiremos para que el primer flujo de trabajo de compilación cree automáticamente el flujo de trabajo de producción.

Este enfoque se utilizó en el taller de aprendizaje de ciencia de datos que hemos estado llevando a cabo durante muchos años. Como evento en el sitio y en línea, este taller brinda una descripción general de cómo puede usar nuestra plataforma no solo para crear una excelente ciencia de datos, sino también para producirla. Estamos creando dos flujos de trabajo.

El primer flujo de trabajo es el Flujo de trabajo de modeladose utiliza para acceder a los datos disponibles, resumirlos en una sola tabla, limpiar y eliminar todos los valores faltantes, así como cualquier otra inconsistencia, y aplicar el conocimiento del dominio creando nuevas funciones, entrenando, optimizando y validando modelos.

El segundo flujo de trabajo es el Flujo de trabajo de aprovisionamiento, Esto no solo carga todos los ajustes entrenados en el flujo de trabajo de modelado, sino que también crea el preprocesamiento de datos esperado por el modelo. En muchos casos, el flujo de trabajo de implementación no es solo un flujo de trabajo independiente, sino que está diseñado para ser invocado por una aplicación externa a través de la API REST para crear una aplicación súper simple que puede enviar nuevos datos como entrada y salida del modelo a través de una lata. ser devuelto http Consulta.

En este ejemplo, estamos entrenando un modelo para predecir la rotación de clientes existentes en función de los datos almacenados de clientes anteriores. El flujo de trabajo de modelado accede a los datos de una base de datos y se conecta desde un archivo de Excel. Los datos se preparan recalculando el dominio de cada columna, convirtiendo algunas columnas de categóricas a numéricas y dividiéndolas en dos conjuntos, el conjunto de entrenamiento y el conjunto de prueba. Sobre la base de la distribución del conjunto de entrenamiento, se crea un modelo de imputación de los valores perdidos y se lleva a cabo una optimización del modelo para encontrar los parámetros óptimos para la estructura general aleatoria (por ejemplo, número de árboles), que se entrena inmediatamente después. El modelo entrenado se utiliza para calcular la predicción de abandono de la prueba, que incluye clientes a los que el modelo nunca ha visto durante el entrenamiento. Una vista interactiva optimiza el umbral del modelo y lo aplica al conjunto de prueba. La evaluación del modelo se verifica tanto con el valor umbral optimizado anterior como con el nuevo mediante matrices de confusión. El modelo de valor perdido y el modelo de bosque aleatorio se guardan para el flujo de trabajo de aprovisionamiento.

El flujo de trabajo de modelado completo se muestra en la Figura 1.

Figura 1: El usuario crea el flujo de trabajo de modelado nodo por nodo desde la preparación de los datos hasta la evaluación del modelo.

Para implementar este modelo simple de predicción de abandono (anterior a 4.2), los científicos de datos tuvieron que crear manualmente un nuevo flujo de trabajo (Figura 2 a continuación) y, nodo por nodo, recrear la secuencia de pasos, incluida la duplicación manual de la preparación de los datos sin procesar utilizando se utilizarán los modelos previamente creados y guardados.

Este trabajo manual requiere que el usuario dedique tiempo a arrastrar y soltar los mismos nodos que ya se utilizaron en el flujo de trabajo de modelado. Además, el usuario tenía que asegurarse de que el flujo de trabajo de aprovisionamiento pudiera encontrar los archivos de modelo escritos y que los nuevos datos pudieran entrar y salir del flujo de trabajo de aprovisionamiento utilizando el formato JSON requerido por el marco de la API REST.

En este caso particular, donde se optimizó el umbral de clasificación binaria, los científicos de datos incluso tuvieron que ingresar manualmente el nuevo umbral.

Figura 2: El Flujo de trabajo de implementación Hecho a mano antes de que se lance la implementación integrada. Aquí, también, ya se utilizan muchos nodos en el flujo de trabajo de modelado.

La implementación con esta configuración manual era completamente común, pero consumía mucho tiempo. Siempre que había que cambiar algo en el flujo de trabajo de modelado, el flujo de trabajo de aprovisionamiento tenía que actualizarse manualmente. Por ejemplo, considere entrenar otro modelo que no sea un bosque aleatorio o agregar otro paso en la parte de preparación de datos. Era posible volver a capacitar y volver a implementar el mismo modelo, pero no el cambio automático de nodo.

  • Gracias al aprovisionamiento integrado, puede proporcionarlo de forma flexible y automática desde su flujo de trabajo de modelado.
  • ¿Cuál es el flujo de trabajo de modelado de predicción de abandono cuando se utiliza la implementación integrada?

En la Figura 3 a continuación, puede ver el mismo flujo de trabajo que en la Figura 1, excepto que se utilizan algunos nodos nuevos. Estos son los nodos de captura de la Extensión de implementación integrada. El científico de datos puede diseñar el flujo de trabajo de implementación mientras crea el flujo de trabajo de modelado capturando los segmentos que se implementarán. Este ejemplo simple captura solo dos segmentos de flujos de trabajo que se implementarán: preparación y evaluación de datos, que se muestran en violeta en la Figura 3. Cualquier conexión de entrada de nodo que no sea del inicio del flujo de trabajo de recopilación se establece como un parámetro en el flujo de trabajo de implementación. En este caso, la única entrada y salida dinámica de los nodos capturados es un puerto de datos que se especifica en los nodos de inicio y finalización del flujo de trabajo de captura. Los dos segmentos de flujo de trabajo registrados se combinan luego a través de un nodo combinador de flujo de trabajo, y el flujo de trabajo de implementación se escribe automáticamente en el servidor o el repositorio local a través de un nodo de escritura de flujo de trabajo.

Figura 3: Esta vez el flujo de trabajo de modelado
es creado por los científicos de datos nodo por nodo desde la preparación de los datos hasta la implementación del modelo, pero incluye los nuevos nodos de Extensión de implementación integrada.

Es importante enfatizar que el nodo Workflow Writer ha creado un flujo de trabajo completamente configurado y funcional.

Puede echar un vistazo al flujo de trabajo de aprovisionamiento generado automáticamente en la Figura 4 a continuación. Todas las conexiones que no fueron definidas en el flujo de trabajo de modelado por los nodos Capture Workflow Start y Capture Workflow End son estáticas y son importadas por los nodos PortObject Reference Reader. Estos son nodos lectores genéricos que pueden cargar la información de conexión de los parámetros estáticos encontrados durante el entrenamiento. En la Figura 4, el flujo de trabajo de implementación de muestra lee tres parámetros: el modelo de valor perdido, el modelo de bosque aleatorio y el valor doble que se utilizará como umbral de clasificación binaria.

Figura 4: El flujo de trabajo de implementación generado automáticamente por Integrated Deployment.

En un escenario en el que los datos se preparan y los modelos se entrenan y se ponen a disposición de forma rutinaria, el aprovisionamiento integrado es particularmente útil para el reentrenamiento flexible y el reaprovisionamiento con configuraciones actualizadas sobre la marcha. Esto se puede automatizar completamente mediante el uso del nodo Implementar flujo de trabajo en el servidor para enviar los flujos de trabajo creados para su implementación a través del servidor en el que se implementarán los modelos cuando se use la plataforma Analytics. La Figura 5 muestra un ejemplo del nuevo nodo Implementar flujo de trabajo en el servidor mediante la conexión del servidor.

En la siguiente animación, se agrega el ejecutor, el objeto de flujo de trabajo se conecta a su entrada y se crea el número correcto de puertos de entrada y salida a través del cuadro de diálogo. Esta configuración proporciona un marco independiente del modelo que se requiere para aplicaciones de interpretación de aprendizaje automático como LIME, valores de Shapley, SHAP, etc.

Incluso si no tiene acceso a un servidor, la extensión de implementación incorporada puede ser extremadamente útil si ejecuta parte de un flujo de trabajo una y otra vez. Imagine que desea probar un flujo de trabajo varias veces sin tener que copiar toda la secuencia de nodos en diferentes ramas. Con el nuevo nodo Ejecutor de flujo de trabajo, puede reutilizar un flujo de trabajo capturado utilizando el enfoque de caja negra sobre la marcha (Figura 5 a continuación). Esto es extremadamente útil cuando está trabajando con la extensión de interpretación de aprendizaje automático.

Figura 5: Un flujo de trabajo capturado con la Extensión de implementación integrada
se puede implementar en función de un servidor remoto, pero también se puede ejecutar de forma flexible de forma local con fines de prueba.

Por supuesto, este ejemplo introductorio es solo una primera demostración de cómo el aprovisionamiento integrado mejora los flujos de trabajo analíticos. En los próximos episodios de esta serie, veremos cómo esta nueva extensión permite a un experto entrenar, evaluar, implementar, mantener y monitorear de manera flexible los modelos de aprendizaje automático de manera automatizada. ¡Manténganse al tanto!

También te gustará