ATAWALPA: inteligencia artificial para pequeñas empresas industriales
Atawalpa es un software experimental diseñado para que las pequeñas empresas industriales puedan ensayar nuevas capacidades tecnológicas y explorar sendas hacia la Industria 4.0.
Las compañías industriales suelen estar atravesadas por procesos productivos que involucran magnitudes físicas tales como cantidades, presiones, temperaturas, niveles, etc. Estos procesos físicos siempre se desarrollan en una dimensión temporal, es decir, producen una serie de tiempo. Las series de tiempo como estructura de datos poseen propiedades matemáticas muy especiales y presentan desafíos que le son propios. El más desafiante de ellos es su predicción.
¿Es posible que una pequeña organización industrial desprovista de una gran infraestructura tecnológica y que se ubica muy por detrás de los desconcertantes estándares de la transformación tecnológica pueda pronosticar el futuro de sus procesos? Sí y esa es la razón de este post.
ATAWALPA es un stack tecnológico que “escucha” sensores, almacena su comportamiento y a partir de eso genera modelos predictivos. Esta diseñado para ser utilizado con un enfoque de exploración de oportunidades de acercamiento a las lógicas de la Industria 4.0. ATAWALPA ofrece como plataforma extensible tres funcionalidades básicas: gestión de etiquetas asociadas a sensores físicos, telemetría de esa etiqueta y finalmente, predicción del valor futuro a N pasos en el tiempo.
Por ejemplo, una empresa industrial podría monitorear la temperatura de una cámara de frío. La cámara tendría un sensor de temperatura que publicaría mensajes bajo el protocolo MQTT bajo una etiqueta, digamos, “temperature01” indicando que el evento se corresponde a la cámara de frío #1. En ATAWALPA solo habría que crear el tag “temperature01” y automáticamente se recibirán y visualizarán las temperaturas a través de su monitor telemétrico.
Normalmente, los sensores producen un gran volumen de datos en poco tiempo. ATAWUALPA utiliza esos eventos y los organiza como un problema de aprendizaje automático supervisado. Por ello, tras algún tiempo escuchando al sensor, ATAWUALPA ya tiene la información necesaria para entrenar un modelo predictivo, con un margen de error cuya magnitud deberá determinarse según el tipo de problema.
Este proceso de entrenamiento se realiza en forma muy sencilla y con parámetros por defecto. Sin embargo es posible ajustar su performance para incrementar su capacidad predictiva en función de la potencia de cálculo que se disponga en el edge. Este proceso, solo implica cambiar unos pocos parámetros y volver a reentrenar y validar el modelo con un par de clicks.
Cuando el modelo ha sido entrenado y validado con un margen de error aceptable, se puede genera una predicción a N pasos de tiempo en el futuro (N es también un parámetro del modelo).
En la Fig. 01 puede observarse la arquitectura subyacente a la propuesta.
ATAWALPA esta desarrollado sobre MeteorJs, por lo que propone un stack basado en NodeJs. Se conecta a un servidor Mosquitto almacenando en MongoDB todos los eventos para los que existen etiquetas creadas. El aprendizaje profundo se realiza a través de la API de TensorFlow.js, graficando en Plotly con React para la vista de usuario.
A continuación, pueden observarse algunas vistas de ATAWALPA para las funcionalidades descriptas:
Como se observa en la Fig. 02, ATAWALPA ofrece un gestor de etiquetas al cual se le pueden asociar diferentes sensores. Esto permite agrupar sensores bajo significantes que tengan sentido, por ejemplo, podrían darse de alta cuatro sensores de temperatura para la cámara de frío #1, otros cuatro sensores de temperatura para la cámara de frío #2, un sensor de nivel para el tanque industrial #1 y así sucesivamente.
Con un click sobre el botón izquierdo del sensor, se accede a la telemetría del mismo, como se observa en la Fig. 03.
Una vez que se han colectado automáticamente un determinado volumen de datos, por ej. mil lecturas del sensor, presionando un botón ATAWALPA los convierte en un problema de aprendizaje supervisado y los utiliza para entrenar un modelo predictivo con celdas LSTM de apilamiento parametrizable. Este proceso de entrenamiento arroja un gráfico cuyo comportamiento esperado debería tomar la forma de una curva descendente, ya que se grafica la pérdida o error que genera el sistema al predecir mientras aprende. De manera que a medida que avanza el proceso de aprendizaje (proceso que puede durar desde segundos hasta horas, dependiendo de varios factores), menor debe ser el error al predecir valores.
Una vez que se generó un gráfico como el anterior o similar, se está en condiciones de validar el modelo predictivo comparando las predicciones con dos conjuntos de datos: el conjunto de datos que se utilizó para entrenar el modelo, y un conjunto disjunto que se reservó para medir cómo se comporta el modelo con datos que nunca vio. Esa validación, se realiza presionando un botón y se obtiene un gráfico de 3 curvas: una para los datos reales leídos desde el sensor, otra para predicciones que se realizaron con los mismos datos con que se entrenó el modelo y otra con datos que el modelo predictivo nunca tuvo disponibles.
Una vez que el modelo fue entrenado y validado, se está en condiciones de presionar un último botón: la predicción.
Todo este proceso puede ser ajustado en función de cuántos datos y, fundamentalmente, cuánta capacidad hardware tengamos en el edge. Estos parámetros se ajustan fácilmente a través de un módulo que permite modificar sus valores por defecto.
Sobre esta plataforma predictiva, es posible extender lógica de negocio para converger al valor agregado en el proceso productivo. Si bien no es un camino simple, las pequeñas empresas industriales deben comenzar a dar sus primeros en dirección a la transformación tecnológicas en tiempos de la Industria 4.0. Quizá ATAWALPA puede ser la puerta de entrada para algunos casos.
Mi perfil en LinkedIn.
Atawalpa en GitHub.