[ad_1]
Los modelos personalizados de aprendizaje profundo pueden habilitar chatbots de inteligencia artificial que se adaptan para comprender el acento de un usuario, o teclados inteligentes que se actualizan continuamente para predecir mejor la siguiente palabra según el historial de escritura de una persona. Esta adaptación requiere un ajuste constante de un modelo de aprendizaje automático con nuevos datos.
Debido a que los teléfonos inteligentes y otros dispositivos periféricos carecen de la memoria y la potencia de procesamiento necesarias para este proceso de ajuste, los datos del usuario generalmente se cargan en servidores en la nube donde se actualiza el modelo. Pero la transmisión de datos consume mucha energía y transmitir datos confidenciales del usuario a un servidor en la nube representa un riesgo para la seguridad.
Investigadores del MIT, el MIT-IBM Watson AI Lab y otros lugares han desarrollado una técnica que permite que los modelos de aprendizaje profundo se adapten de manera eficiente a nuevos datos de sensores directamente en un dispositivo de borde.
Su método de entrenamiento en el dispositivo, llamado PockEngine, determina qué partes de un enorme modelo de aprendizaje automático deben actualizarse para mejorar la precisión y almacena y calcula solo esas partes específicas. La mayoría de estos cálculos se realizan durante la preparación del modelo antes del tiempo de ejecución, lo que minimiza el esfuerzo computacional y aumenta la velocidad del proceso de ajuste.
En comparación con otros métodos, PockEngine aceleró significativamente el entrenamiento en el dispositivo y fue hasta 15 veces más rápido en algunas plataformas de hardware. Además, PockEngine no provocó ninguna pérdida en la precisión de los modelos. Los investigadores también descubrieron que su método de ajuste permitió que un popular chatbot de IA respondiera preguntas complejas con mayor precisión.
“El ajuste en el dispositivo puede permitir una mayor privacidad, menores costos, personalización y también aprendizaje permanente, pero no es fácil. Todo debe hacerse con un número limitado de recursos. Queremos poder ejecutar no solo inferencia sino también entrenamiento en un dispositivo de borde. Con PockEngine, esto ahora es posible”, dice Song Han, profesor asociado en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación (EECS), miembro del Laboratorio de IA Watson del MIT-IBM, científico distinguido de NVIDIA y autor principal de un artículo de acceso abierto. papel, describe PockEngine.
A Han se une en el artículo el autor principal Ligeng Zhu, un estudiante graduado de EECS, así como otros del MIT, el Laboratorio de IA Watson del MIT-IBM y la Universidad de California en San Diego. El artículo se presentó recientemente en el Simposio Internacional sobre Microarquitectura IEEE/ACM.
Turno tras turno
Los modelos de aprendizaje profundo se basan en redes neuronales, que constan de muchas capas interconectadas de nodos o «neuronas» que procesan datos para hacer una predicción. Cuando se ejecuta el modelo, se produce un proceso llamado inferencia, una entrada de datos (por ejemplo, una imagen) se pasa de una capa a otra hasta que la predicción (quizás la etiqueta de la imagen) se genera al final. Durante la inferencia, ya no es necesario guardar cada capa después de procesar la entrada.
Sin embargo, durante el entrenamiento y el ajuste, el modelo pasa por un proceso llamado retropropagación. La retropropagación implica comparar el resultado con la respuesta correcta y luego ejecutar el modelo a la inversa. Cada nivel se actualiza a medida que el resultado del modelo se acerca a la respuesta correcta.
Debido a que es posible que sea necesario actualizar cada capa, se debe almacenar todo el modelo y los resultados intermedios, lo que hace que el ajuste fino requiera más memoria que la inferencia.
Sin embargo, no todas las capas de la red neuronal son importantes para mejorar la precisión. E incluso para capas importantes, es posible que no sea necesario actualizar toda la capa. No es necesario guardar estas capas y partes de capas. Además, es posible que no sea necesario volver al primer nivel para mejorar la precisión: el proceso podría detenerse en algún punto intermedio.
PockEngine aprovecha estos factores para acelerar el proceso de ajuste y reducir los requisitos computacionales y de almacenamiento.
El sistema primero ajusta cada turno individualmente para una tarea específica y mide la mejora en la precisión después de cada turno individual. De esta manera, PockEngine identifica la contribución de cada capa, así como las compensaciones entre precisión y costo de ajuste, y determina automáticamente el porcentaje de cada capa que necesita ajuste.
«Este método se corresponde muy bien en términos de precisión en comparación con la propagación hacia atrás en diferentes tareas y diferentes redes neuronales», añade Han.
Un modelo reducido
Tradicionalmente, el gráfico de retropropagación se genera en tiempo de ejecución, lo que requiere mucho esfuerzo computacional. En cambio, PockEngine hace esto en tiempo de compilación mientras prepara el modelo para su implementación.
PockEngine elimina fragmentos de código para eliminar capas o partes de capas innecesarias, creando un gráfico reducido del modelo que se puede utilizar en tiempo de ejecución. Luego realiza más optimizaciones en este gráfico para mejorar aún más la eficiencia.
Dado que todo esto sólo debe hacerse una vez, el esfuerzo computacional se ahorra en tiempo de ejecución.
“Es como antes de una excursión a pie. En casa, deberías planificar cuidadosamente qué caminos tomarás y cuáles ignorarás. Cuando realmente caminas, cuando lo haces ya tienes un plan muy cuidadoso a seguir”, explica Han.
Cuando aplicaron PockEngine a modelos de aprendizaje profundo en varios dispositivos de vanguardia, incluidos los chips Apple M1 y los procesadores de señales digitales comunes en muchos teléfonos inteligentes y computadoras Raspberry Pi, el entrenamiento en el dispositivo se pudo realizar hasta 15 veces más rápido sin sacrificar la precisión. PockEngine también ha reducido significativamente la cantidad de memoria necesaria para realizar ajustes.
El equipo también aplicó la técnica al modelo de lenguaje grande Llama-V2. Para modelos de lenguaje grandes, el proceso de ajuste implica proporcionar muchos ejemplos, y es fundamental que el modelo aprenda a interactuar con los usuarios, afirma Han. El proceso también es importante para los modelos cuyo trabajo es resolver problemas complejos o pensar en soluciones.
Por ejemplo, los modelos Llama V2 refinados con PockEngine respondieron correctamente a la pregunta «¿Cuál fue el último álbum de Michael Jackson?», mientras que los modelos que no fueron afinados fallaron. PockEngine redujo el tiempo necesario para cada iteración del proceso de ajuste de unos siete segundos a menos de un segundo en una NVIDIA Jetson Orin, una plataforma GPU de vanguardia.
En el futuro, los investigadores quieren utilizar PockEngine para perfeccionar modelos aún más grandes que procesarán texto e imágenes juntos.
“Este trabajo aborda los crecientes desafíos de eficiencia que surgen de la adopción de grandes modelos de IA, como los LLM, en diversas aplicaciones en muchas industrias diferentes. «Es prometedor no sólo para las aplicaciones de borde que integran modelos más grandes, sino también para reducir el costo de mantener y actualizar grandes modelos de IA en la nube», dice Ehry MacRostie, gerente senior de Inteligencia General Artificial en Amazon, que no participó. En esto, está estudiando pero colabora con el MIT en investigaciones relacionadas con la IA a través del MIT-Amazon Science Hub.
Este trabajo fue apoyado en parte por el MIT-IBM Watson AI Lab, el MIT AI Hardware Program, el MIT-Amazon Science Hub, la National Science Foundation (NSF) y la Qualcomm Innovation Fellowship.
[ad_2]