UltraFastBERT Modelado de lenguaje exponencialmente más rápido

UltraFastBERT Un modelo de modelado de lenguaje exponencialmente más rápido

Los modelos de lenguaje y la IA generativa, reconocidos por sus capacidades, son un tema candente en la industria de la IA. Los investigadores de todo el mundo están mejorando su eficacia y capacidad. Estos sistemas, típicamente modelos de aprendizaje profundo, están pre-entrenados en extensos datos etiquetados, incorporando redes neuronales para la autoatención. Utilizan varias capas, como feedforward, recurrentes, incrustadas y de atención, para procesar el texto de entrada y producir salidas relevantes.

En su mayoría, las capas de feedforward de los modelos de lenguaje grandes contienen la mayoría de los parámetros. Los estudios muestran que estos modelos solo utilizan una fracción de las neuronas disponibles para el cálculo de la salida durante la inferencia.

Este artículo presenta UltraFastBERT, un marco basado en BERT que iguala la eficacia de los principales modelos BERT, pero utilizando solo el 0,3% de las neuronas durante la inferencia, específicamente 12 de 4095 en cada capa. Exploraremos la arquitectura, funcionalidad y resultados de UltraFastBERT. Comencemos.

UltraFastBERT: Una introducción a la modelación de lenguaje exponencialmente más rápida

Tradicionalmente, un modelo de lenguaje emplea diferentes componentes para dotarse de capacidades de generación de contenido, incluyendo capas feedforward, capas recurrentes, capas incrustadas y capas de atención. Estos componentes se encargan de aprender a reconocer patrones durante el entrenamiento y, finalmente, generar una salida precisa en función de los textos de entrada. Cada uno de estos componentes tiene algunos parámetros, y en los modelos de lenguaje, la mayoría de estos parámetros son mantenidos por las capas feedforward. Sin embargo, estas capas feedforward no utilizan el 100% de las neuronas disponibles para generar la salida en cada entrada durante el tiempo de inferencia, lo que lleva a un desperdicio de recursos que aumenta la complejidad, el tiempo de computación y los costos computacionales.

En su núcleo, el marco UltraFastBERT es una variante del marco BERT, que se basa en este concepto y reemplaza las capas feedforward por redes feedforward más rápidas en su arquitectura, lo que resulta en que el marco UltraFastBERT utilice solo el 0,3% de las neuronas disponibles mientras proporciona resultados comparables a los modelos BERT con un tamaño y proceso de entrenamiento similares, especialmente en las tareas posteriores. Debido a sus implementaciones de diseño, las capas intermedias en el marco UltraFastBERT son exponencialmente más rápidas.

Dada una red de feedforward rápida (FFF) y una red feedforward (FF), cada una con n número de neuronas, la complejidad temporal de un pase hacia adelante en una red feedforward es O(n), mientras que la complejidad temporal es O(log2n) para una red feedforward rápida. La diferencia en la complejidad temporal se debe principalmente al hecho de que en una red feedforward rápida, las neuronas se organizan en un árbol binario equilibrado, y cuando se proporciona la entrada, la red ejecuta solo una rama del árbol condicionalmente. Además, realizar la inferencia en una red feedforward rápida resulta en CMM o Multiplicación de Matriz Condicional, en la cual las filas de entrada se multiplican punto por punto con las columnas de peso naturales individualmente, y la salida de la operación de producto punto anterior determina el peso de las columnas a proceder. Como resultado, la red utiliza todas las neuronas solo para unos pocos datos de entrada, y ninguna entrada requiere más de unas pocas neuronas para ser procesada por la red. La multiplicación de matrices condicional CMM contrasta con la multiplicación de matrices densas DMM, que calcula el producto punto de todas las entradas con todas las columnas de peso.

En resumen, UltraFastBERT es un marco basado en BERT que proporciona resultados comparables a los modelos de lenguaje BERT más avanzados que:

  1. Utilizan solo el 0,3% de las neuronas disponibles durante la etapa de inferencia y utilizan solo 12 neuronas de un total de 4095 neuronas para cada capa de inferencia.
  2. Ofrecen un rendimiento sólido comparable a los modelos BERT más avanzados mediante la implementación de estrategias de afinación fina en tareas posteriores.
  3. Proporcionan una implementación nativa de la CMM o Multiplicación de Matriz Condicional que forma la base de la red feedforward rápida, y en última instancia, proporciona una aceleración del rendimiento de 78 veces en comparación con la multiplicación de matrices densas optimizada nativamente.

