cambiar a curso:   2018-19   2020-21


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2019-20

Aceleración de aprendizaje automático mediante Edge TPUs en Raspberry Pis


Tecnologías Específicas

Computación
Ingeniería de Computadores
 


Descripcion y Objetivos

Debido al auge y los grandes avances del aprendizaje automático (machine learning) en el sector empresarial e investigador las grandes compañías como Google e Intel diseñan circuitos ASIC aceleradores. Concretamente, desde 2015 Google diseña las Unidades de Procesamiento Tensorial (TPUs) como circuitos integrados ASIC aceleradores de IA (inteligencia artificial). Su diseño está optimizado para la ejecución de técnicas de aprendizaje automático basadas en redes neuronales profundas. Entre los ejemplos de aplicación del aprendizaje automático destacan la mejora en la precisión del diagnóstico médico en el sector sanitario, la transcripción de texto medieval en paleontología, la predicción del tiempo extremo o la clasificación de imágenes.

Por otro lado, el crecimiento exponencial de los teléfonos móviles inteligentes, sensores y dispositivos wearables que obtienen datos del entorno y que necesitan hacer los cálculos computacionales cerca del dispositivo, sin enviar los datos al cloud central, hace que Google lance recientemente al mercado un dispositivo Edge TPU de bajo coste, bajo el nombre de Coral.

El desarrollo del aprendizaje automático se hace en dos etapas. Primero, un algoritmo se entrena haciendo uso de una gran cantidad de muestras de datos en un clúster o máquina computacionalmente potente. Luego, la red entrenada se despliega en una aplicación que necesita interpretar los datos reales. Esta etapa de despliegue o “inferencia” es donde el dispositivo Edge TPU participa. Edge TPU permite la ejecución de la red entrenada “en el borde” (at the edge), esto es, cerca de la fuente donde se generaron los datos. De alguna forma, pasamos a disponer de “inteligencia” cerca de los dispositivos finales, no en el cloud o servidor central, reduciendo las latencias de comunicación y los costes debidos al consumo de ancho de banda. Este paradigma se denomina computación en la niebla o Fog Computing.

El  objetivo de este Trabajo Fin de Grado (TFG) es desplegar un sistema de bajo coste basado en TPUs que aceleren aplicaciones que requieran el uso de aprendizaje automático. Para la consecución con éxito de este objetivo se han de abordar los siguientes sub-objetivos:

  • Estudio del funcionamiento de las tarjetas Raspberry Pi
  • Estudio del entorno de desarrollo TensorFlow
  • Instalación del sistema de bajo coste con Raspberry Pi y TPUs
  • Desarrollo y optimización de aplicaciones
  • Análisis de las prestaciones del sistema
 


Metodología y Competencias

Para el desarrollo de este TFG se hará uso de una metodología ágil basada en Scrum. Se mantendrán reuniones quincenales con los tutores para el correcto seguimiento y retroalimentación del trabajo.

En cuanto al plan de trabajo, a priori se definen las siguientes fases:

  1. Familiarizarse con la instalación y gestión de las Raspberry Pi.
  2. Estudiar el funcionamiento de machine learning (ML).
  3. Estudiar el funcionamiento del framework open source TensorFlow Lite para el despliegue de aplicaciones.
  4. Diseñar, integrar e implementar el sistema de bajo coste.
  5. Desplegar y ejecutar aplicaciones ML en el sistema.
  6. Analizar el funcionamiento de las aplicaciones y las prestaciones del sistema.

Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:

[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.

[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.

Las competencias que se aplican en el caso de la Tecnología de Computación son:

[CM4] Capacidad para conocer los fundamentos, paradigmas y técnicas propias de los sistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas que utilicen dichas técnicas en cualquier ámbito de aplicación.

[CM7] Capacidad para conocer y desarrollar técnicas de aprendizaje computacional y diseñar e implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadas a extracción automática de información y conocimiento a partir de grandes volúmenes de datos.

 


Medios a utilizar

  • Software de código abierto, como Raspbian y TensorFlow.
  • PC personal, Raspberry Pi, Google Coral Accelerator y Google Coral Board disponibles en la Escuela Superior de Ingeniería informática.
 


Bibliografía

 


Tutores


CAMINERO HERRÁEZ, Mª BLANCA
CARRIÓN ESPINOSA, CARMEN
 

Alumno


GÓMEZ GARRIDO, PEDRO JOSÉ