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í:
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!
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:
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.
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:
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.
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.
Detalles de la arquitectura :
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.
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
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.
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:
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.
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.
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.
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.
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.
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.
.
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.
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
Comparación con otros modelos :
Evaluado a través de una variedad de puntos de referencia, Jamba demuestra un rendimiento comparable al de otros modelos de última generación como Mistral-8x7B , Llama-2 70B y Mixtral-8x7B .
En particular, Jamba admite longitudes de contexto de hasta 256 000 tokens , que es la más larga entre los modelos disponibles públicamente.
En tareas como Hellaswag , Arc Challenge y PIQA , Jamba supera a modelos como Llama 2 , Mixtral 8x7B y Gemma .
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:
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.
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)!
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!
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:
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.
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:
¡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!
Para la cuantificación, definitivamente vale la pena leer este artículo:
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:
Este repositorio contiene una versión cuantificada del modelo BitNet b1.58-3B .
Si bien el repositorio original muestra resultados de validación impresionantes, emula las capas lineales de BitNet, lo que resulta en un uso de memoria similar al de los modelos FP16.
Explora el modelo Hugging Face