Computación “at the edge”: llevando la inteligencia artificial a todas partes
Por José Luis Espinosa, Ingeniero Jefe/Manager – Ubotica Technologies y Profesor Asociado en ESI-UCLM.
¿Cómo llegamos a la inteligencia artificial actual?
El reciente auge de la inteligencia artificial es innegable, hasta tal punto de que se ha hecho un hueco en la prensa y en el ideario general. Es difícil hoy en día no haber escuchado hablar de las nuevas aplicaciones de la misma, incluyendo su integración en el coche autónomo o los robots, la ayuda en el diagnóstico médico u otros sistemas de carácter generativo como ChatGPT o Dall·E.
Lo que puede parecer sorprendente es que los conceptos básicos de estos sistemas datan de muchos años atrás. Las redes neuronales tienen sus primeros orígenes en el año 1943 [1]. Sin embargo, es en las últimas dos décadas cuando se han dado las condiciones necesarias para que se produzca el boom en el desarrollo de los sistemas de inteligencia artificial [2], gracias a:
1) La evolución en el hardware de procesamiento, mediante el uso de las tarjetas gráficas (GPUs), cubriendo la gran exigencia computacional que tienen estos sistemas para aprender.
2) El big data, aportando la cantidad necesaria de datos requeridos por este tipo de técnicas.
3) La evolución del software y las técnicas de aprendizaje profundo.
La inteligencia artificial “at the edge”
La evolución de las técnicas de inteligencia artificial ha llevado al desarrollo de sistemas inteligentes cada vez más potentes pero a su vez también más complejos, haciendo necesaria la utilización de sistemas de altas prestaciones o de recursos de computación en la nube. Pero, ¿qué ocurre cuando tenemos limitaciones que nos impiden utilizar estos recursos para integrar nuestro sistema inteligente? Un claro ejemplo sería el área principal en la que trabajamos en la empresa Ubotica, donde se trata de dotar de autonomía e inteligencia a los sistemas desplegados en el espacio, lo cual sería en la actualidad “el último límite” para el ser humano.
Uno de los casos en los que estas restricciones son aún más drásticas son los nanosatélites. Estos satélites de pequeño tamaño están en auge gracias a la inversión de diferentes agencias espaciales como la ESA o la NASA y empresas como SpaceX debido a su coste relativamente reducido y a las posibilidades que ofrecen. Aún así, estos dispositivos no disponen de las mismas capacidades de comunicación con la Tierra que un satélite de mayor tamaño.
Es para estos casos donde surge la computación “at the edge”, trasladando la ejecución de los algoritmos de inteligencia artificial directamente al lugar en el que se captura la información. Este enfoque tiene varias ventajas:
1) Privacidad. Al realizar las operaciones en el lugar en el que se capturan los datos, no es necesario enviar información tan sensible como son las imágenes a través de la red.
2) Reducción de la latencia. Al no tener que enviar estos datos y esperar a recibir los resultados, el propio dispositivo sería capaz de tomar una decisión en un corto periodo de tiempo. Por ejemplo, si un nanosatélite o un rover detectara un obstáculo, podría decidir de forma autónoma la mejor forma de actuar para evitarlo.
3) Reducción del ancho de banda requerido. Esto es especialmente notable para el caso de uso de nanosatélites para la observación terrestre. Estos dispositivos capturan imágenes de gran tamaño (varios GiB), pero disponen de una velocidad de envío de información a la Tierra muy reducida, lo que hace inviable el envío constante de la información para su procesamiento en una base terrestre. Gracias a la computación “at the edge”, sería sencillo enviar únicamente la información obtenida al procesar las imágenes, como por ejemplo, el aviso de una emergencia por la detección de un incendio o cualquier otro tipo de evento peligroso.
¿Qué es necesario a nivel tecnológico?
Para poder aplicar este paradigma, se hacen necesarios dos factores:
1) El desarrollo de sistemas empotrados específicos para la ejecución de aplicaciones de inteligencia artificial. A pesar de que estos sistemas tienen que tener como característica principal una alta capacidad de cómputo, también es necesario que cuenten con un tamaño reducido y un bajo consumo energético, para ser enviados al espacio. Este es el caso de nuestra placa XE2, basada en los dispositivos Myriad desarrollados por Intel Movidius, y que utilizamos en Ubotica en todo tipo de desarrollos y soluciones relacionadas con el sector aeroespacial y la industria 4.0, pero que de la misma manera se han utilizado en otras situaciones muy restrictivas como sería la detección de cazadores furtivos en zonas protegidas.
2) La utilización de técnicas específicas que nos permitan utilizar los sistemas de inteligencia artificial dentro de este hardware ya que, aunque la capacidad de cómputo sea alta, es complicado llegar a obtener las mismas prestaciones que una GPU debido a las restricciones de tamaño y consumo. Es por ello que en muchas ocasiones se usan versiones reducidas de los modelos utilizados en sistemas más complejos o se realiza una reducción en la precisión de las operaciones mediante el uso de menos bits para almacenamiento de los valores de coma flotante (por ejemplo, utilizando FP16 en vez de FP32) o el empleo de técnicas de cuantización que reducen el número de valores posibles a un conjunto pequeño (incluso a valores enteros).
¿Qué necesito para trabajar en este contexto?
Como hemos podido ver, la inteligencia artificial “at the edge” está en pleno auge, habiéndose convertido en un nicho laboral muy particular. Aunque es posible entrar en él teniendo conocimientos únicamente en el terreno del hardware o de la inteligencia artificial, aquellos que estamos trabajando en el mismo hemos tenido que convertirnos a un perfil mucho más multidisciplinar.
En mi caso particular, con una especialización inicial en el apartado de la inteligencia artificial, me ha sido necesario aprender a tener en cuenta las restricciones del hardware a la hora de diseñar y entrenar sistemas inteligentes. Otros compañeros focalizados en el hardware, han tenido que aprender a comprender el funcionamiento de los sistemas inteligentes para ser capaces de integrar y validar los mismos dentro de los dispositivos.
Esto choca con la división en intensificaciones de los actuales grados universitarios a nivel europeo, en los que se prima la especialización en una rama concreta, por lo que la formación adicional necesaria en muchas ocasiones corre a cargo del propio alumno o de la empresa que lo contrata mediante cursos, formación interna o másters de caracter específico o generalista como el MUII de la ESI.
Por ello, me gustaría finalizar este artículo con una reflexión que siempre hago tanto a mis compañeros de trabajo como a mis alumnos, tanto por una posible multidisciplinariedad como por la constante aparición de nuevas tecnologías, y es que una de las principales capacidades que tiene que tener un graduado en informática es la de ser capaz de entender y aprender cosas nuevas.
Referencias
[1] McCulloch, W. S., & Pitts, W. (1943). A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5, 115-133. [2] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press.Lee también Profesor y egresados ESI ganadores NASA Awards 2022