Los microcontroladores, computadoras en miniatura que pueden ejecutar comandos simples, son la base de miles de millones de dispositivos conectados, desde dispositivos de Internet de las cosas (IoT) hasta sensores en automóviles. Pero los microcontroladores baratos y de baja potencia tienen una memoria extremadamente limitada y no tienen sistema operativo, lo que dificulta entrenar modelos de inteligencia artificial en «dispositivos de borde» que funcionan independientemente de los recursos informáticos centrales.
Entrenar un modelo de aprendizaje automático en un dispositivo de borde inteligente le permite adaptarse a nuevos datos y hacer mejores predicciones. Por ejemplo, entrenar a un modelo en un teclado inteligente podría permitir que el teclado aprenda continuamente de la escritura del usuario. Sin embargo, el proceso de entrenamiento requiere tanta memoria que, por lo general, se realiza con computadoras potentes en un centro de datos, antes de que el modelo se implemente en un dispositivo. Esto es más costoso y plantea problemas de privacidad, ya que los datos del usuario deben enviarse a un servidor central.
Para abordar este problema, los investigadores del MIT y del MIT-IBM Watson AI Lab desarrollaron una nueva técnica que permite el entrenamiento en el dispositivo utilizando menos de un cuarto de megabyte de memoria. Otras soluciones de formación diseñadas para dispositivos conectados pueden utilizar más de 500 megabytes de memoria, superando con creces la capacidad de 256 kilobytes de la mayoría de los microcontroladores (hay 1024 kilobytes en un megabyte).
Los algoritmos inteligentes y el marco que desarrollaron los investigadores reducen la cantidad de cómputo requerida para entrenar un modelo, lo que hace que el proceso sea más rápido y más eficiente en la memoria. Su técnica se puede utilizar para entrenar un modelo de aprendizaje automático en un microcontrolador en cuestión de minutos.
Esta técnica también preserva la privacidad al mantener los datos en el dispositivo, lo que podría ser especialmente beneficioso cuando los datos son confidenciales, como en aplicaciones médicas. También podría permitir la personalización de un modelo en función de las necesidades de los usuarios. Además, el marco preserva o mejora la precisión del modelo en comparación con otros enfoques de entrenamiento.
«Nuestro estudio permite que los dispositivos IoT no solo realicen inferencias, sino que también actualicen continuamente los modelos de IA a los datos recopilados recientemente, allanando el camino para el aprendizaje permanente en el dispositivo. La baja utilización de recursos hace que el aprendizaje profundo sea más accesible y puede tener un alcance más amplio, especialmente para dispositivos de borde de baja potencia», dice Song Han, profesor asociado en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación (EECS), miembro del MIT-IBM Watson AI Lab y autor principal del artículo que describe esta innovación.
Junto a Han en el artículo están los coautores principales y estudiantes de doctorado de EECS, Ji Lin y Ligeng Zhu, así como los posdoctorados del MIT Wei-Ming Chen y Wei-Chen Wang, y Chuang Gan, miembro principal del personal de investigación del MIT-IBM Watson. Laboratorio de IA. La investigación será presentada en la Conferencia sobre Sistemas de Procesamiento de Información Neural.
Han y su equipo abordaron previamente los cuellos de botella computacionales y de memoria que existen al intentar ejecutar modelos de aprendizaje automático en dispositivos de borde diminutos, como parte de su iniciativa TinyML.
Entrenamiento ligero
Un tipo común de modelo de aprendizaje automático se conoce como red neuronal. Basados libremente en el cerebro humano, estos modelos contienen capas de nodos interconectados, o neuronas, que procesan datos para completar una tarea, como reconocer personas en fotografías. El modelo debe ser entrenado primero, lo que implica mostrarle millones de ejemplos para que pueda aprender la tarea. A medida que aprende, el modelo aumenta o disminuye la fuerza de las conexiones entre las neuronas, lo que se conoce como pesos.
El modelo puede sufrir cientos de actualizaciones a medida que aprende, y las activaciones intermedias deben almacenarse durante cada ronda. En una red neuronal, la activación son los resultados intermedios de la capa intermedia. Debido a que puede haber millones de pesos y activaciones, entrenar un modelo requiere mucha más memoria que ejecutar un modelo previamente entrenado, explica Han.
Han y sus colaboradores emplearon dos soluciones algorítmicas para hacer que el proceso de entrenamiento fuera más eficiente y menos intensivo en memoria. El primero, conocido como actualización dispersa, utiliza un algoritmo que identifica los pesos más importantes para actualizar en cada ronda de entrenamiento. El algoritmo comienza a congelar los pesos uno a la vez hasta que ve que la precisión cae a un umbral establecido, luego se detiene. Los pesos restantes se actualizan, mientras que las activaciones correspondientes a los pesos congelados no necesitan almacenarse en memoria.
«Actualizar todo el modelo es muy costoso porque hay muchas activaciones, por lo que la gente tiende a actualizar solo la última capa, pero como puede imaginar, esto perjudica la precisión. Para nuestro método, actualizamos selectivamente esos pesos importantes y nos aseguramos la precisión se conserva por completo», dice Han.
Su segunda solución implica el entrenamiento cuantificado y la simplificación de los pesos, que suelen ser de 32 bits. Un algoritmo redondea los pesos para que sean solo ocho bits, a través de un proceso conocido como cuantización, que reduce la cantidad de memoria tanto para el entrenamiento como para la inferencia. La inferencia es el proceso de aplicar un modelo a un conjunto de datos y generar una predicción. Luego, el algoritmo aplica una técnica llamada escalado consciente de la cuantificación (QAS), que actúa como un multiplicador para ajustar la relación entre el peso y el gradiente, para evitar cualquier caída en la precisión que pueda provenir del entrenamiento cuantificado.
Los investigadores desarrollaron un sistema, llamado motor de entrenamiento diminuto, que puede ejecutar estas innovaciones algorítmicas en un microcontrolador simple que carece de sistema operativo. Este sistema cambia el orden de los pasos en el proceso de entrenamiento para que se complete más trabajo en la etapa de compilación, antes de que el modelo se implemente en el dispositivo perimetral.
«Impulsamos una gran parte de la computación, como la diferenciación automática y la optimización de gráficos, para compilar el tiempo. También eliminamos agresivamente los operadores redundantes para admitir actualizaciones escasas. Una vez en el tiempo de ejecución, tenemos mucho menos carga de trabajo que hacer en el dispositivo». Han explica.
Una aceleración exitosa
Su optimización solo requirió 157 kilobytes de memoria para entrenar un modelo de aprendizaje automático en un microcontrolador, mientras que otras técnicas diseñadas para entrenamiento ligero todavía necesitarían entre 300 y 600 megabytes.
Probaron su marco entrenando un modelo de visión por computadora para detectar personas en imágenes. Después de solo 10 minutos de entrenamiento, aprendió a completar la tarea con éxito. Su método pudo entrenar un modelo más de 20 veces más rápido que otros enfoques.
Ahora que han demostrado el éxito de estas técnicas para modelos de visión artificial, los investigadores quieren aplicarlas a modelos de lenguaje y diferentes tipos de datos, como datos de series temporales. Al mismo tiempo, quieren usar lo que han aprendido para reducir el tamaño de los modelos más grandes sin sacrificar la precisión, lo que podría ayudar a reducir la huella de carbono del entrenamiento de modelos de aprendizaje automático a gran escala.
Este trabajo está financiado por la National Science Foundation, el MIT-IBM Watson AI Lab, el MIT AI Hardware Program, Amazon, Intel, Qualcomm, Ford Motor Company y Google.