Revisión de Transformer con una explicación en profundidad de los principios de la Mamba alternativa (ilustrada)
Base de conocimientos de IAActualizado hace 10 meses Círculo de intercambio de inteligencia artificial 12.7K 00
Una alternativa a Transformer en el modelado lingüístico
Transformador La arquitectura es un componente clave para el éxito de los grandes modelos lingüísticos (LLM). Casi todos los grandes modelos lingüísticos que se utilizan hoy en día emplean esta arquitectura, desde modelos de código abierto como Mistral a modelos de código cerrado como ChatGPT.
Con el fin de mejorar aún más el modelo de gran lenguaje, se han desarrollado nuevas arquitecturas que incluso pueden ir más allá de la arquitectura Transformer. Uno de estos enfoques es el Mambaun tipo de modelo de espacio de estado.
Mamba en el periódico Mamba: modelización de secuencias de tiempo lineal con espacios de estado selectivos1 en la que se presentó. Puede obtener más información en su repositorio Encuentre su aplicación oficial y los puntos de control del modelo en.
En este post, introduciré el campo del modelado del espacio de estados en el contexto del modelado del lenguaje y exploraré paso a paso varios conceptos para ayudar a entender el campo. A continuación, hablaremos de cómo Mamba podría desafiar a la arquitectura Transformer.
A modo de guía visual, este artículo repasará numerosas visualizaciones que ayudarán a comprender los modelos Mamba y de espacio de estados.
Primera parte:Transformers
Para ilustrar lo interesante que es la arquitectura Mamba, repasemos primero brevemente Transformers y exploremos uno de sus defectos.
El Transformer trata cualquier entrada de texto como si fuera una entrada de texto de la carpeta fichas constituyente secuencia.
Una de las principales ventajas de Transformers es que, independientemente de la entrada que reciba, puede volver a cualquier testigo anterior de la secuencia para derivar su representación.
Componentes del núcleo de los transformadores
Recuerda que el Transformer consta de dos estructuras, un conjunto de bloques codificadores para representar texto y un conjunto de bloques decodificadores para generarlo. Combinadas, estas estructuras pueden utilizarse para múltiples tareas, incluida la traducción.
Podemos tomar esta estructura y crear modelos generativos utilizando únicamente decodificadores. Este modelo basado en transformadores, elTransformador generativo de preentrenamiento(GPT) que utiliza bloques descodificadores para completar parte del texto de entrada.
Veamos cómo funciona.
Bendiciones en la formación...
Un solo bloque decodificador consta de dos componentes principales, el mecanismo de autoatención enmascarado y la red neuronal feedforward.
El mecanismo de autoatención es una razón importante por la que estos modelos funcionan tan bien. Permite una visión sin comprimir de toda la secuencia y es rápido de entrenar.
¿Cómo funciona?
Crea una matriz que toma cada Ficha Comparar con cada Token anterior. Los pesos de la matriz dependen de la relevancia de los pares de tokens entre sí.
Esta matriz se crea de una sola vez durante el entrenamiento. "Mi"y"nombre"La atención entre no necesita ser calculada antes de que pueda ser calculada".nombre"y"es"Atención entre.
Se da cuentaparalelizaciónlo que acelera enormemente el entrenamiento.
Problemas de razonamiento
Sin embargo, hay un inconveniente. Al generar el siguiente token, tenemos que volver a calcular elsecuencia completaatención, aunque ya hayamos generado algún Token.
Generar la longitud delLLa secuencia requiere unosL²veces, lo que puede resultar costoso desde el punto de vista informático si aumenta la longitud de la secuencia.
Esta necesidad de volver a calcular toda la secuencia es uno de los principales cuellos de botella de la arquitectura Transformer.
Veamos cómo una técnica "clásica", las redes neuronales recurrentes (RNN), resuelve este problema de inferencia lenta.
¿Es RNN la solución?
La red neuronal recurrente (RNN) es una red basada en secuencias. Recibe dos entradas en cada paso de tiempo, es decir, el paso de tiempoty el paso temporal anteriort-1del estado oculto se utiliza para generar el siguiente estado oculto y predecir la salida.
La RNN tiene un mecanismo de bucle que le permite pasar información de un paso al siguiente. Podemos "ampliar" este proceso de visualización para hacerlo más explícito.
Al generar la salida, la RNN sólo necesita tener en cuenta el estado oculto anterior y la entrada actual. Así se evita el problema de volver a calcular todos los estados ocultos anteriores que requiere el Transformador.
En otras palabras, una RNN es capaz de realizar inferencias rápidas porque se escala linealmente con la longitud de la secuencia. En teoría, incluso podría tenerLongitud de contexto ilimitada.
Para ilustrarlo, apliquemos la RNN al texto de entrada que hemos utilizado antes.
Cada estado oculto es una agregación de todos los estados ocultos anteriores, normalmente una vista comprimida.
Sin embargo, aquí hay un problema ......
Tenga en cuenta que al generar el nombre "Maarten" cuando el último estado oculto ya no contenga información sobre la palabra "Hola"Las RNN tienden a olvidar información con el tiempo porque sólo tienen en cuenta el último estado.
Aunque las RNN son más rápidas en términos de entrenamiento e inferencia, carecen de la precisión que pueden proporcionar los modelos Transformer.
Por lo tanto, estudiamos los modelos de espacio de estados para utilizar eficazmente las RNN (y a veces la convolución).
Segunda parte:Modelización del espacio de estados (SSM)
Los modelos de espacio de estados (SSM), como los transformadores y las RNN, tratan secuencias de información, como texto y señales. En esta sección presentamos los conceptos básicos de los SSM y su relación con los datos textuales.
¿Qué es el espacio de estados?
Un espacio de estados contiene el número mínimo de variables necesarias para describir completamente un sistema. Es una forma de representar matemáticamente un problema definiendo los posibles estados de un sistema.
Simplifiquemos. Imaginemos que viajamos por un laberinto. "espacio de estado"Es un mapa de todas las ubicaciones posibles (estados). Cada punto representa una ubicación única en el laberinto con detalles específicos, como a qué distancia estás de la salida.
"representación del espacio de estados" es una descripción simplificada de este mapa. Muestra tu ubicación actual (estado actual), la siguiente ubicación a la que puedes viajar (posible estado futuro) y cómo puedes llegar a la siguiente ubicación (moviéndote a la derecha o a la izquierda).
Aunque el modelo de espacio de estados utiliza ecuaciones y matrices para seguir este comportamiento, en realidad es sólo una forma de saber dónde estás, adónde puedes ir y cómo llegar.
Las variables describen un estado, en nuestro caso las coordenadas X e Y, y la distancia a la salida, que puede expresarse como "vector de estado".
¿Le suena? Porque en los modelos lingüísticos también se suelen utilizar incrustaciones o vectores para describir el "estado" de una secuencia de entrada. Por ejemplo, un vector que describa tu posición actual (un vector de estado) podría tener este aspecto:
En las redes neuronales, "estado" suele referirse al estado oculto del sistema, que es uno de los aspectos más importantes a la hora de generar nuevos tokens en un gran modelo lingüístico.
¿Qué es un modelo de espacio de estados?
Los modelos de espacio de estados (SSM) son una clase de modelos utilizados para describir estas representaciones de estados y predecir su estado siguiente, con predicciones basadas en determinadas entradas.
Tradicionalmente, con el tiempo tSSM:
- Se introducirá la secuencia de entrada x(t)(por ejemplo, moverse hacia la izquierda y hacia abajo en un laberinto) se asigna a la representación del estado potencial h(t)(por ejemplo, distancia a la salida y coordenadas x/y)
- y obtener la secuencia de salida prevista y(t)(por ejemplo, muévete de nuevo a la izquierda para llegar más rápido a la salida)
Sin embargo, en lugar de utilizar secuencias discretas (por ejemplo, desplazarse a la izquierda una vez), SSM acepta secuencias continuas como entrada y predice la secuencia de salida.
SSM asume que los sistemas dinámicos (por ejemplo, objetos que se mueven en el espacio 3D) pueden ser temporalmente t del estado y dos ecuaciones para predecirlo.
Al resolver estas ecuaciones, nuestra hipótesis es que podemos revelar principios estadísticos para predecir el estado del sistema a partir de los datos observados (secuencias de entrada y estados anteriores).
El objetivo es encontrar esta representación del estado h(t)que nos permite pasar de secuencias de entrada a secuencias de salida.
Estas dos ecuaciones constituyen el núcleo del modelo de espacio de estados.
A lo largo de la guía se hará referencia a estas dos ecuaciones. Para hacerlas más intuitivas, laUtilizamos códigos de colorespara que pueda citarlos rápidamente.
ecuación de estado describe cómo cambiará el estado en función de las entradas (a través de la tecla Matriz B) estado de impacto (a través de Matriz A) y el cambio.
Como ya se ha dicho.h(t) se refiere a un momento dado t La representación del estado potencial delx(t) se refiere a una entrada determinada.
ecuación de salida describe cómo se transmite el estado a través del Matriz C y cómo las entradas se convierten en salidas mediante la Matriz D Afecta a la salida.
tenga en cuenta: Matrix AyByC responder cantando D También suele denominarse parámetrosporque se pueden aprender.
Visualizando estas dos ecuaciones, obtenemos la siguiente arquitectura:
Veamos paso a paso cómo afectan estas matrices al proceso de aprendizaje.
Supongamos que tenemos unas señales de entrada x(t)La señal se conecta primero al Matriz B Multiplica.Matriz B Describe cómo afectan las entradas al sistema.
El estado actualizado (similar al estado oculto de una red neuronal) es un espacio potencial que contiene el núcleo del "conocimiento" del entorno. Relacionamos el estado con el Matriz A Multiplicada, esta matriz describe las asociaciones entre todos los estados internos y representa la dinámica subyacente del sistema.
Como ya se habrán dado cuenta.Matriz A Aplicar antes de crear la representación del estado y de nuevo después de actualizar la representación del estado.
A continuación, utilizamos el Matriz C para describir cómo se convierten los estados en salidas.
Por último, podemos utilizar la función Matriz D Proporciona una señal directa de entrada a salida. También se suele denominar conexión de salto.
debido a Matriz D De forma similar a las conexiones de salto, a menudo se consideran SSM las siguientes formas que no contienen conexiones de salto.
Volviendo a nuestra perspectiva simplificada, ahora podemos centrarnos en la matriz AyB responder cantando C como núcleo del MSE.
Podemos actualizar las ecuaciones originales (y añadir unos bonitos colores) para marcar para qué se utiliza cada matriz, como hicimos antes.
Juntos, estos dos conjuntos de ecuaciones pretenden predecir el estado del sistema a partir de los datos observados. Como las entradas son continuas, la representación principal de SSM es escala de tiempo continua.
De las señales continuas a las discretas
Si tienes una señal continua, encuentra la representación del estado h(t) difícil de analizar. Además, como solemos tener entradas discretas (por ejemplo, secuencias de texto), nos gustaría discretizar el modelo.
Para ello, utilizamos la función técnica de retención de orden cero. Funciona del siguiente modo: en primer lugar, cada vez que recibimos una señal discreta, mantenemos su valor hasta que recibimos una nueva señal discreta. Este proceso genera una señal continua para SSM:
Mantenemos el valor del tiempo mediante un nuevo parámetro aprendible marcapasos ∆ Indica. Indica la resolución de la entrada.
Ahora que hemos generado una señal continua para la entrada, podemos generar una salida continua y muestrear estos valores en función del paso de tiempo de la entrada.
Estos valores muestreados son el resultado de nuestra discretización.
Matemáticamente, podemos aplicar la retención de orden cero de la siguiente manera:
Juntos nos permiten pasar de un MSS continuo a un MSS discreto. en este punto el modelo ya no es de función a función x(t) → y(t)En cambio, es secuencia a secuencia xₖ → y_ₖ::
Aquí, la matriz A responder cantando B Denotemos ahora los parámetros discretizados del modelo.
Utilizamos k en lugar de tpara distinguir cuándo hablamos de SSM continuo y cuándo de SSM discreto.
Atención: Durante la formación, seguimos reteniendo Matriz A en su forma continua, y no en su versión discretizada. Durante el entrenamiento, la representación continua se discretiza.
Ahora que tenemos una fórmula para la representación discretizada, vamos a explorar cómo cuente El modelo.
representación recursiva
Nuestro SSM discretizado nos permite construir el problema en un paso de tiempo específico, en lugar de en una señal continua. Como hemos visto antes en las RNN, los métodos recursivos son muy útiles aquí.
Si consideramos pasos de tiempo discretos en lugar de señales continuas, podemos reformular el problema utilizando pasos de tiempo:
En cada paso temporal, calculamos la entrada actual (Bxₖ) cómo afecta al estado anterior (Ahₖ₋₁) y, a continuación, calcular el resultado previsto (Chₖ).
Puede que esta representación ya le resulte familiar. Podemos analizarla como hicimos con el tratamiento anterior de las RNN.
Podemos ampliar (o expandir en una serie de pasos temporales) de la siguiente manera:
Obsérvese que podemos utilizar una versión discretizada de esto utilizando el enfoque básico de una RNN.
representación de convolución (matem.)
Podemos utilizar la convolución para representar SSM. Recordemos que en las tareas clásicas de reconocimiento de imágenes aplicamos filtros (granos) para extraer características agregadas:
Como se trata de texto y no de imágenes, tenemos que utilizar una vista unidimensional:
El núcleo que utilizamos para representar este "filtro" se deriva de la fórmula SSM:
Veamos qué hace este núcleo en la práctica. Al igual que la convolución, podemos utilizar el núcleo SSM para recorrer cada conjunto de fichas y calcular la salida:
Esto también demuestra el efecto que el relleno puede tener en la salida. He cambiado el orden del relleno para mejorar la visualización, pero normalmente aplicamos el relleno al final de la frase.
En el siguiente paso, el núcleo se desplaza una vez para realizar el siguiente paso del cálculo:
En el último paso, podemos ver el efecto completo del núcleo:
Una de las principales ventajas de representar los SSM como convoluciones es que pueden entrenarse en paralelo como las redes neuronales convolucionales (CNN). Sin embargo, debido al tamaño fijo del núcleo, su inferencia no es tan rápida y libre de restricciones como las RNN.
Tres tipos de representación
Estas tres representaciones -progresiónyrecursivo (cálculo) responder cantando convolución Cada uno tiene ventajas e inconvenientes diferentes:
Curiosamente, ahora podemos utilizar SSM recursivos para una inferencia eficiente mientras utilizamos SSM convolucionales para un entrenamiento paralelo.
A partir de estas representaciones, podemos utilizar un truco inteligente consistente en elegir una representación en función de la tarea. Durante el entrenamiento, utilizamos una representación convolucional que puede paralelizarse, mientras que durante la inferencia utilizamos una representación recursiva eficiente:
Este modelo se conoce como Capa de espacio de estado lineal (LSSL). 2
Estas representaciones comparten una propiedad importante, a saberinvariante temporal lineal (matem.)(LTI indica los parámetros de SSM. AyB responder cantando C es fija en todos los pasos temporales. Esto significa que la matriz AyB responder cantando C es el mismo para cada Token generado.
En otras palabras, cualquier secuencia que le des a SSM.AyB responder cantando C Los valores de todos ellos siguen siendo los mismos. Tenemos una representación estática que no se preocupa por el contenido.
Antes de explorar cómo Mamba resuelve este problema, vamos a explorar la última pieza del rompecabezas - elMatriz A.
matrices A importancia de
Podría decirse que uno de los aspectos más importantes de la fórmula del MSE es que el Matriz A. Como vimos antes en la representación recursiva, captura información sobre la anterior información sobre el estado para construir el renovado Estado.
Esencialmente.Matriz A Generar un estado oculto:
Por lo tanto, crear Matriz A puede determinar si podemos recordar sólo algunos tokens anteriores o capturar todos los tokens que hemos visto hasta ahora. especialmente en el contexto de la representación recursiva, que sólo recuerda que Estado anterior.
Cómo crear de forma que se conserve mucha memoria (tamaño del contexto) matriz A?
Utilizamos Hungry Hungry Hippo! o HiPPO3 realizarsu (honorífico)escaleras cómo (en qué medida)plazo (matem.) ponerse en manos depelícula suerteoperator.HiPPO intenta comprimir todas las señales de entrada que ha visto hasta el momento en un vector de coeficientes.
Utiliza matriz A para construir una representación de estado que capture mejor los tokens recientes y decaiga los tokens más antiguos.La fórmula puede expresarse de la siguiente manera:
Supongamos que tenemos un cuadrado matriz AEsto nos da:
Construir con HiPPO matriz A ha demostrado ser mucho mejor que inicializarla con una matriz aleatoria. Por lo tanto, es mejor para reconstruir la actualización El aspecto de la señalización (ficha más cercana) es más importante que mayor La señal (ficha inicial) es más precisa.
La idea central de la matriz HiPPO es generar un estado oculto que recuerde su historia.
Matemáticamente, lo hace siguiendo Polinomio de Legendre para lograrlo, lo que le permite aproximarse a todos los registros históricos.4
HiPPO se aplica entonces a las representaciones recursivas y convolucionales que hemos visto antes para manejar las dependencias de largo alcance. El resultado. Espacio de estados estructurado para secuencias (S4)El SSM es una clase de SSM que puede manejar eficientemente secuencias largas.5
Consta de tres partes:
- modelo de espacio de estado
- HiPPO para procesamiento dependencia a larga distancia
- La discretización se utiliza para crear recursivo (cálculo) responder cantando convolución indique
Este tipo de SSM tiene varias ventajas, dependiendo de la representación que elija (recursiva frente a convolucional). También puede manejar largas secuencias de texto y almacenar memorias de forma eficiente al estar basado en matrices HiPPO.
tenga en cuentaSi quieres saber más sobre cómo calcular la matriz HiPPO y construir tu propio modelo S4, te recomiendo que leas S4 anotado.
Parte 3:Mamba: un modelo selectivo de espacio de estados
Por fin hemos cubierto todos los aspectos básicos necesarios para entender qué hace especial a Mamba. Los modelos de espacio de estados se pueden utilizar para modelar secuencias de texto, pero todavía hay una serie de inconvenientes que nos gustaría evitar.
En esta sección analizaremos las dos principales aportaciones de Mamba:
- un tipo de Algoritmo de exploración selectivapermitiendo al modelo filtrar la información (no) relevante
- un tipo de Algoritmos sensibles al hardwareMediante el escaneo paraleloyfusión de núcleos responder cantando recalcular para almacenar eficazmente los resultados (intermedios).
Juntos crean el Modelización selectiva del espacio de estados tal vez S6 modelo que puede utilizarse como autoatención para crear Bloque Mamba.
Antes de analizar estas dos contribuciones principales, veamos por qué son necesarias.
¿Cuál es el problema que se intenta resolver?
Los modelos de espacio de estados, incluso los S4 (modelos de espacio de estados estructurados), tienen un rendimiento deficiente en determinadas tareas clave de modelización y generación de lenguaje, a saber Capacidad para centrarse en determinadas entradas o ignorarlas.
Podemos ilustrarlo con dos tareas sintéticas, a saber copia selectiva responder cantando cabezal inductor.
existe copia selectiva El objetivo de SSM en una tarea es copiar las partes de entrada y emitirlas en orden:
Sin embargo, dado que el Tiempo lineal invariante(utilizado como expresión nominal)...su rendimiento en esta tarea es deficiente. Como hemos visto antes, la matriz AyB responder cantando C Cada ficha generada es la misma para SSM.
Como resultado, SSM es incapaz de ejecutar Razonamiento basado en el contenidoEsto es un problema porque queremos que SSM razone sobre las entradas (pistas). porque trata a cada ficha por igual debido a una matriz fija de A, B y C. Esto es un problema porque queremos que SSM razone sobre las entradas (pistas).
SSM obtiene malos resultados en otra tarea, la de cabezal inductorcuyo objetivo es reproducir los patrones encontrados en la entrada:
En el ejemplo anterior, esencialmente estamos realizando una indicación única en la que intentamos "enseñar" al modelo a utilizar la misma señal en cada "Q." después de proporcionar un "A.". Sin embargo, como SSM es invariable en el tiempo, no puede elegir qué tokens anteriores recuperar del historial.
Hagámoslo centrándonos en Matriz B para ilustrar este punto. Independientemente de la entrada x Lo que es.Matriz B es siempre la misma, por lo que con x Irrelevante:
Lo mismo digo.A responder cantando C también permanece fija en todo momento, independientemente de la entrada. Esto sugiere que lo que hemos visto hasta ahora de SSM estado de inactividad Características.
En cambio, estas tareas son relativamente sencillas para el Transformer, ya que se basan en la secuencia de entrada dinámica (ciencia) Atención cambiante. Pueden "mirar" o "centrarse" selectivamente en distintas partes de la secuencia.
El bajo rendimiento de SSM en estas tareas ilustra los problemas potenciales de SSM invariante en el tiempo, matriz AyB responder cantando C El carácter estático de la Sentido del contenido de la cuestión.
Retención selectiva de la información
La representación recursiva de SSM crea un estado más pequeño que es muy eficiente porque comprime toda la historia. Sin embargo, en comparación con el modelo Transformer, el modelo Transformer no comprime el historial (a través de la matriz de atención), por lo que es más capaz.
Mamba aspira a tener lo mejor de ambos mundos. Un estado pequeño que es tan poderoso como un estado Transformer:
Como ya se ha dicho, lo hace comprimiendo selectivamente los datos en estados. Cuando se tiene una frase de entrada, suele haber alguna información, como una palabra de parada, que no tiene mucho sentido.
Para comprimir selectivamente la información, necesitamos que los parámetros dependan de la entrada. Para ello, exploremos primero las dimensiones de las entradas y salidas de SSM durante el entrenamiento:
En el modelo de espacio de estados estructurado (S4), la matriz AyB responder cantando C son independientes de las entradas porque sus dimensiones N responder cantando D es estática y no cambia.
En su lugar, Mamba, combinando la longitud de la secuencia de entrada y el tamaño del lote, hace que la matriz B responder cantando Cincluso marcapasos ∆Depende de la entrada:
Esto significa que para cada token de entrada, ahora tenemos diferentes B responder cantando C que resuelve el problema de la percepción del contenido.
tenga en cuenta: Matrix A permanece sin cambios porque queremos que el estado en sí permanezca estático, pero la forma en que se ve afectado (a través de la función B responder cantando C) es dinámico.
juntos selectivamente Seleccione qué mantener en estado oculto y qué ignorar, ya que ahora dependen de la entrada.
más pequeño marcapasos ∆ lleva a ignorar palabras concretas en favor del contexto anterior, mientras que mayor marcapasos ∆ En cambio, la atención se centra más en el vocabulario de entrada que en el contexto:
operación de escaneado
Dado que estas matrices son ahora dinámica (ciencia) s, no pueden calcularse utilizando la representación convolucional, que supone una fijación del núcleo de convolución. Sólo podemos utilizar representaciones recursivas, con lo que se pierde la ventaja de paralelización que ofrece la convolución.
Para lograr la paralelización, vamos a explorar cómo podemos utilizar la recursividad para calcular la salida:
Cada estado es el estado anterior (multiplicado por el A) con la entrada de corriente (multiplicada por B) de y. Esto se conoce como operación de escaneadoEsto se puede calcular fácilmente con un bucle for.
En cambio, la paralelización parece imposible, ya que cada estado sólo puede calcularse después de disponer de un estado anterior. Mamba, sin embargo, ha hecho posible paralelizar el estado de cada estado mediante escaneo paralelo Los algoritmos lo hacen posible.
Supone que el orden en que realizamos las operaciones carece de importancia, utilizando una propiedad de la ley de unión. Así, podemos calcular la secuencia por partes y luego combinarlas iterativamente:
matriz dinámica B responder cantando C y los algoritmos de exploración paralela se unen para crear Algoritmo de exploración selectivapara representar la naturaleza dinámica y rápida del uso de representaciones recursivas.
Algoritmos sensibles al hardware
Uno de los inconvenientes de las GPU más recientes es la limitada velocidad de transferencia (IO) entre su pequeña pero eficiente SRAM y su gran pero algo menos eficiente DRAM. La copia frecuente de información entre la SRAM y la DRAM puede convertirse en un cuello de botella.
Mamba es similar a Flash Attention en que intenta limitar el número de viajes de DRAM a SRAM y viceversa. Para ello fusión de núcleos Implementar esto permite al modelo evitar escribir resultados intermedios y seguir realizando el cálculo hasta que esté completo.
Podemos ver ejemplos concretos de asignación de DRAM y SRAM visualizando la arquitectura básica de Mamba:
En este caso, se fusionan en un solo núcleo:
- El paso de discretización es el mismo que tamaño del paso ∆
- Algoritmo de exploración selectiva
- junto con C multiplicación
La última parte del algoritmo hardware-aware es recomputación.
Los estados intermedios no se guardan, pero son necesarios para calcular el gradiente en el paso inverso. En su lugar, los autores recalculan estos estados intermedios durante el paso inverso.
Aunque esto pueda parecer ineficiente, es mucho más barato que leer todo este estado intermedio de una DRAM relativamente lenta.
Ya hemos cubierto todos los componentes de su arquitectura, que se muestra a continuación en su artículo:
SSM selectivo. Recuperado de: Gu, Albert y Tri Dao. "Mamba: modelización lineal de series temporales con espacios de estado selectivos". arXiv preprint arXiv:2312.00752 (2023).
Esta arquitectura suele denominarse SSM selectivo tal vez S6 ya que se trata esencialmente de un modelo S4 calculado mediante el algoritmo de barrido selectivo.
Módulo Mamba
Lo que hemos explorado hasta ahora SSM selectivo puede implementarse como un módulo, del mismo modo que podemos representar la autoatención en un módulo decodificador.
Al igual que un decodificador, podemos apilar varios módulos Mamba y utilizar su salida como entrada para el siguiente módulo Mamba:
Comienza con una proyección lineal para ampliar la incrustación de entrada. A continuación, la SSM selectivo La convolución se aplica antes para evitar el cálculo independiente de tokens.
SSM selectivo tiene las siguientes características:
- aprobar (una factura o inspección, etc.) discreto creado SSM recursivo
- matriz A adelante HiPPO Inicialización para capturar dependencia a largo plazo
- Algoritmo de exploración selectiva comprimir selectivamente la información
- Algoritmos sensibles al hardware para acelerar los cálculos
Si nos fijamos en la implementación del código, podemos ampliar aún más esta arquitectura y explorar cómo sería un ejemplo de extremo a extremo:
Observe algunos cambios, como la adición de una capa de normalización y un softmax para seleccionar el token de salida.
Cuando lo juntamos todo, obtenemos una inferencia y un entrenamiento rápidos, incluso con un contexto infinito. Utilizando esta arquitectura, los autores comprobaron que su rendimiento igualaba y a veces superaba el de un modelo Transformer del mismo tamaño.
llegar a un veredicto
Con esto concluye nuestra exploración de los modelos de espacio de estados y la increíble arquitectura Mamba que utiliza modelos de espacio de estados selectivos. Esperemos que este post te haya dado una mejor comprensión de los modelos de espacio de estados y de Mamba en particular. Quién sabe si esto reemplazará a Transformers, pero por ahora es increíble ver que una arquitectura tan diferente recibe la atención que merece.
Para ver más visualizaciones relacionadas con la modelización de grandes lenguajes y apoyar este boletín, consulte el libro del que soy coautor con Jay Alammar.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Puestos relacionados
Sin comentarios...