Redes Neuronales de Feed Forward

Una red neuronal de feedforward es una de las redes neuronales artificiales más simples que mueve la información solo en dirección hacia adelante, desde los nodos de entrada hasta los nodos de salida pasando por los nodos ocultos. Uno de los principales puntos destacados de una red neuronal de feedforward rápida es que no hay bucles ni ciclos en dichas redes, y son más fáciles de construir en comparación con las RNN o Redes Neuronales Recurrentes y las CNN o Redes Neuronales Convolucionales. La arquitectura de una red neuronal de feedforward rápida consta de tres componentes: capas de entrada, capas ocultas y capas de salida, y cada capa consta de unidades llamadas neuronas, y cada capa está interconectada con las demás con la ayuda de pesos.

Las neuronas presentes en las capas de entrada reciben entradas y las envían a la siguiente capa. La cantidad de neuronas en cada capa de entrada se determina por la dimensión de los datos de entrada. A continuación, tenemos las capas ocultas que no están expuestas ni a la entrada ni a la salida, y son responsables de las operaciones necesarias. Las neuronas en cada capa oculta toman la suma ponderada de las salidas dadas por la capa anterior, aplican una función de activación y pasan el resultado a la siguiente capa, y el proceso se repite una y otra vez. Finalmente, tenemos la capa de salida que produce la salida para las entradas dadas. Cada neurona en cada capa de una red neuronal de avance rápido está interconectada con cada neurona en la siguiente capa, lo que hace que las redes neuronales FFF sean una red completamente conectada. Se utilizan pesos para representar la fuerza de conexión entre las neuronas, y la red actualiza estos pesos para aprender los patrones mediante la actualización de los pesos en función del error que ocurre en la salida.

Avanzando, hay dos etapas clave en el funcionamiento de una red neuronal de avance rápido: la fase de avance y la fase de retropropagación.

Fase de Avance

En la fase de avance, se envía la entrada a la red y luego se propaga hacia adelante. Las capas ocultas luego calculan la suma ponderada de las entradas e introducen la no linealidad en el modelo al pasar la suma de las entradas a través de una función de activación como ReLu, Sigmoid y TanH. El proceso se repite una y otra vez hasta que los pesos lleguen a la capa de salida y el modelo haga una predicción.

Fase de Retropropagación

Una vez que el modelo realiza una predicción, calcula el error entre la salida generada y la salida esperada. Luego, el error se propaga hacia atrás a través de la red y la red utiliza un algoritmo de optimización de descenso de gradiente para ajustar los pesos en un intento de minimizar el error.

UltraFastBERT: Arquitectura y Funcionamiento del Modelo

El marco de UltraFastBERT se basa en la arquitectura de crammedBERT, y el marco de UltraFastBERT utiliza todos los componentes del marco de crammedBERT excepto la naturaleza de las capas intermedias. En su lugar, el marco de UltraFastBERT reemplaza el codificador de transformador en las redes de avance rápido contenidas en las capas intermedias del marco de crammedBERT con redes de avance rápido. El marco de UltraFastBERT realiza los siguientes cambios en las redes de avance rápido originales.

  1. El marco elimina la diferencia entre nodos hoja y no hoja mediante el uso de la función de activación GeLu en todos los nodos y equipa estos nodos con pesos de salida, eliminando por completo los sesgos de salida. Después de esto, el marco fija el tamaño de la hoja en 1.
  2. Finalmente, el marco permite múltiples árboles de redes de avance rápido en paralelo al calcular conjuntamente las capas de salida intermedias. El marco logra realizar este cálculo tomando una suma de árboles individuales y luego presenta la suma como la capa de salida intermedia.

Avanzando en el entrenamiento, el marco de UltraFastBERT sigue el procedimiento de entrenamiento utilizado por el marco de crammedBERT que incluye desactivar la eliminación aleatoria en la preentrenamiento y utilizar el programa de aprendizaje triangular de 1 ciclo. Luego, el modelo se ajusta para maximizar su rendimiento en una amplia variedad de tareas, principalmente en el referente GLUE, durante un total de 5 épocas.

Interferencia

La interferencia es una parte importante para una red de avance rápido, y estas redes de avance rápido en sí mismas forman una parte importante de los modelos de lenguaje grandes, y son conocidas por su gran potencial de aceleración. Para comprender este potencial de aceleración, tomemos como ejemplo uno de los modelos de lenguaje más avanzados, el GPT-3, en el que las redes de avance rápido en cada capa de transformador consisten en más de 49,100 neuronas. Si fuera entrenable, una red de avance rápido (con una profundidad máxima de 15) podría reemplazar la red de avance original. La red de avance rápido introducida tendría más de 65,000 neuronas, pero solo utilizará 16 de estas neuronas para la interferencia, lo que equivale aproximadamente al 0.03% de las neuronas disponibles para el GPT-3.

Algoritmo y Compatibilidad

El marco UltraFastBERT utiliza un algoritmo de pseudocódigo recursivo para una interferencia de alimentación rápida, y el algoritmo se representa en la imagen a continuación.

Aquí, B representa el tamaño del lote, H representa el ancho de las capas de entrada y M representa columnas. Otra causa importante de preocupación con el uso de un enfoque de multiplicación de matrices computacionales es si hace que las redes de alimentación rápida sean incompatibles con el proceso que ya se está utilizando para la multiplicación de matrices densas y los marcos existentes de aprendizaje profundo. Afortunadamente, el uso de CMM no afecta el rendimiento ni introduce incompatibilidad, aunque aumenta la complejidad de la caché.

Es importante tener en cuenta que, como parte de la red de alimentación rápida, la multiplicación de matrices densas de un solo subproceso se basa en ejecutar las instrucciones MAC o multiplicación y acumulación, y como resultado, reemplazar el enfoque DMM con CMM beneficiará a las CPU porque se necesitan menos instrucciones MAC para calcular la salida de la capa por elemento. Por lo tanto, a pesar de emplear una condicionalidad que generalmente se asocia con las ramificaciones, la “ramificación neuronal” actúa como una adición al desplazamiento de memoria a los punteros relevantes en el marco. Por lo tanto, en el marco UltraFastBERT, la predicción de ramificación de instrucciones nunca está completamente comprometida para facilitar la condicionalidad del CMM, y solo carga las columnas relevantes de la matriz de pesos individualmente. Además, a medida que el marco realiza productos de punto de fila-columna, SIMD o procesamiento vectorial múltiple de una sola instrucción sigue siendo una buena opción para acelerar las implementaciones de interferencia para dispositivos específicos.

UltraFastBERT: rendimiento y resultados

Hablaremos sobre el rendimiento del marco UltraFastBERT tanto para el ajuste fino como para las tareas de interferencia para analizar cómo se desempeña el marco en comparación con los modelos de lenguaje de última generación.

Resultados de ajuste fino

La siguiente figura muestra el rendimiento de varios modelos en conjuntos de prueba GLUE-dev. Aquí, N representa el número de neuronas disponibles para los marcos para el entrenamiento, “Avg” representa la puntuación promedio de todas las tareas.

Como se puede ver claramente, el marco UltraFastBERT que se ha entrenado en la GPU A6000 durante más de 24 horas logra retener casi el 96% del rendimiento predictivo en tareas secundarias de GLUE en comparación con el marco original de BERT. Además, también se puede observar que con un aumento en la profundidad de las redes de alimentación rápida, el rendimiento de los marcos disminuye, aunque la mayoría de la degradación del rendimiento ocurre solo para la tarea CoLa. Si se ignora la tarea CoLa durante un tiempo, el marco UltraFastBERT devuelve una puntuación de rendimiento predictiva de aproximadamente el 98,6%.

Resultados de interferencia

En esta sección, compararemos el rendimiento de varias redes de alimentación o redes de alimentación rápida en implementaciones de interferencia, y estas implementaciones se distribuyen en tres niveles.

  1. En la implementación de Nivel 1, la implementación se construye utilizando rutinas de BLAS de Nivel 1, es decir, producto escalar-vector y productos de puntos vector-vector.
  2. En el Nivel 2, las implementaciones utilizan rutinas de BLAS de Nivel 2, a saber, producto escalar-vector por lotes y productos de puntos matriz-vector por lotes.
  3. En el Nivel 3, las implementaciones utilizan el enfoque de multiplicación de matrices BLAS de Nivel 3 no agrupado y, aunque es la implementación más rápida disponible para las redes de alimentación, dichas implementaciones no están disponibles para las redes de alimentación rápida porque la biblioteca no admite la dispersión a nivel de vector de la multiplicación de matrices computacionales.

Además, el marco UltraFastBERT implementa implementaciones de GPU utilizando núcleos personalizados de CUDA o PyTorch.

La tabla anterior compara el rendimiento del marco UltraFastBERT con sus predecesores, los marcos basados en BERT en términos de capas de alimentación y alimentación rápida, donde cada columna contiene las aceleraciones de velocidad de implementación de alimentación rápida relativas a la alimentación cuando se utilizan las mismas rutinas primitivas de álgebra lineal.

Sin embargo, cabe destacar que las mejoras de velocidad informadas en la tabla anterior están destinadas a “comparaciones justas”, es decir, tanto las implementaciones de alimentación rápida como las de alimentación utilizan las mismas operaciones primitivas de rutina de álgebra lineal idénticas. Además, en el Nivel 1 y en el Nivel 2, las implementaciones de las redes de alimentación rápida son capaces de realizar la interferencia 48 veces y 78 veces más rápido que la implementación de alimentación más rápida, respectivamente.

Pensamientos finales

En este artículo, hemos hablado sobre el UltraFastBERT, una variante del marco BERT, que se basa en el concepto de que las capas de feedforward no utilizan el 100% de las neuronas disponibles para generar la salida para cada entrada en el tiempo de interferencia, lo que lleva a un desperdicio de recursos que aumenta la complejidad, el tiempo de cálculo y los costos computacionales. El UltraFastBERT reemplaza las capas de feedforward con redes de feedforward más rápidas en su arquitectura, lo que finalmente resulta en el marco UltraFastBERT utilizando solo el 0.3% de las neuronas disponibles mientras entrega resultados comparables a modelos BERT de un tamaño y proceso de entrenamiento similar, especialmente en tareas posteriores.

Debido a sus implementaciones de diseño, las capas intermedias en el marco UltraFastBERT son exponencialmente más rápidas. Además, el rendimiento sólido entregado por el marco UltraFastBERT es una prueba de que LLMs pueden ofrecer un rendimiento sólido al utilizar solo una fracción de sus parámetros para interferencias individuales, ya que el marco UltraFastBERT utiliza solo el 0.3% de las neuronas disponibles durante la interferencia y aún logra una aceleración de 78 veces en los tiempos de interferencia.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Los Anunciantes más Grandes del Mundo Aceptan el Poder de la IA Un Cambio de Paradigma en la Publicidad

En un movimiento que podría remodelar el panorama publicitario, algunos de los anunciantes más renombrados del mundo ...

Inteligencia Artificial

Los camareros robots chinos alimentan la ansiedad coreana sobre la escasez de mano de obra

Los surcoreanos están ansiosos por la llegada de una oleada de camareros robots chinos baratos debido a la escasez de...

Inteligencia Artificial

AI diseña un nuevo robot desde cero en segundos

Un equipo de investigación liderado por científicos de la Universidad Northwestern creó una inteligencia artificial c...

Noticias de Inteligencia Artificial

Productores de alimentos se unen frente a amenazas cibernéticas.

Los ejecutivos de empresas de alimentos y agricultura de EE. UU. dicen que están formalizando colaborativamente el in...

Inteligencia Artificial

A pesar de los temores de trampas, las escuelas revocan las prohibiciones de ChatGPT

Algunos distritos que antes se apresuraban a bloquear los chatbots de inteligencia artificial ahora están tratando de...

Inteligencia Artificial

El cucaracha cibernético puede navegar por un laberinto

Los investigadores han desarrollado un método para crear cucarachas ciborg para ser utilizadas en misiones de búsqued...