Los investigadores del Instituto Tecnológico de Massachussets (MIT) y del MIT-IBM Watson AI Lab han desarrollado una nueva técnica que permite el entrenamiento de un modelo de aprendizaje automático en el propio dispositivo de borde inteligente utilizando menos de un cuarto de megabyte de memoria.
Entrenar un modelo de aprendizaje automático en un dispositivo de borde inteligente, como los sensores, le permite adaptarse a nuevos datos y hacer mejores predicciones. 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.
Gracias a los algoritmos inteligentes y el marco desarrollados por los investigadores, se puede reducir la cantidad de cómputo requerida para entrenar un modelo, lo que hace que el proceso sea más rápido y 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.
Soluciones algorítmicas de aprendizaje
Un tipo común de modelo de aprendizaje automático es la red neuronal. Este 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 en cada ronda, requiriendo mucha memoria para ejecutar un modelo previamente entrenado.
Los investigadores 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 de uno en uno hasta que ve que la precisión cae a un umbral establecido, y se detiene. Los pesos restantes se actualizan, mientras que las activaciones correspondientes a los pesos congelados no necesitan almacenarse en memoria.
La 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 8 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.
Posteriormente, 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.
Uso de un microcontrolador simple
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. Su optimización solo requirió 157 kilobytes de memoria para entrenar un modelo de aprendizaje automático en un microcontrolador.
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 20 veces más rápido que otros enfoques.