Hugging Face Reads, Feb. 2021 – Transformers de largo alcance

Hugging Face Reads, Feb. 2021 - Long-range Transformers.

Taxonomía de Transformers eficientes de Efficient Transformers: una encuesta de Tay et al.

Coescrito por Teven Le Scao, Patrick Von Platen, Suraj Patil, Yacine Jernite y Victor Sanh.

Cada mes, elegiremos un tema en el que centrarnos, leyendo un conjunto de cuatro artículos publicados recientemente sobre el tema. Luego escribiremos una breve publicación de blog resumiendo sus hallazgos y las tendencias comunes entre ellos, así como las preguntas que teníamos para trabajos futuros después de leerlos. El primer tema para enero de 2021 fue Esparsidad y Poda, en febrero de 2021 abordamos la Atención de Largo Alcance en Transformers.

Introducción

Después del surgimiento de los modelos de transformers grandes en 2018 y 2019, rápidamente surgieron dos tendencias para reducir sus requisitos de cómputo. Primero, la computación condicional, la cuantización, la destilación y la poda han permitido la inferencia de modelos grandes en entornos con limitaciones de cómputo; ya hemos tocado este tema en parte en nuestra última publicación del grupo de lectura. Luego, la comunidad de investigación se centró en reducir el costo del preentrenamiento.

En particular, un problema ha estado en el centro de los esfuerzos: el costo cuadrático en memoria y tiempo de los modelos de transformers en relación con la longitud de la secuencia. Para permitir el entrenamiento eficiente de modelos muy grandes, 2020 vio una avalancha de artículos para abordar ese cuello de botella y escalar transformers más allá de las longitudes de secuencia habituales de 512 o 1024 que eran las predeterminadas en PLN al comienzo del año.

Este tema ha sido una parte clave de nuestras discusiones de investigación desde el principio, y nuestro propio Patrick Von Platen ya ha dedicado una serie de 4 partes a Reformer. En este grupo de lectura, en lugar de intentar cubrir cada enfoque (¡hay tantos!), nos centraremos en cuatro ideas principales:

  • Patrones de atención personalizados (con Longformer)
  • Recurrencia (con Compressive Transformer)
  • Aproximaciones de rango bajo (con Linformer)
  • Aproximaciones de núcleo (con Performer)

Para ver visiones exhaustivas del tema, consulta Efficient Transfomers: A Survey y Long Range Arena.

Resúmenes

Longformer – El Transformador de Documentos Largos

Iz Beltagy, Matthew E. Peters, Arman Cohan

Longformer aborda el cuello de botella de memoria de transformers reemplazando la autoatención convencional con una combinación de atención local/escasa con ventana (cf. Sparse Transformers (2019)) y atención global que escala linealmente con la longitud de la secuencia. A diferencia de los modelos de transformers de largo alcance anteriores (por ejemplo, Transformer-XL (2019), Reformer (2020), Adaptive Attention Span (2019)), la capa de autoatención de Longformer está diseñada como un reemplazo directo para la autoatención estándar, lo que permite aprovechar puntos de control preentrenados para un mayor preentrenamiento y/o ajuste fino en tareas de secuencias largas.

La matriz de autoatención estándar (Figura a) escala cuadráticamente con la longitud de entrada:

Figura tomada de Longformer

Longformer utiliza diferentes patrones de atención para el modelado del lenguaje autoregresivo, el preentrenamiento del codificador y el ajuste fino, y las tareas de secuencia a secuencia.

  • Para el modelado del lenguaje autoregresivo, se obtienen los mejores resultados al reemplazar la autoatención causal (como en GPT2) con una autoatención dilatada con ventana (Figura c). Con n siendo la longitud de la secuencia y w la longitud de la ventana, este patrón de atención reduce el consumo de memoria de n^2 a w*n, lo que, asumiendo que w << n, escala linealmente con la longitud de la secuencia.
  • Para el preentrenamiento del codificador, Longformer reemplaza la autoatención bidireccional (como en BERT) con una combinación de autoatención local con ventana y autoatención bidireccional global (Figura d). Esto reduce el consumo de memoria de n^2 a w*n + g*n, donde g es el número de tokens a los que se atiende de manera global, lo que nuevamente escala linealmente con la longitud de la secuencia.
  • Para los modelos de secuencia a secuencia, solo se reemplazan las capas del codificador (como en BART) con una combinación de autoatención local y bidireccional global (Figura d), porque en la mayoría de las tareas de seq2seq, solo el codificador procesa entradas muy grandes (por ejemplo, resúmenes). El consumo de memoria se reduce de n_s^2 + n_s*n_t + n_t^2 a w*n_s + g*n_s + n_s*n_t + n_t^2, donde n_s y n_t son las longitudes de la fuente (entrada del codificador) y el objetivo (entrada del decodificador), respectivamente. Para que Longformer Encoder-Decoder sea eficiente, se asume que n_s es mucho mayor que n_t.

