Inicio Artículos ¿Dónde procesar la inteligencia artificial para IIoT?

¿Dónde procesar la inteligencia artificial para IIoT?

La inteligencia artificial (IA) logra que los sistemas embebidos para Internet de las Cosas Industrial (IIoT) respondan mejor y sean más fiables. Los usuarios ya están aprovechando la tecnología para monitorizar el estado de la maquinaria, identificar fallos inminentes y programar tareas de mantenimiento periódico de forma más rentable. Una decisión importante acerca del uso de la IA en los sistemas embebidos es determinar dónde se realiza la mayor parte de este procesamiento de datos. El rendimiento informático que requieren los algoritmos de IA varía mucho y ello influirá mucho sobre los requisitos para procesar el algoritmo y el lugar donde se realiza el procesamiento. Existen tres opciones claras para los diseñadores de sistemas que desarrollan sistemas embebidos basados en IA: utilizar un servicio de IA basado en la nube; implementar un sistema con IA integrada; o crear sus propios algoritmos, generalmente basados en software de código abierto.
Uso de un servicio basado en la nube
Una arquitectura de red neuronal profunda (Deep Neural Network, DNN) es un ejemplo de un algoritmo que exige un alto nivel de rendimiento informático, en especial durante la fase de entrenamiento en la que se necesitan miles de millones de cálculos de coma flotante cada vez que se deba actualizar el modelo. Debido a la exigente demanda de las DNN, el método habitual consiste en enviar los datos a la nube para procesarlos de manera remota. El procesamiento en la nube ya es muy utilizado en dispositivos de consumo como los altavoces inteligentes.
Del mismo modo, los dispositivos de control industrial que admiten IA pueden aprovechar este procesamiento remoto así como las herramientas y los entornos desarrollados para trabajar con los servicios de nube, muchos de los cuales están disponibles con código abierto. Un conocido ejemplo de la IA basada en la nube es TensorFlow de Google que ofrece varios niveles de abstracción para permitir su uso por parte tanto de ingenieros con experiencia en la creación de algoritmos de IA como de principiantes.
La API Keras, que forma parte del entorno TensorFlow, fue diseñada para facilitar la exploración de las técnicas de aprendizaje automático y poner en marcha las aplicaciones. Sin embargo, un inconveniente del procesamiento basado en la nube es el ancho de banda que requiere. Para mantener el servicio es esencial una conexión fiable a Internet y vale la pena mencionar que muchas aplicaciones de consumo con procesamiento de IA en la nube dependen de conexiones de banda ancha. Es posible que las máquinas-herramienta en una fábrica no puedan alcanzar las velocidades de transmisión de los datos que se necesitan para actualizar un modelo de IA remota en tiempo real. Al realizar el procesamiento más de forma local es posible reducir, a veces enormemente, el ancho de banda necesario. En muchas aplicaciones industriales, al prestar atención al contenido se puede reducir en gran medida la cantidad de datos que se deben enviar a la ubicación remota.
En una aplicación que monitoriza las variables ambientales, muchas de ellas permanecen constantes durante largos periodos. Al modelo lo que le importa son los cambios superiores o inferiores a ciertos límites. Aunque un sensor necesite analizar las detecciones por milisegundo, la velocidad de actualización del servidor en la nube puede serl del orden de unas pocas actualizaciones por segundo, o a menudo incluso menos.
Crear software de IA
Las formas de datos más complejas, como audio o vídeo, requieren un mayor nivel de procesamiento previo. Realizar el procesamiento de una imagen antes de pasar la salida a un modelo de IA no solo puede ahorrar ancho de banda en las comunicaciones sino que además puede mejorar el rendimiento general del sistema. Por ejemplo, eliminar el ruido antes de la compresión a menudo mejora la eficiencia de los algoritmos de compresión. Esto es especialmente relevante para las técnicas de compresión con pérdidas sensibles a las señales de alta frecuencia. La detección periférica se puede usar en la segmentación de las imágenes para que el modelo se centre solo en los objetos de interés. Esto reduce la cantidad de datos irrelevantes que se deben suministrar al modelo tanto durante el entrenamiento como en la inferencia.
Aunque el procesamiento de imágenes es un campo complejo, en muchos casos los desarrolladores pueden procesar los algoritmos de forma local, aprovechando para ello bibliotecas de fácil acceso. Esto elimina la necesidad de conexiones a Internet de gran ancho de banda y puede reducir la latencia. Un ejemplo conocido es OpenCV, una biblioteca de visión artificial de código abierto empleada por muchos equipos para preprocesar los datos de los modelos de IA. Está escrita en C++ para un alto rendimiento y los desarrolladores pueden usarla desde el código de C++, Java, Python y Matlab, lo que facilita el desarrollo de prototipos antes de transferir los algoritmos a un objetivo embebido.
Al usar OpenCV y procesar los datos localmente, los integradores también eliminan los riesgos de seguridad asociados con la trasmisión y el almacenamiento de los datos en la nube. Una de las principales preocupaciones de los usuarios finales es la privacidad y la seguridad de los datos en su paso por la nube. La monitorización del estado y la inspección industrial son procesos cruciales que necesitan el mejor análisis de los datos que sea posible, pero contienen información muy valiosa si cayera en manos de un competidor sin escrúpulos. Otros sistemas, como los usados en medicina, se enfrentan a problemas aún mayores respecto a la protección de la confidencialidad. Aunque los operadores de la nube han implementado medidas para prevenir que los datos se vean comprometidos, mantener los datos dentro de cada dispositivo (en la medida de lo posible) limita el riesgo de exposición en caso de acceso indebido. Además de apoyar el procesamiento de las imágenes, las actualizaciones recientes de OpenCV incorporan soporte directo para los modelos de aprendizaje automático creados mediante entornos bien conocidos como Caffe, PyTorch y Tensorflow. Un método que ha demostrado tener éxito entre muchos usuarios es emplear la nube para el desarrollo inicial y de prototipos antes de transmitir el modelo a la plataforma embebida. El rendimiento es crucial para cualquier modelo de aprendizaje automático que se transmita a un dispositivo embebido.
Como los datos de entrenamiento requieren tanto rendimiento, una opción es realizarlo en servidores locales o de nube (en función de las preocupaciones en torno a la confidencialidad) y realizar la inferencia (cuando al modelo ya entrenado se le alimentan datos en tiempo real) en el propio dispositivo. Cuando se requiere rendimiento local, una posible solución es Ultra96-V2 de Avnet, que incorpora el MPSoC Zynq UltraScale+ ZU3EG de Xilinx. La combinación de núcleos de procesador Arm y motores de procesamiento de señal embebidos y una matriz lógica totalmente programable ha demostrado proporcionar un soporte efectivo a los modelos DNN así como a las rutinas de procesamiento de imágenes.
El Ultra96-V2 amplía el rango de temperatura del producto hasta todo el rango industrial, permitiendo así su uso cerca de maquinaria que funcione bajo condiciones adversas. La reconfiguración permite gestionar el entrenamiento y la inferencia localmente cuando las aplicaciones exigen un alto nivel de transferencia. La inferencia es menos exigente que el entrenamiento y, para los sensores más que para los flujos de imágenes, una solución satisfactoria puede consistir en un microcontrolador que ejecute el kernel DNN en el software.
Pero incluso los flujos de datos más bajos pueden ser demasiado para un dispositivo de bajo consumo. Algunos equipos emplean técnicas de optimización con el fin de reducir el número de cálculos necesarios para las inferencias aunque esto aumente la complejidad de desarrollo. Los modelos de IA se caracterizan a menudo por su alto nivel de redundancia. Al cortar las conexiones entre las neuronas y reducir la precisión de los cálculos a números enteros de 8 bit o a una resolución aún más baja se logra reducir de forma significativa la potencia de procesamiento.
Uso de un dispositivo periférico con IA integrada
Una opción es delegar la inferencia a un dispositivo de pasarela local. Una pasarela puede gestionar las tareas de inferencia de varios nodos de sensores si la transferencia por nodo es comparativamente baja. Por ejemplo, en las aplicaciones de visión artificial no es necesario enviar los datos para realizar la inferencia de IA cuando la herramienta no está en funcionamiento o se está cargando una nueva parte para inspección. La necesidad de distribuir las cargas de trabajo, realizar la transmisión y optimizar los modelos de los entornos orientados hacia la nube aumentan la complejidad de desarrollo. Otra opción consiste en emplear un entornoe que ya esté optimizado para uso embebido. Un excelente ejemplo es la plataforma Brainium desarrollada por Octonion. Esta plataforma ofrece un entorno de desarrollo completo dirigido a los sistemas embebidos. Su entorno de software apoya directamente el desarrollo de prototipos mediante sistemas en la nube y la instalación de dispositivos y pasarelas IoT construidas con el hardware SmartEdge Agile de Avnet.
El entorno de software Brainium coordina las actividades del dispositivo, la pasarela y las capas de la nube con el fin de generar un entorno integral para IA. Para permitir la adaptación de las aplicaciones a los nodos profundamente embebidos, el entorno admite varias técnicas de IA que exigen menos recursos de computación que aquellas empleadas en los DNN. El software de la pasarela se puede implementar en hardware listo para usar como Raspberry Pi o en cualquier plataforma capaz de ejecutar Android o iOS. Si se necesita un nivel más alto de rendimiento se puede utilizar la capa de la nube de Brainium en soluciones AWS, Microsoft Azure o servidores a medida. Otros fabricantes líderes del mercado, como Schneider Electric y Festo, han incorporado soporte de IA local a los productos de control para determinadas aplicaciones. Festo ofrece la aplicación Predictive Analytics para identificar cambios sutiles en el comportamiento del sistema que afectan el rendimiento. En 2018, Festo adquirió el especialista en ciencias de datos Resolto y su software SCRAITEC memoriza el estado correcto de un sistema con el fin de detectar cualquier anomalía.
El enfoque que decidan usar los fabricantes de equipos originales o los integradores para desplegar la IA dependerá de sus circunstancias concretas. Además de la potencia de procesamiento disponible habrá otros factores que impulsen el uso de la informática de nube, la creación de software nuevo y/o la integración de dispositivos periféricos para gestionar la IA. Por ejemplo, es posible los usuarios que intenten explotar el análisis de grandes volúmenes de datos (big data) deseen consolidar la información de varios sistemas en una gran base de datos y, por tanto, favorecerán el uso de los servicios de nube. Otros querrán asegurarse de que sus datos tengan altos niveles de confidencialidad. Cuando delegar el procesamiento es un factor crucial, la forma de hacerlo va desde el uso de motores locales de descarga basados en pasarelas hasta el uso generalizado de la informática en la nube. Lo importante es que existen varios entornos que facilitan el desarrollo de prototipos y el despliegue de la arquitectura escogida.