Inteligencia de Negocios

Entrega integrada: entrega continua – DATAVERSITY

single-image


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

En este segundo artículo de nuestra serie de blogs Integrated Deployment, donde nos enfocamos en resolver los desafíos en la producción de ciencia de datos, analizamos la parte del proceso del modelo.

En el artículo anterior, cubrimos un caso de uso simple para la implementación integrada. Primero analizamos un par de flujo de trabajo existente, uno de los cuales creó un modelo y el segundo usó ese modelo para la producción. Luego, vimos cómo crear un flujo de trabajo modelo que crea automáticamente un flujo de trabajo que está listo para usar en producción. Usamos la nueva extensión de implementación integrada para este propósito. El primer escenario fue bastante simple. En una situación del mundo real, sin embargo, las cosas pueden complicarse más rápidamente.

Por ejemplo, ¿cómo sería el flujo de trabajo de entrega integrado si capacitáramos a más de un modelo? ¿Cómo usaríamos lo mejor de manera flexible? Supongamos que necesitamos probar el flujo de trabajo de capacitación y entrega en un subconjunto de los datos. ¿Cómo volveríamos a capacitar y volver a implementar un conjunto de datos más grande seleccionando solo las partes interesantes del flujo de trabajo inicial? Veamos cómo la implementación integrada puede ayudarnos a realizar estas tareas.

Para poder entrenar múltiples modelos, seleccionar el mejor, reentrenar y desplegar automáticamente, queremos crear una jerarquía de flujos de trabajo: el flujo de trabajo de modelado que genera el flujo de trabajo de entrenamiento que genera el flujo de trabajo de implementación (Figura 1).

Figura 1: Un diagrama que explica la estructura jerárquica de los flujos de trabajo necesarios para crear una aplicación para seleccionar el mejor modelo y volver a capacitar e implementar de inmediato.

Gracias a la provisión integrada, todo el sistema se puede controlar y editar a través del flujo de trabajo de modelado. Al agregar Capture Workflow Nodes (Capture Workflow Start y Capture Workflow End), el científico de datos puede elegir qué nodos usar para reentrenar el modelo seleccionado y qué nodos implementar. Además, el científico de datos puede usar conmutadores como el nodo de cambio de caso y el nodo de cambio de tabla vacía para definir la lógica de qué nodo capturar y agregar a los otros dos flujos de trabajo.

El uso del marco que se muestra en la Figura 1 es particularmente útil en un escenario empresarial donde el reentrenamiento y el redespliegue de una gran cantidad de modelos son rutinarios. Sin un marco de este tipo, el científico de datos tendría que intervenir manualmente en los flujos de trabajo cada vez que el modelo proporcionado tenga que ser reentrenado con diferentes configuraciones.

En la Figura 2, una animación muestra el flujo de trabajo de modelado, con aprovisionamiento integrado, que captura y ejecuta el flujo de trabajo de capacitación según sea necesario y, en última instancia, solo escribe el flujo de trabajo de aprovisionamiento.

Figura 2: Una animación que se desplaza a lo largo del flujo de trabajo de modelado.

El flujo de trabajo pasa por una serie estándar de pasos para crear varios modelos, en este caso un modelo Random Forest y un modelo XGBoost. Luego proporciona una vista interactiva para que un científico de datos pueda examinar los resultados y decidir qué modelo volver a entrenar para obtener datos adicionales y finalmente implementar. Cubre los pasos del ciclo CRISP-DM y también proporciona vistas interactivas para el usuario. El usuario puede elegir qué flujo de trabajo debe volver a capacitarse para obtener más datos y, en última instancia, proporcionarse.

En este punto, es posible que se sienta un poco abrumado. Es como esta película de 2010 sobre un sueño dentro de un sueño, Inception. Si es así, no se preocupe, mejorará.

Revisaremos cada parte del flujo de trabajo y las mostraremos aquí. Puede ser más útil abrir el ejemplo si lo sigue. ¡Recuerde tener KNIME 4.2 o superior instalado! Puede encontrar el flujo de trabajo de muestra aquí.

Comenzaremos accediendo y mezclando algunos datos de una base de datos y un archivo CSV como de costumbre. En este punto, el científico de datos observa los datos a través de una vista compuesta interactiva llamada Visualización automatizada (Figura 3). Esta vista proporciona al científico de datos una forma rápida de investigar anomalías a través de una serie de gráficos que muestran automáticamente lo que es más interesante estadísticamente.

