El lenguaje humano puede ser ineficaz. Algunas palabras son vitales. Otras, prescindibles.
Releemos la primera frase. Solo dos palabras, “lenguaje” e “ineficaz”, transmiten casi todo el significado de la oración. La importancia de las palabras claves está en una nueva herramienta para el procesamiento del lenguaje natural (PLN) por ordenadores: el mecanismo de atención. Cuando este mecanismo está incluido en un algoritmo de PLN más amplio, no trata todas las palabras con la misma importancia – se concentra en las palabras claves. Esto permite obtener mejores resultados en las tareas de PLN como la detección de los sentimientos positivos o negativos o la predicción de que palabra tiene que ser la siguiente en la frase.
Normalmente al usar este mecanismo pagamos por su eficiencia con la velocidad y la potencia informática. Los investigadores de MIT (Instituto Tecnológico de Massachusetts) han diseñado SpAtten – un sistema software-hardware combinado. Este sistema está especializado en la ejecución del mecanismo de atención y permite un PLN más optimizado con menos potencia informática.
«Nuestro sistema es similar al procesamiento del lenguaje por el cerebro humano», dice Hanrui Wang. «Nosotros leemos muy rápido y solo nos centramos en las palabras claves. Esa es la idea de SpAtten».
La investigación ha sido presentada en el Simposio Internacional IEEE sobre la Arquitectura de Computadoras de Alto Rendimiento (the IEEE International Symposium on High-Performance Computer Architecture). Wang es el autor principal del artículo y estudiante de Doctorado en el Departamento de la Ingeniería Eléctrica e Informática. Los coautores son Zhekai Zhang, su asesor y el profesor asistente Song Han.
Desde que se ha introducido en 2015, el mecanismo de atención ha sido una bendición para el PLN. Está integrado en los modelos de PLN de última generación como BERT de Google y GPT-3 de OpenAI. La innovación clave de este mecanismo es la selectividad – puede inferir qué palabras o frases de una oración son más importantes, basado en comparaciones con patrones de palabras encontrados por el algoritmo durante la fase de entrenamiento.
El mecanismo de atención en los modelos de PLN a pesar de la rápida integración, tiene su coste. Los modelos de PLN necesitan una gran carga de poder informático, debido a los altos requerimientos de memoria para el mecanismo de atención. Los investigadores señalan, que hace falta hardware especializado para ejecutar los modelos de PLN con el mecanismo de atención. Y en cuanto los modelos de PLN se vuelvan más complejos el problema empeorará.
SpAtten ayuda a ejecutar el mecanismo de atención de una manera más eficaz. Su diseño abarca tanto software como hardware especializados. Un avance clave del software es el uso que hace SpAtten de “poda en cascada” (“cascade pruning”), que consiste en la eliminación de los datos de los cálculos innecesarios.
La poda en cascada de los tokens y cabezas sin importancia sobre la marcha. Fuente: Hanrui Wang, Zhekai Zhang, Song Han «SpAtten: Efficient Sparse Attention Architecture with Cascade Token and Head Pruning»
Cuando el mecanismo de atención ayuda a elegir las palabras claves de la frase (“los tokens”), SpAtten poda (elimina) los tokens que no son importantes y elimina por tanto las computaciones y movimientos de datos correspondientes. El mecanismo de atención también incluye múltiples ramas computacionales (“las cabezas”). Parecidas a los tokens, las cabezas que no son importantes se identifican y se podan. Una vez enviados, estos tokens y cabezas no se tienen en cuenta en los cálculos posteriores del algoritmo, lo que reduce tanto la carga computacional como el acceso a la memoria.
Para recortar aún más el uso de la memoria, los investigadores desarrollaron una técnica llamada “cuantificación progresiva” (“progressive quantization”). El método permite al algoritmo manejar los datos en trozos de ancho de bits más pequeños y extraer la menor cantidad posible de la memoria. Se usa una precisión de datos más baja correspondiente a un ancho de bits más pequeño para oraciones simples y una precisión más alta para las oraciones complicadas. Es parecido a la búsqueda de la frase “progm cmptr” como la versión de baja precisión de “programa de computadora”.
Junto con estos avances de software los investigadores desarrollaron una arquitectura de hardware especializada para ejecutar SpAtten y el mecanismo de atención mientras se minimiza el acceso a la memoria. Su diseño de arquitectura emplea un alto grado de “paralelismo” – varias operaciones se procesan simultáneamente en múltiples elementos de procesamiento lo cual es útil porque el mecanismo de atención analiza cada palabra de una oración a la vez. El diseño permite a SpAtten clasificar la importancia de los tokens y las cabezas (para una posible poda) en una pequeña cantidad de ciclos de reloj del ordenador. En general, los componentes de software y hardware de SpAtten se combinan para eliminar la manipulación de datos innecesaria o ineficiente, enfocándose solo en las tareas necesarias para llegar al objetivo del usuario.
La filosofía detrás del sistema está dentro de su nombre. SpAtten es una abreviación de “sparse attention” (atención escasa) y los investigadores señalan en el artículo que SpAtten es “homofónico con ‘espartano’, que significa simple y frugal”.
Los investigadores codificaron una simulación del diseño de hardware de SpAtten (todavía no han fabricado un chip físico) y lo probaron con procesadores de uso general de la competencia. SpAtten fue 100 veces más rápido que el siguiente mejor competidor (una GPU TITAN Xp). Además, ha sido más de 1.000 veces más eficiente energéticamente en comparación con sus competidores, lo que indica que SpAtten podría ayudar a recortar las importantes demandas de electricidad del PLN.
Los investigadores creen que SpAtten puede ser útil para las empresas que usan los modelos de PLN en la mayoría de sus proyectos de inteligencia artificial. Además, SpAtten podría llevar el PLN a dispositivos personales, mejorando la duración de la batería para los teléfonos móviles o dispositivos de IdC (Internet de las Cosas, “Internet of Things (IoT)”) como televisiones, altavoces inteligentes y otros. «Eso es especialmente importante porque en el futuro numerosos dispositivos de IdC interactuarán con los humanos mediante la voz y el lenguaje natural, por lo que el PLN será la primera aplicación que queremos emplear.»