Principales hallazgos

  • Los autores propusieron la autoatención dilatada con ventana (Figura c) y demostraron que produce mejores resultados en modelado de lenguaje en comparación con solo autoatención con ventana/esparcida (Figura b). Los tamaños de ventana se incrementan a través de las capas. Este patrón supera aún más a arquitecturas previas (como Transformer-XL o atención de rango adaptativo) en pruebas de referencia.
  • La atención global permite que la información fluya a través de toda la secuencia y aplicar la atención global a tokens motivados por la tarea (como los tokens de la pregunta en preguntas y respuestas, o el token CLS para clasificación de oraciones) conduce a un rendimiento más fuerte en tareas posteriores. Utilizando este patrón global, Longformer puede aplicarse con éxito a tareas de procesamiento de lenguaje natural a nivel de documento en el contexto de aprendizaje por transferencia.
  • Los modelos preentrenados estándar pueden adaptarse a entradas de largo alcance simplemente reemplazando la autoatención estándar con la autoatención de largo alcance propuesta en este artículo y luego afinando en la tarea posterior. Esto evita un costoso preentrenamiento específico para entradas de largo alcance.

Preguntas adicionales

  • El aumento de tamaño (a lo largo de las capas) de la autoatención dilatada con ventana hace eco de los hallazgos en visión por computadora sobre el aumento del campo receptivo de apilamiento de CNN. ¿Cómo se relacionan estos dos hallazgos? ¿Cuáles son las lecciones que se pueden aplicar?
  • La arquitectura codificador-decodificador de Longformer funciona bien para tareas que no requieren una longitud objetivo larga (por ejemplo, resumen). Sin embargo, ¿cómo funcionaría para tareas de secuencia a secuencia de largo alcance que requieren una longitud objetivo larga (por ejemplo, traducción de documentos, reconocimiento de voz, etc.), especialmente considerando la capa de atención cruzada de los modelos codificador-decodificador?
  • En la práctica, la autoatención con ventana deslizante se basa en muchas operaciones de indexación para asegurar una matriz simétrica de pesos de consulta-clave. Estas operaciones son muy lentas en TPUs, lo que plantea la cuestión de la aplicabilidad de tales patrones en otros hardware.

Transformadores compresivos para modelado de secuencias de largo alcance

Jack W. Rae, Anna Potapenko, Siddhant M. Jayakumar, Timothy P. Lillicrap

Transformer-XL (2019) mostró que almacenar activaciones de capas previamente calculadas en una memoria puede mejorar el rendimiento en tareas de modelado de lenguaje (como enwik8). En lugar de atender solo los n n n tokens de entrada actuales, el modelo también puede atender a los n m n_m n m ​ tokens pasados, donde n m n_m n m ​ es el tamaño de memoria del modelo. Transformer-XL tiene una complejidad de memoria de O(n^2 + n n_m), lo que muestra que el costo de memoria puede aumentar significativamente para valores muy grandes de n m n_m n m ​. Por lo tanto, Transformer-XL eventualmente tiene que descartar activaciones pasadas de la memoria cuando el número de activaciones almacenadas se vuelve mayor que n m n_m n m ​. Compressive Transformer aborda este problema agregando una memoria comprimida adicional para almacenar eficientemente activaciones pasadas que de otra manera eventualmente se habrían descartado. De esta manera, el modelo puede aprender dependencias de secuencia de largo alcance con acceso a un número significativamente mayor de activaciones pasadas.

