Diminutas computadoras de cuatro bits ahora son todo lo que necesita para entrenar la IA

mordisco de red neuronal

Ocho bits forman un byte, por lo que cuatro bits se denominan nibble. Los ingenieros informáticos tienen un divertido sentido del humor. Sra. Tecnología | Colección de Bienvenida





El aprendizaje profundo es un cerdo de energía ineficiente . Requiere cantidades masivas de datos y abundantes recursos computacionales, lo que explota su consumo de electricidad. En los últimos años, la tendencia general de la investigación ha empeorado el problema. Los modelos de proporciones gigantescas, entrenados en miles de millones de puntos de datos durante varios días, están de moda y es probable que no desaparezcan pronto.

Algunos investigadores se han apresurado a encontrar nuevas direcciones, como algoritmos que puedan entrenar en menos datos o hardware que puede ejecutar esos algoritmos más rápido . Ahora los investigadores de IBM están proponiendo uno diferente. Su idea reduciría el número de bits, o 1 arena 0 s, necesarios para representar los datos, de 16 bits, el estándar actual de la industria, a solo cuatro.

El trabajo , que se presenta esta semana en NeurIPS, la mayor conferencia anual de investigación de IA, podría aumentar la velocidad y reducir los costos de energía necesarios para entrenar el aprendizaje profundo en más de siete veces. También podría hacer posible el entrenamiento de poderosos modelos de IA en teléfonos inteligentes y otros dispositivos pequeños, lo que mejoraría la privacidad al ayudar a mantener los datos personales en un dispositivo local. Y haría que el proceso fuera más accesible para los investigadores fuera de las grandes empresas tecnológicas ricas en recursos.



Cómo funcionan los bits

Probablemente haya escuchado antes que las computadoras almacenan cosas en 1 arena 0 s. Estas unidades fundamentales de información se conocen como bits . Cuando un bit está activado, se corresponde con un 1 ; cuando está apagado, se convierte en un 0 . Cada bit, en otras palabras, puede almacenar solo dos piezas de información.

Pero una vez que los une, la cantidad de información que puede codificar crece exponencialmente. Dos bits pueden representar cuatro piezas de información porque hay 2^2 combinaciones: 00 , 01 , 10 , y 11 . Cuatro bits pueden representar 2^4 o 16 piezas de información. Ocho bits pueden representar 2^8 o 256. Y así sucesivamente.

La combinación correcta de bits puede representar tipos de datos como números, letras y colores, o tipos de operaciones como suma, resta y comparación. La mayoría de las computadoras portátiles en estos días son computadoras de 32 o 64 bits. Eso no significa que la computadora solo pueda codificar 2 ^ 32 o 2 ^ 64 piezas de información en total. (Esa sería una computadora muy débil). Significa que puede usar esa cantidad de bits de complejidad para codificar cada dato u operación individual.



aprendizaje profundo de 4 bits

Entonces, ¿qué significa el entrenamiento de 4 bits? Bueno, para empezar, tenemos una computadora de 4 bits y, por lo tanto, 4 bits de complejidad. Una forma de pensar en esto: cada número que usamos durante el proceso de entrenamiento tiene que ser uno de los 16 números enteros entre -8 y 7, porque estos son los únicos números que nuestra computadora puede representar. Eso se aplica a los puntos de datos que ingresamos en la red neuronal, los números que usamos para representar la red neuronal y los números intermedios que necesitamos almacenar durante el entrenamiento.

¿Entonces como hacemos esto? Primero pensemos en los datos de entrenamiento. Imagina que es un montón de imágenes en blanco y negro. Paso uno: necesitamos convertir esas imágenes en números, para que la computadora pueda entenderlas. Hacemos esto representando cada píxel en términos de su valor de escala de grises: 0 para negro, 1 para blanco y los decimales intermedios para las sombras de gris. Nuestra imagen ahora es una lista de números que van del 0 al 1. Pero en la tierra de 4 bits, necesitamos que varíe de -8 a 7. El truco aquí es escalar linealmente nuestra lista de números, por lo que 0 se convierte en -8 y 1 se convierte en 7 y los decimales se asignan a los enteros del medio. Entonces:

Puede escalar su lista de números de 0 a 1 para extenderse entre -8 y 7, y luego redondear cualquier decimal a un número entero.



Este proceso no es perfecto. Si comenzaste con el número 0,3, por ejemplo, terminarías con el número escalado -3,5. Pero nuestros cuatro bits solo pueden representar números enteros, por lo que debe redondear -3,5 a -4. Terminas perdiendo algunos de los tonos grises, o los llamados precisión , a tu imagen. Puedes ver cómo se ve eso en la imagen a continuación.

Cuanto menor es el número de bits, menos detalle tiene la foto. Esto es lo que se llama una pérdida de precisión .

Este truco no está nada mal para los datos de entrenamiento. Pero cuando lo aplicamos de nuevo a la propia red neuronal, las cosas se complican un poco más.



