Desafíos al ejecutar IA en computadoras integradas

Este es un extracto de un discurso presentado por Nikhil Bhaskaran, Fundador de Shunya OS, en iotshow.in 2019. Shunya OS es un sistema operativo que optimiza las bibliotecas de IA para sistemas integrados, para permitir a los desarrolladores crear una solución de IA en el borde muy rápido y en un costo muy bajo. En los próximos cinco años, la IA estará dentro de todo; y el análisis de borde será el próximo gran avance para la IA.

El trabajo que se está realizando en el espacio de la inteligencia artificial (IA) hoy en día está más en el lado de la aplicación para resolver problemas de la industria. Y la gente quiere llevar la solución al mercado lo más rápido posible. Para ello, la mayoría de las bibliotecas de IA están integradas en la nube. En eso, hay una gran pila, donde el primer desafío comienza con los datos.

Necesitas entrenar un modelo. No es crear un modelo lo que es el mayor desafío, pero encontrar datos y organizarlos de una manera para entrenar eficientemente su modelo sí lo es. Por tanto, existe un gran mercado para obtener los datos correctos.

La segunda parte es la construcción de un modelo. Hay muchas aplicaciones que no requieren la creación de un modelo como el reconocimiento facial y la detección de objetos. Debido a que estas aplicaciones comunes ya tienen modelos listos disponibles en el mercado, solo se necesita elegir el adecuado para la aplicación. Y después de eso, necesita entrenar aún más su modelo, ya que la mayoría de los modelos generalmente están entrenados para diferentes conjuntos de datos que no dan un buen resultado.

Como todas y cada una de las bibliotecas son buenas en una cosa u otra, es necesario elegir cuidadosamente la correcta que sea adecuada para la aplicación.

Después de tener un modelo que funcione, debe usarse a propósito para generar suficiente dinero. Algunas de las preguntas en las que deberían centrarse las personas que hacen dinero son: ¿Para qué debería utilizarse (el modelo)? ¿Qué busca el mercado?

Aparte de todo esto, existe una competencia importante ya que todos en la IA están trabajando directamente en la nube con respecto al entrenamiento y los datos del modelo. Sin embargo, la IA puede funcionar igualmente bien en computadoras integradas. Esto es comúnmente desconocido para la gente.

Toda la IA ocurrirá al límite

Al ejecutar su modelo en la nube, generalmente se utilizan la API del motor de Google o los modelos de reconocimiento de objetos de Amazon por los que se paga cierta cantidad. Una vez que se construye la solución, durante un período de tiempo tiene que pagar mucho dinero.

En cambio, el mismo modelo se puede codificar en hardware. En el sistema integrado, puede obtener el rendimiento de la nube sin tener que pagar a largo plazo. Todo el análisis se realiza en el dispositivo integrado y solo envía datos limitados a la nube.

La analítica de bordes será la próxima gran novedad para la IA. Todos los datos que envía la biblioteca de IA serán calculados por el procesador y darán resultados. Por ejemplo, en el pasado, cuando entraban los juegos, todos los cálculos matemáticos se realizaban en GPU. Ahora, hay unidades de procesamiento de vectores en los chips que pueden procesar vectores (datos) provenientes de la nube muy rápido.

La GPU también es buena para hacer cálculos de punto flotante.

La gente no sabe que muchas aplicaciones de inteligencia artificial se pueden construir en un chip que las empresas pueden optimizar.

El número de bibliotecas disponibles para la IA en la actualidad es de aproximadamente 800 más. Y esta es también la cantidad de competencia en el espacio de la IA. Esto puede parecer increíble, pero cuando llegaron las computadoras, la gente nunca imaginó que llegaría a ser tan grande. Poco a poco, se convirtió en una necesidad en nuestras vidas. Y la IA va a ser mucho más grande que eso. En los próximos cinco años, la IA estará dentro de todo. Muchos productos vendrán con IA incorporada.

Actualmente, hay más de veinte empresas que se ocupan de la tecnología de IA. Algunos de los más populares son Tencent, TensorFlow, Caffe, Chainer, ONNX y PyTorch.