Figura tomada de Compressive Transformer

Se elige un factor de compresión c c c (igual a 3 en la ilustración) para decidir la tasa de compresión de activaciones pasadas. Los autores experimentan con diferentes funciones de compresión f c f_c f c ​ como agrupación máxima/media (sin parámetros) y convolución 1D (capa entrenable). La función de compresión se entrena con retropropagación a través del tiempo o pérdidas de compresión auxiliares locales. Además de la entrada actual de longitud n n n, el modelo atiende a n m n_m n m ​ activaciones almacenadas en la memoria regular y a n c m n_{cm} n c m ​ activaciones de memoria comprimida, lo que permite una dependencia temporal larga de l × (n_m + c n_{cm}), con l l l siendo el número de capas de atención. Esto aumenta el alcance de Transformer-XL en l × c × n c m tokens adicionales y el costo de memoria se calcula como O(n^2 + n n_m + n n_{cm}). Se realizan experimentos en aprendizaje por refuerzo, generación de audio y procesamiento de lenguaje natural. Los autores también presentan un nuevo punto de referencia de modelado de lenguaje de largo alcance llamado PG19.

Hallazgos principales

  • El Compressive Transformer supera significativamente la perplejidad del estado del arte en el modelado del lenguaje, en particular en los conjuntos de datos enwik8 y WikiText-103. En particular, la memoria comprimida desempeña un papel crucial en el modelado de palabras raras que ocurren en secuencias largas.
  • Los autores demuestran que el modelo aprende a preservar información relevante al atender cada vez más a la memoria comprimida en lugar de la memoria regular, lo cual va en contra de la tendencia de acceder a las memorias más antiguas con menos frecuencia.
  • Todas las funciones de compresión (promedio, máximo, convolución 1D) producen resultados similares, lo que confirma que la compresión de memoria es una forma efectiva de almacenar información pasada.

Preguntas de seguimiento

  • El Compressive Transformer requiere un programa de optimización especial en el que el tamaño efectivo del lote se incrementa progresivamente para evitar una degradación significativa del rendimiento para tasas de aprendizaje más bajas. Este efecto no se comprende bien y requiere un análisis más detallado.
  • El Compressive Transformer tiene muchos más hiperparámetros en comparación con un modelo simple como BERT o GPT2: la tasa de compresión, la función y pérdida de compresión, los tamaños de memoria regular y comprimida, etc. No está claro si estos parámetros se generalizan bien en diferentes tareas (además del modelado del lenguaje) o si, al igual que la tasa de aprendizaje, hacen que el entrenamiento sea muy frágil.
  • Sería interesante analizar la memoria regular y la memoria comprimida para analizar qué tipo de información se memoriza a través de las secuencias largas. Descubrir las piezas de información más relevantes puede informar a métodos como Funnel Transformer, que reduce la redundancia al mantener una secuencia de tokens de longitud completa.

Linformer: Self-Attention con Complejidad Lineal

Sinong Wang, Belinda Z. Li, Madian Khabsa, Han Fang, Hao Ma

El objetivo es reducir la complejidad de la autoatención con respecto a la longitud de la secuencia (n) de cuadrática a lineal. Este artículo observa que las matrices de atención tienen baja rango (es decir, no contienen información de n × n) y explora la posibilidad de utilizar técnicas de compresión de datos de alta dimensión para construir transformadores más eficientes en memoria.

Las bases teóricas del enfoque propuesto se basan en el lema de Johnson-Lindenstrauss. Consideremos (m) puntos en un espacio de alta dimensión. Queremos proyectarlos en un espacio de baja dimensión mientras preservamos la estructura del conjunto de datos (es decir, las distancias mutuas entre los puntos) con un margen de error ε. El lema de Johnson-Lindenstrauss establece que podemos elegir una dimensión pequeña k ∼ 8 log ⁡ ( m ) / ε 2 y encontrar una proyección adecuada en Rk en tiempo polinómico simplemente probando proyecciones ortogonales aleatorias.

Linformer proyecta la longitud de la secuencia en una dimensión más pequeña mediante el aprendizaje de una descomposición de baja rango de la matriz de contexto de atención. La multiplicación matricial de la autoatención se puede reescribir de manera inteligente de modo que no sea necesario calcular ni almacenar una matriz de tamaño n × n en ningún momento.

Transformador estándar:

Atención (Q, K, V) = softmax (Q * K) * V

              (n * h)                (n * n)   (n * h)

Linformer:

Atención Lineal (Q, K, V) = softmax (Q * K * W^K) * W^V * V

              (n * h)                (n * d)   (d * n)   (n * h)

Hallazgos principales

  • La matriz de autoatención tiene un rango bajo, lo que implica que la mayor parte de su información se puede recuperar mediante sus primeros valores propios más altos y se puede aproximar mediante una matriz de baja rango.
  • Muchas investigaciones se centran en reducir la dimensionalidad de los estados ocultos. Este artículo muestra que reducir la longitud de la secuencia con proyecciones aprendidas puede ser una alternativa sólida al tiempo que se reduce la complejidad de memoria de la autoatención de cuadrática a lineal.
  • El incremento de la longitud de la secuencia no afecta la velocidad de inferencia (tiempo de reloj) de Linformer, cuando los transformadores tienen un incremento lineal. Además, la velocidad de convergencia (número de actualizaciones) no se ve afectada por la autoatención de Linformer.
Figura tomada de Linformer

Preguntas de seguimiento

  • Aunque las matrices de proyección se comparten entre capas, el enfoque presentado aquí contrasta con el Johnson-Lindenstrauss que afirma que las proyecciones ortogonales aleatorias son suficientes (en tiempo polinomial). ¿Hubieran funcionado las proyecciones aleatorias aquí? Esto recuerda al Reformer que utiliza proyecciones aleatorias en el hashing de sensibilidad local para reducir la complejidad de memoria de la autoatención.

Repensando la atención con Performers

Krzysztof Choromanski, Valerii Likhosherstov, David Dohan, Xingyou Song, Andreea Gane, Tamas Sarlos, Peter Hawkins, Jared Davis, Afroz Mohiuddin, Lukasz Kaiser, David Belanger, Lucy Colwell, Adrian Weller

El objetivo es (¡nuevamente!) reducir la complejidad de la autoatención con respecto a la longitud de la secuencia n n n ) de cuadrática a lineal. A diferencia de otros artículos, los autores señalan que las prioridades de escasez y baja clasificación de la autoatención pueden no aplicarse a otras modalidades (habla, modelado de secuencias de proteínas). Por lo tanto, el artículo explora métodos para reducir la carga de memoria de la autoatención sin ninguna prioridad en la matriz de atención.

Los autores observan que si pudiéramos realizar la multiplicación de matrices K × V K × V K × V a través de la función softmax ( softmax ( Q × K ) × V \text{softmax}(Q × K) × V softmax ( Q × K ) × V ), no tendríamos que calcular la matriz Q x K Q x K Q x K de tamaño n x n n x n n x n que es el cuello de botella de memoria. Utilizan mapas de características aleatorias (también conocidos como proyecciones aleatorias) para aproximar la función softmax por:

softmax ( Q ∗ K ) ∼ Q ’ ∗ K ’ = ϕ ( Q ) ∗ ϕ ( K ) \text{softmax}(Q * K) \sim Q’ * K’ = \phi(Q) * \phi(K) softmax ( Q ∗ K ) ∼ Q ’ ∗ K ’ = ϕ ( Q ) ∗ ϕ ( K )

, donde p h i phi p h i es una función no lineal adecuada. Y luego:

Atención ( Q , K , V ) ∼ ϕ ( Q ) ∗ ( ϕ ( K ) ∗ V ) \text{Atención}(Q, K, V) \sim \phi(Q) * (\phi(K) * V) Atención ( Q , K , V ) ∼ ϕ ( Q ) ∗ ( ϕ ( K ) ∗ V )

Tomando inspiración de artículos de aprendizaje automático de principios de los años 2000, los autores presentan FAVOR+ ( A tención R ápida V ia O rtogonal R andom positive ( + ) F eatures) un procedimiento para encontrar estimaciones no sesgadas o casi no sesgadas de la matriz de autoatención, con convergencia uniforme y baja varianza de estimación.

Hallazgos principales

  • El procedimiento FAVOR+ se puede utilizar para aproximar matrices de autoatención con alta precisión, sin ninguna prioridad en la forma de la matriz de atención, lo que lo hace aplicable como un reemplazo directo de la autoatención estándar y conduce a un rendimiento sólido en múltiples aplicaciones y modalidades.
  • La investigación matemática muy exhaustiva sobre cómo aproximar o no la función softmax destaca la relevancia de los métodos fundamentados desarrollados en los primeros años 2000 incluso en la era del aprendizaje profundo.
  • FAVOR+ también se puede aplicar para modelar de manera eficiente otros mecanismos de atención kernelizables más allá de la softmax.

Preguntas de seguimiento

  • Incluso si la aproximación del mecanismo de atención es precisa, los pequeños errores se propagan a través de las capas del transformador. Esto plantea la pregunta de la convergencia y estabilidad de la puesta a punto de una red preentrenada con FAVOR+ como una aproximación de la autoatención.
  • El algoritmo FAVOR+ es la combinación de varios componentes. No está claro qué impacto empírico tienen cada uno de estos componentes en el rendimiento, especialmente teniendo en cuenta la variedad de modalidades consideradas en este trabajo.

Discusión del grupo de lectura

Los avances en modelos de lenguaje pre-entrenados basados en transformadores para la comprensión y generación de lenguaje natural son impresionantes. Hacer que estos sistemas sean eficientes para propósitos de producción se ha convertido en un área de investigación muy activa. Esto enfatiza que todavía tenemos mucho que aprender y construir tanto en los aspectos metodológicos como prácticos para permitir sistemas eficientes y generales basados en aprendizaje profundo, en particular para aplicaciones que requieren modelar entradas de largo alcance.

Los cuatro artículos mencionados anteriormente ofrecen diferentes formas de lidiar con la complejidad de memoria cuadrática del mecanismo de auto-atención, generalmente reduciéndola a una complejidad lineal. Linformer y Longformer se basan en la observación de que la matriz de auto-atención no contiene información de valor n × n n × n n × n (la matriz de atención es de baja rango y dispersa). Performer proporciona un método fundamentado para aproximar el núcleo de atención softmax (y cualquier mecanismo de atención kernelizable más allá del softmax). Compressive Transformer ofrece un enfoque ortogonal para modelar dependencias de largo alcance basado en recurrencia.

Estos diferentes sesgos inductivos tienen implicaciones en términos de velocidad computacional y generalización más allá de la configuración de entrenamiento. En particular, Linformer y Longformer conducen a diferentes compensaciones: Longformer diseña explícitamente los patrones de atención dispersa de la auto-atención (patrones fijos) mientras que Linformer aprende la factorización de matriz de baja rango de la matriz de auto-atención. En nuestros experimentos, Longformer es menos eficiente que Linformer y actualmente depende mucho de los detalles de implementación. Por otro lado, la descomposición de Linformer solo funciona para una longitud de contexto fija (fija en el entrenamiento) y no puede generalizarse a secuencias más largas sin una adaptación específica. Además, no puede almacenar en caché las activaciones anteriores, lo cual puede ser extremadamente útil en la configuración generativa. Interesantemente, Performer es conceptualmente diferente: aprende a aproximar el kernel de atención softmax sin depender de ninguna suposición de dispersión o baja rango. La pregunta de cómo se comparan estos sesgos inductivos entre sí para diferentes cantidades de datos de entrenamiento sigue abierta.

Todos estos trabajos resaltan la importancia de modelar entradas de largo alcance en el lenguaje natural. En la industria, es común encontrar casos de uso como la traducción de documentos, la clasificación de documentos o la síntesis de documentos que requieren modelar secuencias muy largas de manera eficiente y robusta. Recientemente, la técnica de priming de ejemplos sin entrenamiento (como en GPT3) también ha surgido como una alternativa prometedora al ajuste fino estándar, y aumentar el número de ejemplos de priming (y, por lo tanto, el tamaño del contexto) aumenta constantemente el rendimiento y la robustez. Finalmente, es común en otras modalidades como el habla o el modelado de proteínas encontrar secuencias largas más allá de los 512 pasos de tiempo estándar.

Modelar entradas largas no es antitético a modelar entradas cortas, sino que debe pensarse desde la perspectiva de un continuo desde secuencias más cortas a más largas. Shortformer, Longformer y BERT proporcionan evidencia de que entrenar el modelo con secuencias cortas y aumentar gradualmente las longitudes de secuencia conduce a un entrenamiento acelerado y un mejor rendimiento en tareas posteriores. Esta observación es coherente con la intuición de que las dependencias de largo alcance adquiridas cuando hay pocos datos disponibles pueden basarse en correlaciones espurias en lugar de una comprensión del lenguaje robusta. Esto se refleja en algunos experimentos realizados por Teven Le Scao sobre el modelado del lenguaje: las LSTMs son aprendices más fuertes en el régimen de datos bajos en comparación con los transformadores y obtienen perplejidades mejores en bancos de pruebas de modelado de lenguaje a pequeña escala como Penn Treebank.

Desde un punto de vista práctico, la cuestión de las incrustaciones posicionales también es un aspecto metodológico crucial con compensaciones de eficiencia computacional. Las incrustaciones posicionales relativas (introducidas en Transformer-XL y utilizadas en Compressive Transformers) son atractivas porque pueden extenderse fácilmente a longitudes de secuencia aún no vistas, pero al mismo tiempo, las incrustaciones posicionales relativas son computacionalmente costosas. Por otro lado, las incrustaciones posicionales absolutas (utilizadas en Longformer y Linformer) son menos flexibles para secuencias más largas que las vistas durante el entrenamiento, pero son computacionalmente más eficientes. Curiosamente, Shortformer introduce una alternativa simple al agregar la información posicional a las consultas y claves del mecanismo de auto-atención en lugar de agregarla a las incrustaciones de tokens. Este método se llama atención con información de posición y se muestra muy eficiente a la vez que produce resultados sólidos.

@Hugging Face 🤗: Modelado de largo alcance

La implementación de Longformer y los puntos de control de código abierto asociados están disponibles a través de la biblioteca Transformers y el centro de modelos . Performer y Big Bird, que es un modelo de largo alcance basado en atención dispersa, actualmente se encuentran en desarrollo como parte de nuestro llamado a modelos , un esfuerzo que involucra a la comunidad para promover contribuciones de código abierto. ¡Nos encantaría saber de ti si te has preguntado cómo contribuir a transformers pero no sabías por dónde empezar!

Para más lectura, recomendamos revisar el blog de Patrick Platen sobre Reformer , la publicación de Teven Le Scao sobre la aproximación Johnson-Lindenstrauss , Efficient Transformers: A Survey , y Long Range Arena: A Benchmark for Efficient Transformers .

El próximo mes, cubriremos métodos y aplicaciones de autoaprendizaje. ¡Nos vemos en marzo!

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

IA generativa y agentes multimodales en AWS La clave para desbloquear nuevo valor en los mercados financieros

Los datos multimodales son un componente valioso de la industria financiera, que abarca datos de mercado, económicos,...

Inteligencia Artificial

Este artículo de IA propone inyectar el mundo 3D en los grandes modelos de lenguaje y presentar una nueva familia completa de modelos de lenguaje 3D (3D-LLMs).

En los últimos años, hemos visto un aumento en los modelos de lenguaje grandes (LLMs) (como GPT4) que son excelentes ...

Inteligencia Artificial

Bienvenido a una nueva era de construcción en la nube con IA generativa en AWS

Creemos que la IA generativa tiene el potencial, con el tiempo, de transformar virtualmente todas las experiencias de...

Inteligencia Artificial

Investigadores de Meta IA publican como código abierto Pearl una biblioteca de agentes de IA de aprendizaje por refuerzo lista para la producción.

Aprendizaje por refuerzo (RL) es un subcampo del aprendizaje automático en el cual un agente toma acciones adecuadas ...

Inteligencia Artificial

El Ejército de los Estados Unidos pone a prueba la Inteligencia Artificial Generativa

El Departamento de Defensa de los Estados Unidos está probando cinco modelos de lenguaje grandes como parte de un esf...