Una red neuronal.

A menudo vemos redes neuronales dibujadas como algo con nodos y conexiones, como la imagen de arriba. Pero para una computadora, estos también se convierten en una serie de números. Cada nodo tiene un llamado activación valor, que suele oscilar entre 0 y 1, y cada conexión tiene un peso , que suele oscilar entre -1 y 1.

Podríamos escalarlos de la misma manera que lo hicimos con nuestros píxeles, pero las activaciones y los pesos también cambian con cada ronda de entrenamiento. Por ejemplo, a veces las activaciones oscilan entre 0,2 y 0,9 en una ronda y entre 0,1 y 0,7 en otra. Entonces, el grupo de IBM descubrió un nuevo truco en 2018: reescalar esos rangos para que se extiendan entre -8 y 7 en cada ronda (como se muestra a continuación), lo que efectivamente evita perder demasiada precisión.

Los investigadores de IBM reescalan las activaciones y los pesos en la red neuronal para cada ronda de entrenamiento, para evitar perder demasiada precisión.

Pero luego nos queda una pieza final: cómo representar en cuatro bits los valores intermedios que surgen durante el entrenamiento. Lo desafiante es que estos valores pueden abarcar varios órdenes de magnitud, a diferencia de los números que manejamos para nuestras imágenes, pesos y activaciones. Pueden ser pequeños, como 0,001, o enormes, como 1000. Intentar escalar esto linealmente entre -8 y 7 pierde toda la granularidad en el extremo más pequeño de la escala.

Los números de escala lineal que abarcan varios órdenes de magnitud pierden toda la granularidad en el extremo más pequeño de la escala. Como puede ver aquí, cualquier número menor que 100 se escalaría a -8 o -7. La falta de precisión perjudicaría el rendimiento final del modelo de IA.

Después de dos años de investigación, los investigadores finalmente descifraron el rompecabezas: tomando prestada una idea existente de otros, escalaron estos números intermedios. logarítmicamente . Para ver lo que quiero decir, a continuación hay una escala logarítmica que podría reconocer, con una supuesta base de 10, usando solo cuatro bits de complejidad. (En su lugar, los investigadores usan una base de 4, porque la prueba y el error demostraron que funcionaba mejor). Puede ver cómo le permite codificar números grandes y pequeños dentro de las restricciones de bits.

Una escala logarítmica con base 10.

Con todas estas piezas en su lugar, este último artículo muestra cómo se juntan. Los investigadores de IBM realizan varios experimentos en los que simulan el entrenamiento de 4 bits para una variedad de modelos de aprendizaje profundo en visión por computadora, habla y procesamiento de lenguaje natural. Los resultados muestran una pérdida limitada de precisión en el rendimiento general de los modelos en comparación con el aprendizaje profundo de 16 bits. El proceso también es más de siete veces más rápido y siete veces más eficiente energéticamente.

Trabajo futuro

Todavía hay varios pasos más antes de que el aprendizaje profundo de 4 bits se convierta en una práctica real. El papel solo simula los resultados de este tipo de entrenamiento. Hacerlo en el mundo real requeriría un nuevo hardware de 4 bits. En 2019, IBM Research lanzó un Centro de hardware de IA para acelerar el proceso de desarrollo y producción de dichos equipos. Kailash Gopalakrishnan, miembro de IBM y gerente senior que supervisó este trabajo, dice que espera tener hardware de 4 bits listo para la capacitación de aprendizaje profundo en tres o cuatro años.

Los diminutos modelos de IA podrían sobrecargar la autocorrección y los asistentes de voz en su teléfono

Boris Murmann, profesor de Stanford que no participó en la investigación, dice que los resultados son emocionantes. Este avance abre la puerta a la capacitación en entornos con recursos limitados, dice. No necesariamente haría posibles nuevas aplicaciones, pero haría que las existentes fueran más rápidas y con menos consumo de batería por un buen margen. Apple y Google, por ejemplo, han buscado cada vez más alejar el proceso de entrenamiento de sus modelos de IA, como los sistemas de voz a texto y autocorrección. desde la nube y en los teléfonos de los usuarios . Esto preserva la privacidad de los usuarios al mantener sus datos en su propio teléfono y al mismo tiempo mejorar las capacidades de IA del dispositivo.

Pero Murmann también señala que se necesita hacer más para verificar la solidez de la investigación. En 2016, su grupo publicó un artículo que demostró el entrenamiento de 5 bits. Pero el enfoque no se mantuvo a lo largo de los años. Nuestro enfoque simple fracasó porque las redes neuronales se volvieron mucho más sensibles, dice. Por lo tanto, no está claro si una técnica como esta también sobreviviría la prueba del tiempo.

No obstante, el documento motivará a otras personas a mirar esto con mucho cuidado y estimulará nuevas ideas, dice. Este es un avance muy bienvenido.

esconder