Figura 3: El flujo de trabajo de modelado se utiliza para acceder y combinar los datos, que luego se revisan de forma interactiva a través de un panel de visualización de datos.

Una vez hecho esto, el científico de datos crea el proceso personalizado para preparar los datos para el proceso de análisis. En este ejemplo, solo estamos actualizando el dominio de todas las columnas y convirtiendo algunas columnas de numéricas a categóricas. El científico de datos captura el flujo de trabajo con aprovisionamiento integrado, ya que será necesario en el futuro cuando se procesen más datos. En nuestro ejemplo, el científico de datos abre un componente de filtro de columna interactivo. Esta vista permite la eliminación rápida de las columnas que el modelo no debería usar por todas las razones normales, como: B. porque hay demasiados valores perdidos, constantes o únicos (Figura 4).

Figura 4: El flujo de trabajo de modelado continúa con la parte de preparación de datos que se captura para una implementación posterior. Se utiliza otra vista interactiva para filtrar rápidamente las columnas irrelevantes antes de entrenar los modelos. El filtro interactivo también se captura con fines de implementación.

Este científico de datos en particular está lidiando con una enorme cantidad de filas. Para hacer una optimización rápida del modelo, quiere submuestrear los datos con un nodo de escaneo de línea para usar solo el 10%. La científica de datos sabe que después tendrá que volver a entrenar todo con más datos para obtener resultados precisos, pero está satisfecha con el 10% por ahora. Después de dividir los datos submuestreados en conjuntos de extracción y prueba, entrena un modelo XGBoost y un modelo de bosque aleatorio con optimización de parámetros en la parte superior. Para una capacitación posterior, el científico de datos también registra esta parte con provisión integrada. Después de entrenar los dos modelos, usa otra vista interactiva para determinar qué modelo es mejor (Figura 5). El modelo seleccionado es un bosque aleatorio, que el componente selecciona automáticamente en el puerto del objeto de flujo de trabajo.

Figura 5: El científico de datos puede utilizar una vista interactiva utilizando el nodo Inspector de clasificación binaria para examinar las métricas de rendimiento de los dos modelos y seleccionar un modelo para volver a entrenar e implementar. El modelo seleccionado se crea como un objeto de flujo de trabajo a la salida del componente.

El modelo seleccionado se vuelve a entrenar para todo el conjunto de datos (no un submuestreo del 10% esta vez) con un nodo Workflow Executor utilizando la salida del componente anterior. El componente anterior crea un flujo de trabajo de capacitación (Figura 6). Al ejecutar el flujo de trabajo de capacitación, la salida del nodo Ejecutor de flujo de trabajo es el flujo de trabajo de aprovisionamiento (Figura 6). Y ahí lo tienes: ¡un ejemplo completo y automatizado de entrega continua! Ojalá ya no tengas ese sentimiento de abrumador

Figura 6: El modelo de bosque aleatorio seleccionado se escribe y ejecuta como un flujo de trabajo de entrenamiento para todo el conjunto de datos. Solo entonces se genera un nuevo flujo de trabajo de aprovisionamiento y se transmite como un paso posterior en el flujo de trabajo de modelado.

El flujo de trabajo de implementación y el nuevo conjunto de pruebas evaluado se utilizan en la vista interactiva final (Figura 7) para mostrar el nuevo rendimiento a medida que se han utilizado más datos esta vez. Hay dos botones disponibles: el primero permite la descarga del flujo de trabajo de aprovisionamiento en formato .knwf, el segundo ofrece la opción de ponerlo a disposición en el servidor y guardar una copia local del flujo de trabajo de aprovisionamiento que se ha creado.

Figura 7: La vista interactiva final del flujo de trabajo de modelado utilizada para verificar el rendimiento de todo el conjunto de datos y decidir si implementar o no el modelo. El flujo de trabajo que se implementará también se puede descargar como un archivo .knwf.

El mismo flujo de trabajo se puede proporcionar a través del servidor como una aplicación analítica guiada interactiva para el portal web. Los científicos de datos pueden usar la aplicación cuando necesitan pasar por un ciclo de entrega continuo, que es efectivamente una aplicación AutoML ajustada, personalizada e interactiva. Por supuesto, esta aplicación en particular está codificada para este caso de uso de aprendizaje automático en particular, pero puede personalizar este ejemplo para que se adapte a sus necesidades.

Esté atento a la próxima entrega de la serie de blogs de implementación integrada, ya que le mostramos cómo puede usar la implementación integrada para obtener una solución de AutoML más completa y flexible.

También te gustará