La IA ahora puede entrenar en pequeñas computadoras de 4 bits


Como funcionan los bits

Probablemente hayas oído hablar de que las computadoras almacenan cosas en ellas 1sy 0s. Estos datos básicos se conocen como Bits. Cuando un bit está «activado», corresponde a un 1;; Cuando está apagado, se convierte en un 0. En otras palabras, cada bit solo puede almacenar dos piezas de información.

Sin embargo, una vez que los encadena, 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, 10y 11. Cuatro bits pueden representar 2 ^ 4 o 16 piezas de información. Ocho bits pueden representar 2 ^ 8 o 256. Y así.

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. Esto no significa que la computadora solo pueda codificar 2 ^ 32 o 2 ^ 64 piezas de información en total. (Sería una computadora muy débil). Esto significa que puede usar muchos bits de complejidad para codificar cada elemento de datos u operación.

Aprendizaje profundo de 4 bits

¿Qué significa el entrenamiento de 4 bits? En primer lugar, tenemos una computadora de 4 bits y, por lo tanto, una complejidad de 4 bits. Una forma de pensarlo: cada número que usamos durante el ejercicio tiene que ser uno de 16 enteros entre -8 y 7, ya que estos son los únicos números que nuestra computadora puede representar. Esto se aplica a los puntos de datos que alimentamos a la red neuronal, los números que usamos para representar la red neuronal y los números intermedios que necesitamos almacenar durante el entrenamiento.

¿Cómo lo haremos? Primero, pensemos en los datos de entrenamiento. Imagina que es un montón de imágenes en blanco y negro. Paso uno: necesitamos convertir estas imágenes en números para que la computadora pueda entenderlas. Para hacer esto, trazamos cada píxel en términos de su valor de nivel de gris: 0 para negro, 1 para blanco y los lugares decimales entre los niveles de gris. Nuestra imagen ahora es una lista de números en el rango de 0 a 1. Sin embargo, en la tierra de 4 bits, debe estar en el rango de -8 a 7. El truco aquí es escalar linealmente nuestra lista de números para que 0 se convierta en -8 y 1 se convierta en 7, y los lugares decimales se mapeen a los números enteros en el medio. A fin de que:

Puede escalar su lista de números de 0 a 1, estirándola entre -8 y 7, luego redondear todos los lugares decimales a un número entero.

Este proceso no es perfecto. Por ejemplo, si comienza con el número 0.3, obtiene el número escalado -3.5. Sin embargo, nuestros cuatro bits solo pueden representar números enteros, por lo que deberá redondear -3,5 a -4. Terminas perdiendo algunos de los grises o los llamados precisiónen tu foto. Puedes ver cómo se ve en la imagen de abajo.

Cuanto menor sea el número de bits, menos detalles habrá en la foto. Esto se llama pérdida de precisión.

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

Una red neuronal.

A menudo vemos las redes neuronales como algo dibujado con nodos y conexiones, como en la imagen de arriba. Sin embargo, para una computadora, estos también se convierten en una serie de números. Cada nudo tiene un llamado activación Valor, generalmente entre 0 y 1, y cada conexión tiene una Pesoque suele estar en el rango de -1 a 1.

Podríamos escalarlos de la misma manera que con nuestros píxeles, pero las activaciones y los pesos también cambian con cada ronda de entrenamiento. Por ejemplo, las activaciones a veces oscilan entre 0,2 y 0,9 en una ronda y entre 0,1 y 0,7 en otra. Por lo tanto, el grupo de IBM encontró un nuevo truco en 2018: estas áreas deben escalarse entre -8 y 7 en cada ronda (ver más abajo), lo que efectivamente evita que se pierda demasiada precisión.

Los investigadores de IBM cambian la escala de 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 última pieza: Cómo representar los valores intermedios que ocurren durante el entrenamiento en cuatro bits. El desafío es que estos valores pueden abarcar varios órdenes de magnitud, a diferencia de los números que usamos para nuestras imágenes, pesos y activaciones. Pueden ser pequeños, como 0,001, o enormes, como 1000. Tratar de escalar esto linealmente de -8 a 7 pierde toda la granularidad en el extremo diminuto de la escala.

La escala lineal de números que abarcan varios órdenes de magnitud pierde toda la granularidad en el extremo diminuto de la escala. Como puede ver aquí, todos los números menores a 100 se escalan a -8 o -7. La falta de precisión afectaría el rendimiento final del modelo de IA.

Después de dos años de investigación, los investigadores finalmente han resuelto el enigma: toman prestada una idea existente de otros y escalan estos números provisionales. logarítmico. Para ver lo que quiero decir, a continuación se muestra una escala logarítmica que puede reconocer, con lo que se llama una «base» de 10, usando solo cuatro bits de complejidad. (Los investigadores usan una base de 4 en su lugar, ya que la prueba y el error han demostrado que esto funciona mejor). Puede ver cómo se puede usar para codificar números pequeños y grandes dentro de las restricciones de bits.

Una escala logarítmica con base 10.

Con todas estas partes, este último artículo muestra cómo se unen. Los investigadores de IBM están llevando a cabo varios experimentos que simulan el entrenamiento de 4 bits para una variedad de modelos de aprendizaje profundo en los campos de la visión por computadora, el habla y el procesamiento del 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 siete veces más rápido y siete veces más eficiente energéticamente.

Trabajo futuro

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *