paint-brush
El algoritmo de transformador con la menor complejidad de tiempo óptima posibleby@thomascherickal
702
702

El algoritmo de transformador con la menor complejidad de tiempo óptima posible

micro117m2024/05/26
Read on Terminal Reader

Ha habido algunos avances increíbles en transformadores como DPO, LoRa, etc. ¡Pero también se ha mejorado el algoritmo básico del transformador! Veremos cómo los transformadores funcionan a un nivel completamente nuevo. ¡No se puede sobreestimar la magnitud de estos descubrimientos! Esto es revolucionario.
featured image - El algoritmo de transformador con la menor complejidad de tiempo óptima posible
micro1 HackerNoon profile picture
0-item
1-item


Comparando Atención, Mamba, Jamba y xLSTM

Prólogo

En este artículo solo estamos hablando de la complejidad del tiempo, deliberadamente.


Para conocer la complejidad del espacio, consulte mi artículo sobre transformadores de 1 bit, disponible aquí:

Introducción

Estamos avanzando hacia el futuro en lo que respecta a la tecnología de IA generativa y los algoritmos detrás de los modelos de lenguaje grande no son una excepción. En este artículo, cubriremos tres de los desarrollos más interesantes en el campo de la IA generativa recientemente y hablaremos de ellos en detalle. Uno de ellos también ha logrado la complejidad temporal óptima para ejecutar un algoritmo de modelo de lenguaje grande. En otras palabras, un desarrollo reciente se ha convertido en el algoritmo de transformador LLM más rápido posible: según nuestros modelos actuales, no es posible ir más rápido que eso en lo que respecta a la complejidad del tiempo asintótico, excepto mediante optimizaciones de tiempo constantes. Debido a que estamos tratando con cientos de miles de millones de parámetros, ¡la aceleración de las constantes puede ser bastante grande! Espero que estés tan emocionado como yo porque ¡será un viaje emocionante!


El algoritmo actual: el transformador basado en la atención

Todo el mundo está familiarizado con el documento fundamental Atención es todo lo que necesitas de 2017, pero lo voy a resumir de todos modos para que los recién llegados tengan una idea más clara de lo que estamos hablando.


Este es el enlace al trabajo de investigación:

Atención es todo lo que necesitas

De la introducción del artículo:

Las redes neuronales recurrentes, la memoria a largo plazo y las redes neuronales recurrentes cerradas en particular, se han establecido firmemente como enfoques de última generación en problemas de transducción y modelado de secuencias, como el modelado de lenguajes y la traducción automática.


Desde entonces, numerosos esfuerzos han seguido ampliando los límites de los modelos de lenguaje recurrentes y las arquitecturas de codificador-decodificador.


Los modelos recurrentes suelen factorizar el cálculo según las posiciones de los símbolos de las secuencias de entrada y salida.


Al alinear las posiciones con los pasos en el tiempo de cálculo, generan una secuencia de estados ocultos ℎ𝑡, en función del estado oculto anterior ℎ𝑡−1 y la entrada para la posición 𝑡.


Esta naturaleza inherentemente secuencial impide la paralelización dentro de los ejemplos de entrenamiento, lo que se vuelve crítico en secuencias de mayor longitud, ya que las limitaciones de memoria limitan el procesamiento por lotes entre ejemplos.


Trabajos recientes han logrado mejoras significativas en la eficiencia computacional a través de trucos de factorización y cálculo condicional, al tiempo que mejoran el rendimiento del modelo en el caso de este último.


Sin embargo, persiste la limitación fundamental del cálculo secuencial.


Los mecanismos de atención se han convertido en una parte integral del modelado de secuencias convincentes y los modelos de transducción en diversas tareas, permitiendo modelar dependencias sin tener en cuenta su distancia en las secuencias de entrada o salida.


Sin embargo, en todos los casos, excepto en unos pocos, dichos mecanismos de atención se utilizan junto con una red recurrente.


En este trabajo proponemos el Transformer, una arquitectura modelo que evita la recurrencia y, en cambio, se basa completamente en un mecanismo de atención para dibujar dependencias globales entre entrada y salida.


El Transformer permite una paralelización significativamente mayor y puede alcanzar un nuevo estado del arte en calidad de traducción después de haber sido entrenado durante tan solo doce horas en ocho GPU P100.


Y como sabemos, los transformadores GPT-1, GPT-2, GPT-3 y GPT 3.5 pronto revolucionaron la IA generativa para siempre.


De repente, las máquinas podían hablar un inglés aparentemente humano.


Este fue el diagrama clásico que dominó los artículos y boletines de noticias de investigación durante los dos años siguientes:

La arquitectura transformadora fundamental.


Entonces apareció GPT-4 y la vida nunca volvería a ser la misma.


Habíamos cruzado un punto de inflexión.


Pero estos transformadores eran caros, lentos de entrenar y difíciles de implementar debido a sus costos operativos extremadamente altos.


La complejidad temporal del algoritmo Transformer era cuadrática, u O(n*n), donde n era el número de parámetros de entrada .


Para un modelo de transformador estándar con 𝐿 capas, la complejidad temporal del algoritmo de inferencia es 𝑂( L*n*n*d ) donde L era el número de capas, n el número de tokens de entrada yd la profundidad del transformador .


Esto pareció ser lo último en tecnología... por un tiempo.


La cuantificación se introdujo en otro artículo ya en 2021, y ese parecía ser el próximo mecanismo de última generación (consulte la sección Preludio ).


Pero pronto estábamos a punto de tener otro contendiente.


Bienvenido al algoritmo Mamba

Este fue el trabajo de investigación relevante:



Mamba: modelado de secuencias de tiempo lineal con espacios de estados selectivos


Del resumen del trabajo de investigación:


Los modelos básicos, que ahora impulsan la mayoría de las interesantes aplicaciones de aprendizaje profundo, se basan casi universalmente en la arquitectura Transformer y su módulo de atención central.


Se han desarrollado muchas arquitecturas de tiempo subcuadrático, como atención lineal, convolución cerrada y modelos recurrentes, y modelos de espacio de estados estructurados (SSM), para abordar la ineficiencia computacional de Transformers en secuencias largas, pero no han funcionado tan bien como la atención en modalidades importantes como como lenguaje.


Identificamos que una debilidad clave de dichos modelos es su incapacidad para realizar un razonamiento basado en contenido y realizamos varias mejoras.


Primero, simplemente dejar que los parámetros SSM sean funciones de la entrada soluciona su debilidad con modalidades discretas, permitiendo que el modelo propague u olvide selectivamente información a lo largo de la dimensión de longitud de la secuencia dependiendo del token actual.


En segundo lugar, aunque este cambio impide el uso de convoluciones eficientes, diseñamos un algoritmo paralelo compatible con el hardware en modo recurrente.


Integramos estos SSM selectivos en una arquitectura de red neuronal simplificada de extremo a extremo sin atención ni siquiera bloques MLP (Mamba).


Mamba disfruta de una inferencia rápida (un rendimiento 5 veces mayor que Transformers) y un escalado lineal en la longitud de la secuencia, y su rendimiento mejora en datos reales de secuencias de hasta un millón de longitud.


Como columna vertebral del modelo de secuencia general, Mamba logra un rendimiento de vanguardia en varias modalidades, como lenguaje, audio y genómica.


En el modelado de lenguaje, nuestro modelo Mamba-3B supera a los Transformers del mismo tamaño y coincide con los Transformers del doble de su tamaño, tanto en el preentrenamiento como en la evaluación posterior.

Su De repente



¡De repente tuvimos un nuevo competidor en la ciudad!


Las principales ventajas del algoritmo Mamba-transformer fueron:



  1. Arquitectura híbrida :

    Mamba combinó las capas Transformer y Mamba, lo que permitió un rendimiento mejorado y un mayor rendimiento manteniendo al mismo tiempo una huella de memoria manejable.


  2. Desafíos abordados :

    • Eficiencia de memoria y computación : Mamba abordó los altos requisitos de memoria y computación de Transformers, especialmente para contextos largos.

    • Estado resumido : a diferencia de Transformers, Mamba proporcionó un estado resumido único, lo que permitió una inferencia más rápida.


  3. Detalles de la arquitectura :

    • Capas transformadoras : Mamba incorporó capas transformadoras.
    • Capas Mamba : Mamba introduce capas de modelado de espacio de estado (SSM), que manejan de manera eficiente contextos largos.
    • Mezcla de expertos (MoE) : Mamba utiliza capas MoE para aumentar la capacidad del modelo sin aumentar significativamente los requisitos informáticos.


  4. Actuación :

    Mamba tuvo un rendimiento comparable al de modelos existentes como Mixtral-8x7B y Llama-2 70B, al tiempo que admitía longitudes de contexto de hasta 256 000 tokens.


  5. Eficiencia : el rendimiento de Mamba fue 3 veces mayor que el de Mixtral-8x7B para contextos largos y cabía en una sola GPU incluso en contextos grandes.


La arquitectura Mamba representa un avance significativo en modelos de lenguaje grandes, combinando las fortalezas de los enfoques Transformer y SSM.


Sin embargo, a medida que continuaron las pruebas, se descubrió que el algoritmo Mamba no era un candidato adecuado para todos los casos de uso.


En particular, el algoritmo Mamba falló estrepitosamente cuando se le presentó el conjunto de datos de IMDB.


Sin embargo, la arquitectura todavía era de última generación y se descubrió que era enormemente útil en casos de uso de visión.


Puedes ver una implementación en Python aquí:


Y esta es una excelente explicación del algoritmo Mamba con la teoría también proporcionada.

Y aquí está la implementación estándar de Mamba en PyPI:


El algoritmo Mamba tuvo su época y sigue siendo un área de investigación muy activa. Pronto salió un sucesor, pero dejaremos lo mejor para el final.


Pasaremos al siguiente contendiente: el algoritmo xLSTM


El algoritmo xLSTM

Puede consultar el trabajo de investigación aquí:

xLSTM: Memoria extendida a corto plazo - arXiv .


Del resumen del trabajo de investigación:

En la década de 1990, el carrusel de errores constantes y la activación de puertas se introdujeron como ideas centrales de la memoria a corto plazo (LSTM).


Desde entonces, los LSTM han resistido la prueba del tiempo y han contribuido a numerosas historias de éxito del aprendizaje profundo; en particular, constituyeron los primeros modelos de lenguajes grandes (LLM).


Sin embargo, la llegada de la tecnología Transformer con autoatención paralelizable en su núcleo marcó el comienzo de una nueva era, superando a los LSTM a escala.


Ahora planteamos una pregunta simple: ¿Hasta dónde llegamos en el modelado del lenguaje al escalar LSTM a miles de millones de parámetros, aprovechando las últimas técnicas de los LLM modernos, pero mitigando las limitaciones conocidas de los LSTM?


En primer lugar, introducimos la puerta exponencial con técnicas apropiadas de normalización y estabilización.


En segundo lugar modificamos la estructura de la memoria LSTM, obteniendo:


(i) sLSTM con una memoria escalar, una actualización escalar y una nueva mezcla de memoria,


(ii) mLSTM que es completamente paralelizable con una memoria matricial y una regla de actualización de covarianza.


La integración de estas extensiones LSTM en redes troncales de bloques residuales produce bloques xLSTM que luego se apilan residualmente en arquitecturas xLSTM.


La activación exponencial y las estructuras de memoria modificadas mejoran las capacidades de xLSTM para que funcionen favorablemente en comparación con los transformadores y los modelos de espacio de estado de última generación, tanto en rendimiento como en escalamiento.


xLSTM fue un nuevo amanecer para el modelo LSTM


El algoritmo de memoria a largo plazo (LSTM) fue muy útil en su época y tuvo una buena cantidad de éxitos.


El xLSTM utilizó el mismo modelo pero en una arquitectura completamente diferente.


Esta fue la principal innovación, resumida en este diagrama del trabajo de investigación:


Las principales ventajas del xLSTM fueron:


Ventajas de xLSTM en comparación con el algoritmo Transformer:

  1. Manejo de secuencias largas :

    • xLSTM fue diseñado específicamente para manejar secuencias largas con sus mecanismos de activación que controlaban el flujo de información. Esto lo hizo más efectivo para capturar dependencias a largo plazo en datos secuenciales en comparación con el LSTM tradicional.




  2. Eficiencia computacional :

    • xLSTM podría ser más eficiente desde el punto de vista computacional para determinadas tareas, especialmente cuando se trata de conjuntos de datos más pequeños o cuando la longitud de la secuencia no era excesivamente grande.

    • Los transformadores, por otro lado, requirieron importantes recursos computacionales debido a su mecanismo de autoatención, que escalaba cuadráticamente con la longitud de la secuencia.




  3. Uso de memoria :

    • xLSTM generalmente requería menos memoria que Transformers.

    • El mecanismo de autoatención en Transformers requería almacenar grandes matrices de atención, lo que podía consumir mucha memoria, especialmente para secuencias largas.


  4. Estabilidad del entrenamiento :

    • xLSTM podría ser más estable durante el entrenamiento debido a su naturaleza recurrente y los mecanismos de activación que ayudaron a mitigar el problema del gradiente de desaparición.

    • Los transformadores, aunque potentes, a veces podrían ser más difíciles de entrenar y podrían haber requerido un ajuste cuidadoso de los hiperparámetros y técnicas de regularización.


  5. Simplicidad e interpretabilidad :

    • Los modelos xLSTM podrían ser más sencillos de entender e interpretar en comparación con los Transformers.

    • La naturaleza recurrente de los LSTM hizo que fuera más fácil rastrear el flujo de información a través de la red, mientras que los mecanismos de atención en Transformers podrían ser más abstractos y más difíciles de interpretar.


  6. Rendimiento en pequeños conjuntos de datos :

    • xLSTM podría funcionar mejor en conjuntos de datos pequeños o cuando los datos etiquetados eran limitados.

    • Los transformadores normalmente requerían grandes cantidades de datos para alcanzar su máximo potencial, lo que hace que xLSTM sea una mejor opción en escenarios con disponibilidad de datos limitada.

      .

  7. Datos secuenciales :

    • Para ciertos tipos de datos secuenciales, como series temporales o ciertos tipos de tareas de procesamiento de lenguaje natural, xLSTM podría haber proporcionado un mejor rendimiento debido a su diseño inherente para manejar secuencias.


Sin embargo, era importante señalar que Transformers tenía su propio conjunto de ventajas, como mejores capacidades de paralelización, rendimiento superior en grandes conjuntos de datos y resultados de última generación en muchas tareas de PNL.


La elección entre xLSTM y Transformer debe basarse en los requisitos y limitaciones específicos de la tarea en cuestión.


Puede ver una implementación de xLSTM en PyTorch aquí:


Puede ver una explicación detallada de xLSTM aquí:

Este es un buen resumen de su estado actual:





Pero hubo un sucesor de Mamba que alcanzó el Santo Grial: la complejidad de tiempo óptima para un algoritmo LLM.


Jamba: ¡el sucesor de Mamba que lo venció sin dudas!


El trabajo de investigación se puede encontrar aquí:

Jamba: un modelo de lenguaje híbrido transformador-mamba


Del resumen del artículo de investigación:


Presentamos Jamba, un nuevo modelo básico de lenguaje grande basado en una novedosa arquitectura híbrida de mezcla de expertos (MoE) Transformer-Mamba.


Específicamente, Jamba entrelaza bloques de capas Transformer y Mamba, disfrutando de los beneficios de ambas familias de modelos.


Se agrega MoE en algunas de estas capas para aumentar la capacidad del modelo y al mismo tiempo mantener manejable el uso de parámetros activos.


Esta arquitectura flexible permite configuraciones específicas de recursos y objetivos.


En la configuración particular que hemos implementado, terminamos con un modelo potente que cabe en una única GPU de 80 GB.


Construido a gran escala, Jamba proporciona un alto rendimiento y una pequeña huella de memoria en comparación con los Transformers básicos y, al mismo tiempo, un rendimiento de última generación en pruebas comparativas de modelos de lenguaje estándar y evaluaciones de contexto prolongado.


Sorprendentemente, el modelo presenta resultados sólidos para una longitud de contexto de hasta 256 000 tokens.


Estudiamos varias decisiones arquitectónicas, como cómo combinar capas Transformer y Mamba, y cómo mezclar expertos, y mostramos que algunas de ellas son cruciales en el modelado a gran escala.


También describimos varias propiedades interesantes de estas arquitecturas que la capacitación y evaluación de Jamba han revelado, y planeamos liberar puntos de control de varias ejecuciones de ablación, para fomentar una mayor exploración de esta nueva arquitectura.


Hacemos que los pesos de nuestra implementación de Jamba estén disponibles públicamente bajo una licencia permisiva.



La implementación está disponible en el repositorio de HuggingFace aquí:


Modelo: https://huggingface.co/ai21labs/Jamba-v0.1



  1. Comparación con otros modelos :


En resumen, la arquitectura híbrida de Jamba combina los puntos fuertes de las capas Transformers y Mamba, lo que da como resultado un rendimiento y una escalabilidad impresionantes.


El diagrama clave para recordar es el que se presenta en este trabajo de investigación anterior:



El entrelazado de los modelos Mamba y Transformer conduce a un increíble aumento en la Complejidad del Tiempo, que se resume bellamente en el siguiente artículo:


Mamba y Jamba: explicados de forma sencilla

  • Autor : Nimrita Koul

  • Fecha : 1 de abril de 2024


  • Resumen :

    • Jamba es el primer modelo de lenguaje grande basado en Mamba de nivel de producción presentado por AI21.


    • Combina los puntos fuertes de las arquitecturas Transformer y Mamba.


      • Los modelos basados en transformadores tienen problemas con secuencias largas debido a su complejidad de tiempo de entrenamiento de O(n²) .


      • La arquitectura Mamba ofrece complejidad de tiempo de entrenamiento lineal ( O(n) ) y tiempo de inferencia constante ( O(1) ).


      • Mamba se basa en la arquitectura del Modelo de espacio de estados (SSM).


      • Los SSM utilizan variables de estado para describir un sistema mediante ecuaciones diferenciales o en diferencias.


      • El enfoque híbrido de Mamba tiene como objetivo abordar las limitaciones de los modelos existentes.



Puedes leer el articulo completo aquí:

Mamba y Jamba: explicados de forma sencilla , por Nimrita Koul, en Medium.com.


¡Se ha alcanzado el límite óptimo!

El punto clave a tener en cuenta aquí es que, para el entrenamiento, el algoritmo debe examinar cada token de entrada al menos una vez, lo que da una complejidad temporal de O(n).


Además, la velocidad más rápida posible que puede tomar la inferencia para cualquier modelo LLM es O(1): tiempo constante, independiente de la longitud de los tokens (¡un logro increíble)!


¡Ambos límites se han alcanzado en el caso del algoritmo Jamba!


Por lo tanto, bajo mejoras constantes, que aún pueden ser muy altas (estas cifras ascienden a cientos de miles de millones):


¡Jamba ha alcanzado la complejidad temporal óptima para un algoritmo transformador!


Bajo las condiciones dadas del sistema, a menos que se introduzca nueva tecnología (computación cuántica, cualquiera), ¡simplemente no podemos tener una complejidad de tiempo asintótica más rápida!


¡Lo cual es un resultado muy significativo!


¡Jamba es el algoritmo transformador más prometedor hasta la fecha!


El anuncio oficial de los laboratorios A121:

Otro buen artículo sobre Medium sobre Jamba:

Una de las mejores implementaciones de Jamba disponibles en este momento:


Una vez más, el modelo Jamba de HuggingFace Hub:

Conclusión

De este modo, Jamba alcanza la máxima complejidad temporal que puede lograrse mediante un algoritmo de transformador de corriente en el sistema existente, con una variación de nivel constante. Repetir; las constantes pueden ser muy grandes, porque son del orden de cientos de miles de millones de términos. Sin embargo, esto sigue siendo un logro sustancial. Y no hay límites a dónde puede llegar la investigación sobre esto, especialmente cuando se combina con DPO (optimización de preferencia directa) y cuantificación; consulte el epílogo para obtener más información.

¡A partir de ahora, literalmente no hay límites!


Epílogo:


Hay un aspecto de esto en el que nadie parece estar trabajando abiertamente.


¿Se pueden cuantificar los modelos Mamba, xLSTM y Jamba con una precisión de 1 bit?


¡Por supuesto!


¡No puedo esperar a ver las mejoras de rendimiento de Mamba y Jamba una vez cuantificadas a un bit! O 1,58 bits {-1, 0, 1}.


Una vez más, consulte este artículo para obtener más detalles:


https://hackernoon.com/why-1-bit-transformers-will-change-the-world


¡El futuro de esta tecnología será increíblemente emocionante!


¡Que la alegría y la emoción de trabajar en este campo permanezcan siempre contigo!


¡Salud!


¡Se avecinan tiempos emocionantes!


Referencias:

Aparte de los mencionados explícitamente en el artículo anterior:

  1. Transformer-XL: modelos de lenguaje atento más allá de un contexto de longitud fija
  2. Longformer: el transformador de documentos largos
  3. Reformer: el transformador eficiente
  4. Linformer: Autoatención con complejidad lineal
  5. Modelos de espacio de estados: un marco general para modelar datos de series temporales
  6. S4: Modelado de secuencias con espacios de estados estructurados
  7. Sobre la eficiencia computacional de modelos de lenguaje grandes
    • Autores anónimos. (Año no especificado). [Sobre la eficiencia computacional de modelos de lenguaje grandes] (URL no proporcionada).
  8. Transformadores eficientes: una encuesta
  9. Cuantización y entrenamiento de redes neuronales para una inferencia eficiente solo de aritmética entera
  10. Q-BERT: Cuantización de precisión ultrabaja basada en arpillera de BERT
  11. BERT: Capacitación previa de transformadores bidireccionales profundos para la comprensión del lenguaje
  12. GPT-3: Los modelos de lenguaje son aprendices de pocas oportunidades
  13. RoBERTa: un enfoque de preentrenamiento BERT sólidamente optimizado
  14. ALBERT: un BERT ligero para el aprendizaje autosupervisado de representaciones lingüísticas
  15. T5: Exploración de los límites del aprendizaje por transferencia con un transformador unificado de texto a texto
  16. DistilBERT, una versión destilada de BERT: más pequeño, más rápido, más barato y más ligero




¡Y no te olvides de la Complejidad Espacial! ¡Casi igual de importante!


Para el prólogo y el epílogo

Para la cuantificación, definitivamente vale la pena leer este artículo:

  1. Trabajo de investigación - BitNet: Escalado de transformadores de 1 bit para modelos de lenguaje grandes :

    • Resumen : El tamaño cada vez mayor de los grandes modelos de lenguaje ha planteado desafíos para su implementación y ha generado preocupaciones sobre el impacto ambiental debido al alto consumo de energía. En este trabajo, presentamos BitNet , una arquitectura Transformer de 1 bit estable y escalable diseñada para modelos de lenguaje grandes. Específicamente, presentamos BitLinear como un reemplazo directo de la capa nn.Linear para entrenar pesos de 1 bit desde cero. Los resultados experimentales sobre el modelado de lenguajes muestran que BitNet logra un rendimiento competitivo al tiempo que reduce sustancialmente la huella de memoria y el consumo de energía en comparación con los métodos de cuantificación de 8 bits de última generación y las líneas base de Transformer FP16. Además, BitNet exhibe una ley de escalamiento similar a la de Transformers de precisión total , lo que sugiere su potencial para un escalamiento efectivo a modelos de lenguaje aún más grandes manteniendo al mismo tiempo los beneficios de eficiencia y rendimiento.

      Lea el trabajo de investigación completo


      https://arxiv.org/abs/2310.11453



Y el modelo en HuggingFace:

  1. Repositorio de Hugging Face - BitNet b1.58-3B cuantificado :


Una cosa sobre el futuro: ¡será emocionante!