Desafíos enfrentados en sistemas integrados

Los desafíos como el tamaño del modelo, la elección del modelo y el marco adecuados los enfrentan comúnmente las personas que trabajan en IA. Los desafíos del lado del sistema son algo de lo que la mayoría de la gente no es consciente. Éstos incluyen:

Plataforma

En la nube, el código está preinstalado. Pero para incrustado, debe buscar la fuente y compilarla en la máquina.

Atractivo

Encontrar la fuente adecuada también es un desafío. Es necesario investigar mucho para encontrar la fuente correcta, los parches correctos y configurarlos.

Soporte de arquitectura

Se utiliza principalmente ARM, que puede ser ARM7 o ARM8. Con la ayuda del soporte de Neon en ARM8, las FPU de hardware (unidades de punto flotante) brindan un rendimiento 5x. Es muy ventajoso pero también desafiante.

Compilacion

La compilación cruzada no proporciona el rendimiento requerido. Por lo tanto, para obtener rendimiento y hacer que una biblioteca funcione de manera óptima en el hardware, debe realizar una compilación nativa. Esto requiere una duración muy larga de codificación y consume mucho tiempo.

Instalación

Puede encontrar varios mensajes de error después de la compilación. Se debe tener cuidado para instalar las bibliotecas correctamente, especialmente para máquinas nuevas.

No solo estos, todas las bibliotecas suelen tener algunas dependencias. Las dependencias son algunos paquetes adicionales que se necesitan para ejecutar una biblioteca. Cada herramienta / marco / biblioteca en promedio tiene 4-5 dependencias.

Esos paquetes también deben compilarse para obtener un rendimiento óptimo de forma nativa a partir de las bibliotecas de IA instaladas en su sistema integrado. El software llamado Docker es la forma más rápida de ejecutar paquetes, pero no está optimizado mientras se ejecuta y debe usarse con cuidado.
Existe esta percepción en la industria de que para ejecutar IA en el borde, se necesita mucha computación o se necesita tener una mejor potencia de cómputo para que se obtenga suficiente rendimiento. Sin embargo, esto no es correcto. Cuando se venda esa solución, su costo será mayor. Por lo tanto, la atención debe centrarse en una mejor ingeniería, lo que hace que el precio baje. Esto debería suceder sin comprometer los últimos avances tecnológicos.

Bibliotecas OpenGL y OpenCL

En un sistema integrado, mientras que una CPU obviamente estará presente, la GPU y la NPU son opcionales. Si tiene GPU, tendrá la biblioteca OpenGL o OpenCL. OpenGL es una biblioteca de gráficos que pasa a la GPU los cálculos gráficos que recibe. OpenCL es una biblioteca de computación que verifica la cantidad de potencia computacional en el hardware; cualquier solicitud computacional que reciba se distribuye entre el sistema. Al agregar OpenCL, su rendimiento es muy alto. Es una capa adicional que maneja las solicitudes mucho mejor que el sistema operativo.

Aún queda mucho por hacer en el lado de la aplicación. Después de escribir el código en la nube, cuando lo ejecuta, comienza el proceso de análisis. En este proceso, el código genera un número desconocido de amenazas que pueden causar fallas en el hardware si el sistema no las puede manejar. Pero en el incrustado, es personalizado.

Aquí, la informática de borde juega un papel importante al tomar acciones informáticas directamente en el hardware en lugar de enviar datos a la nube para su computación.

A medida que se acerca el espacio de la IA incorporada, hay algunos marcos que se están construyendo solo para este lado. Actualmente, TVM está haciendo lo mejor en esta área.


Nikhil Bhaskaran tiene más de una década de experiencia en electrónica básica desde el diseño hasta la producción. Ha vivido en Shenzhen, China durante ocho años y tiene una amplia experiencia en hardware integrado. También es el fundador de IoTIoT.in, la comunidad de innovadores de IoT e IA más grande de Pune.



Source link

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *