T5 Transformadores de Texto a Texto (Parte Dos)

'T5 Text-to-Text Transformers (Part Two)'

Transferencia óptima de aprendizaje para modelos de lenguaje grandes

(Foto de Patrick Tomasso en Unsplash)

La propuesta de BERT [5] llevó a la popularización de enfoques de transferencia de aprendizaje para el procesamiento del lenguaje natural (PLN). Debido a la amplia disponibilidad de texto no etiquetado en Internet, podríamos fácilmente (i) preentrenar modelos de transformadores grandes sobre grandes cantidades de texto sin procesar y (ii) afinar estos modelos para resolver con precisión tareas posteriores. Este enfoque fue increíblemente efectivo, pero su reciente popularidad llevó a que se propusieran muchos métodos y modificaciones alternativos. Con todos estos nuevos métodos disponibles, uno podría preguntarse fácilmente: ¿Cuáles son las mejores prácticas para la transferencia de aprendizaje en PLN?

Esta pregunta fue respondida por el análisis realizado con el modelo unificado de transformador de texto a texto (T5). T5 reformula todas las tareas (tanto durante el preentrenamiento como durante el ajuste fino) con un formato de texto a texto, lo que significa que el modelo recibe una entrada textual y produce una salida textual. Utilizando este formato unificado, T5 puede analizar diferentes configuraciones de transferencia de aprendizaje, lo que permite comparar muchos enfoques. En un boletín anterior, aprendimos sobre el formato, la arquitectura y el enfoque general del modelo T5.

En este boletín, describiremos el análisis realizado por T5, que incluye una comparación empírica de diferentes objetivos de preentrenamiento, arquitecturas, escalas de modelo/datos y enfoques de entrenamiento para la transferencia de aprendizaje en PLN. Dentro de [1], se estudian cada una de estas opciones una por una para determinar su impacto en el rendimiento de T5. Mediante el estudio de este análisis, llegamos a un conjunto de mejores prácticas que, cuando se combinan, producen el marco T5 de última generación que puede resolver tareas de comprensión del lenguaje con una precisión increíblemente alta.

(de [1])

Preliminares

Ya hemos cubierto la motivación y los conceptos básicos de la arquitectura T5. Consulta esa publicación en el siguiente enlace. También podemos cubrir rápidamente estas ideas aquí. La propuesta de BERT [5] popularizó el paradigma de transferencia de aprendizaje (es decir, preentrenar un modelo sobre un conjunto de datos separado y luego ajustar fino en un conjunto de datos objetivo) para PLN. Sin embargo, la efectividad de BERT llevó a que muchos investigadores se centraran en este tema y propusieran diversas modificaciones y mejoras. La idea de T5 es (i) convertir todas las tareas de lenguaje en un formato unificado de texto a texto (ver figura a continuación) y (ii) estudiar diferentes configuraciones de transferencia de aprendizaje en PLN para deducir las técnicas que funcionan mejor.

(de [1])

Modelado de lenguaje vs. Desruido

Los enfoques iniciales de transferencia de aprendizaje en PLN aprovecharon un objetivo de modelado de lenguaje causal [6] para el preentrenamiento. Sin embargo, posteriormente se demostró que los objetivos de desruido (también llamados modelado de lenguaje enmascarado o MLM) funcionan mejor [5]. Dado un conjunto de tokens de texto que se pasarán como entrada a algún modelo, MLM opera de la siguiente manera:

  1. Seleccionar al azar (uniformemente) el 15% de los tokens
  2. Reemplazar el 90% de los tokens seleccionados con un token [MASK]
  3. Reemplazar el 10% de los tokens seleccionados con un token aleatorio
  4. Entrenar el modelo para predecir/clasificar cada token [MASK]

El porcentaje de tokens que se seleccionan uniformemente se llama “tasa de corrupción”. Dentro de T5, veremos algunas variantes diferentes de este objetivo de desruido, pero la idea básica sigue siendo la misma.

“Todos nuestros objetivos ingieren una secuencia de IDs de tokens correspondientes a un fragmento tokenizado de texto de nuestro conjunto de datos de texto no etiquetado. La secuencia de tokens se procesa para producir una secuencia de entrada (corrupta) y un objetivo correspondiente. Luego, el modelo se entrena como de costumbre con máxima verosimilitud para predecir la secuencia objetivo.” – de [1]

Benchmarks y Evaluación

T5 intenta derivar un conjunto de mejores prácticas para el aprendizaje por transferencia en NLP. Sin embargo, para determinar qué técnicas funcionan mejor, T5 se evalúa en una variedad de tareas diferentes y benchmarks de lenguaje natural. Todas estas tareas se resuelven utilizando el formato texto-a-texto de T5. Consulte la Sección 2.3 en [1] para una descripción completa de estas tareas. A continuación se proporciona un resumen breve.

  • GLUE y SuperGLUE [7, 8]: ambos benchmarks incluyen muchas tareas diferentes, como la evaluación de la aceptabilidad de las oraciones, análisis de sentimientos, parafraseo, similitud de oraciones, inferencia de lenguaje natural (NLI), resolución de correferencia, completado de oraciones, desambiguación de sentido de palabras y respuesta a preguntas. SuperGLUE es un benchmark mejorado y más difícil con una estructura similar a GLUE.
  • Resumen abtractivo de CNN + Daily Mail [9]: empareja artículos de noticias con una secuencia corta y resumida de texto que captura los puntos principales del artículo.
  • SQuAD [10]: un conjunto de datos de preguntas y respuestas sobre artículos de Wikipedia, donde la respuesta a cada pregunta es un segmento de texto del artículo relacionado.
  • Varios conjuntos de datos de traducción (por ejemplo, inglés a alemán, francés y rumano).

Es importante destacar que todas las tareas en los benchmarks de GLUE y SuperGLUE se concatenan en T5, y se realiza un ajuste fino sobre todas las tareas a la vez.

Otras Ideas Importantes

  • Diferentes tipos de arquitecturas de transformadores [enlace]
  • Conceptos básicos de modelado de lenguaje [enlace]
  • Autoatención [enlace]

¿Qué aprendemos de T5?

Como se mencionó anteriormente, los experimentos en T5 intentan descubrir las mejores prácticas para el aprendizaje por transferencia en NLP. Para hacer esto, primero se propone un enfoque de referencia, luego se cambian uno a la vez varios aspectos de esta referencia (por ejemplo, arquitectura/tamaño del modelo, conjunto de datos y objetivo de pre-entrenamiento) para ver qué funciona mejor. Este enfoque imita una estrategia de descenso de coordenadas. Primero describiremos la técnica de referencia, luego explicaremos los hallazgos de T5 después de probar una variedad de configuraciones diferentes de aprendizaje por transferencia.

Modelo de Referencia de T5

(de [11])

El modelo. La arquitectura de referencia de T5 utiliza una arquitectura estándar de transformador codificador-decodificador; consulte arriba. Tanto el codificador como el decodificador tienen una estructura similar a BERTBase. Aunque muchos enfoques modernos para NLP utilizan una arquitectura de transformador “de una sola pila” (por ejemplo, una arquitectura solo de codificador para BERT o una arquitectura solo de decodificador para la mayoría de los modelos de lenguaje), T5 elige evitar estas arquitecturas. Curiosamente, los autores en [1] encuentran que la arquitectura codificador-decodificador logra resultados impresionantes tanto en tareas generativas como en tareas de clasificación. Los modelos solo de codificador no se consideran en [1] debido al hecho de que están especializados en predicción de tokens/spans y no resuelven bien tareas generativas.

(de [1])

En comparación con las arquitecturas de solo decodificador, los modelos de solo codificador están limitados porque utilizan únicamente autoatención causal (o enmascarada); consulte arriba. La autoatención enmascarada solo considera los tokens precedentes al calcular la representación de cualquier token dado en una secuencia. Sin embargo, hay ciertos casos en los que nos gustaría realizar una atención completamente visible sobre un fragmento o prefijo inicial de texto, y luego generar una salida basada en este prefijo (por ejemplo, tareas de traducción). Los modelos de solo decodificador no pueden manejar tales casos, ya que realizan autoatención causal en toda la entrada.

Entrenamiento de T5. El modelo T5 se pre-entrena en un total de 34B tokens del corpus C4. Para comparación, BERT se entrena con 137B tokens, mientras que RoBERTa se entrena con 2.2T tokens [5, 12]. Inspirado por el objetivo MLM de BERT, T5 se pre-entrena utilizando un objetivo de desenmascaramiento ligeramente modificado que:

  1. Selecciona aleatoriamente el 15% de los tokens en la secuencia de entrada
  2. Reemplaza todas las secuencias consecutivas de tokens seleccionados con un único token “sentinela”
  3. Asigna a cada token sentinela un ID único para la secuencia de entrada actual
  4. Construye un objetivo utilizando todos los tokens seleccionados, separados por los tokens sentinela

Aunque esta tarea parece un poco compleja, podemos ver una ilustración de cómo funciona en una secuencia de entrada corta a continuación.

(de [1])

Al reemplazar fragmentos completos de tokens enmascarados por un solo token centinela, reducimos el costo computacional del preentrenamiento, ya que tendemos a operar sobre secuencias de entrada y objetivo más cortas.

ajuste fino. Después de que se haya realizado el preentrenamiento, T5 se ajusta finamente por separado en cada tarea secundaria antes de ser evaluado. Debido al formato de texto a texto utilizado por T5, tanto el preentrenamiento como el ajuste fino utilizan el mismo objetivo de máxima verosimilitud. En otras palabras, simplemente formulamos la respuesta correcta como una secuencia textual (tanto durante el preentrenamiento como durante el ajuste fino) y entrenamos al modelo para que genere la secuencia textual correcta.

¿cómo se desempeña el punto de referencia? Como se muestra en la tabla a continuación, el modelo T5 de referencia tiene un rendimiento similar a modelos anteriores como BERT, aunque estos modelos no son directamente comparables (es decir, el modelo T5 de referencia utiliza el 25% de la computación utilizada por BERTBase). Además, vemos que el preentrenamiento proporciona un gran beneficio en la mayoría de las tareas. La excepción a esta regla son las tareas de traducción, donde el rendimiento es similar tanto con como sin preentrenamiento.

(de [1])

Buscando un enfoque mejor…

Después de probar la arquitectura de referencia y el enfoque de entrenamiento, los autores en [1] modifican un aspecto de este enfoque a la vez, como la arquitectura subyacente, el objetivo de preentrenamiento o la estrategia de ajuste fino. Al probar estas diferentes variantes de aprendizaje por transferencia, podemos encontrar un enfoque que funcione consistentemente mejor en diferentes tareas de comprensión del lenguaje.

(de [1])

la arquitectura. Para estudiar el impacto de la elección de arquitectura en los resultados del aprendizaje por transferencia, podemos probar diferentes variantes de la arquitectura de transformer. Las arquitecturas probadas en [1] incluyen la arquitectura normal de codificador-decodificador, la arquitectura solo decodificador y un modelo de lenguaje de prefijo, que realiza atención plenamente visible sobre un prefijo fijo dentro de una secuencia y luego genera la salida usando atención de autocausal; ver arriba. La principal diferencia entre estas arquitecturas es el tipo de enmascaramiento utilizado dentro de sus mecanismos de atención de autocausal.

(de [1])

Cuando se prueban varias arquitecturas diferentes (usando tanto el modelado de lenguaje causal como los objetivos de desenmascaramiento para el preentrenamiento), vemos que la arquitectura de transformer codificador-decodificador (con un objetivo de desenmascaramiento) tiene el mejor rendimiento, lo que lleva a que esta arquitectura se utilice en el resto de los experimentos. En comparación con otros modelos, esta variante codificador-decodificador tiene 2P parámetros en total, pero el mismo costo computacional que un modelo solo decodificador con P parámetros. Para reducir el número total de parámetros a P, podemos compartir parámetros entre el codificador y el decodificador, lo cual se encuentra que funciona bastante bien.

el objetivo de preentrenamiento. Al principio, T5 se entrena utilizando tres tipos diferentes de objetivos de preentrenamiento. El primero es un objetivo de MLM al estilo de BERT. Los otros objetivos son una estrategia de desordenamiento [3] (es decir, el modelo intenta poner una oración desordenada nuevamente en el orden correcto) y un objetivo de modelado de lenguaje basado en prefijos [2]. En este último, el texto se divide en dos fragmentos, donde el primer fragmento se pasa como entrada al codificador y el segundo fragmento es predicho por el decodificador (es decir, recordemos que estamos utilizando un transformer codificador-decodificador). Se compara el rendimiento de los modelos entrenados con estos objetivos a continuación, donde vemos que los objetivos de desenmascaramiento claramente superan a otras estrategias.

(de [1])

Desde aquí, los autores en [1] prueban varias modificaciones al objetivo MLM en estilo BERT [4], como se muestra en la tabla a continuación.

(de [1])

Cada una de estas variantes tiende a tener un rendimiento similar; ver a continuación. Sin embargo, al seleccionar objetivos de pre-entrenamiento que reemplacen los tokens corruptos de un tramo completo con tokens centinela individuales y solo intenten predecir los tokens corruptos dentro del objetivo, podemos minimizar el costo computacional del pre-entrenamiento. Como tal, la estrategia de referencia de enmascarar tramos completos de tokens consecutivos es eficiente porque produce secuencias de objetivo más cortas.

(de [1])

Los autores en [1] prueban diferentes tasas de corrupción, encontrando que la tasa de corrupción no afecta significativamente los resultados y que una configuración del 15% funciona bien. También se descubre que un objetivo de pre-entrenamiento alternativo que selecciona explícitamente tramos de tokens para corrupción (es decir, el enfoque de referencia selecciona tokens de manera uniforme en lugar de un tramo y luego combina tokens consecutivos) tiene un rendimiento similar al de la referencia. A continuación se muestra un esquema de los diferentes objetivos de pre-entrenamiento probados en [1].

(de [1])

Se estudian muchas estrategias diferentes, pero las principales conclusiones aquí son: (i) los objetivos de eliminación de ruido funcionan mejor, (ii) las variantes de los objetivos de eliminación de ruido tienen un rendimiento similar y (iii) las estrategias que minimizan la longitud del objetivo son más eficientes computacionalmente.

tamaño de datos y modelo. Por último, se estudia el impacto de la escala en la calidad de T5. Primero, T5 se pre-entrena con varios conjuntos de datos diferentes, incluido uno que no está filtrado, un conjunto de datos específico de noticias, un conjunto de datos que imita el corpus WebText de GPT-2 y algunas variantes del corpus de Wikipedia. A continuación se muestra el rendimiento de T5 después de ser pre-entrenado en cada uno de estos conjuntos de datos.

(de [1])

Vemos aquí que (i) no filtrar el corpus de pre-entrenamiento es increíblemente perjudicial y (ii) el pre-entrenamiento en corpus específicos del dominio puede ser útil en algunos casos. Por ejemplo, el pre-entrenamiento en el corpus basado en noticias produce el mejor rendimiento en ReCoRD, un conjunto de datos de comprensión de lectura basado en artículos de noticias.

“La lección principal detrás de estos hallazgos es que el pre-entrenamiento en datos no etiquetados dentro del dominio puede mejorar el rendimiento en tareas posteriores. Esto no es sorprendente, pero también insatisfactorio si nuestro objetivo es pre-entrenar un modelo que pueda adaptarse rápidamente a tareas de lenguaje de dominios arbitrarios”. — de [1]

Yendo más allá, T5 se pre-entrena utilizando versiones truncadas del corpus C4 con tamaños variables. A partir de estos experimentos, aprendemos que más datos son (como era de esperar) mejores. Repetir un versión más pequeña del conjunto de datos varias veces durante el pre-entrenamiento provoca sobreajuste y daña el rendimiento posterior; ver a continuación.

(de [1])

Para ampliar el modelo T5, los autores prueban las siguientes modificaciones:

  1. 4X más iteraciones de entrenamiento (o 4 veces el tamaño de lote X)
  2. 2X más iteraciones de entrenamiento y 2 veces el tamaño de modelo X
  3. El modelo es 4 veces más grande
  4. Entrenar un conjunto de 4 transformadores codificador-decodificador

Aquí, tanto los pasos de pre-entrenamiento como los de ajuste fino se aumentan por simplicidad. Los resultados de estos experimentos se muestran a continuación.

(de [1])

Estos resultados corresponden aproximadamente a lo que esperaríamos. Aumentar el tiempo de entrenamiento (o el tamaño del lote) mejora el rendimiento. Combinar esto con un modelo más grande produce un beneficio adicional en comparación con aumentar solo las iteraciones de entrenamiento o el tamaño del lote. En otras palabras, aumentar la cantidad de datos de preentrenamiento y el tamaño del modelo es complementario en términos de mejorar el rendimiento.

“La lección amarga de la investigación en aprendizaje automático argumenta que los métodos generales que pueden aprovechar la computación adicional al final ganan frente a los métodos que dependen de la experiencia humana” – de [1]

otras cosas. T5 también se ajusta finamente utilizando diferentes estrategias de entrenamiento multitarea. En general, se encuentra que estos modelos funcionan ligeramente peor que aquellos ajustados finamente por separado para cada tarea. Sin embargo, existen estrategias para minimizar la brecha de rendimiento entre el ajuste fino específico de la tarea y el aprendizaje multitarea. Para obtener más información, consulte el resumen aquí.

Muchos enfoques de ajuste fino para redes neuronales profundas solo entrenan un subconjunto de parámetros del modelo (por ejemplo, “congelar” las capas iniciales y ajustar finamente solo las últimas capas en el modelo). Los autores en [1] prueban varias técnicas para ajustar finamente T5 de esta manera (por ejemplo, a través de capas de adaptador o descongelamiento gradual [6]), pero estos métodos son superados por el ajuste fino del modelo completo de principio a fin; ver a continuación.

(de [1])

T5: ¡Poniéndolo todo junto!

Ahora que hemos repasado todo el análisis experimental de [1], tenemos una mejor imagen de las diferentes opciones para el aprendizaje por transferencia en PLN y lo que funciona mejor. A continuación, repasaremos los puntos principales de este análisis que comprenden el marco oficial de aprendizaje por transferencia utilizado por T5. Se descubrió que este enfoque funciona bastante bien en comparación con varias alternativas.

configuraciones base. Primero, recordemos la arquitectura base de T5. Es un transformador codificador-decodificador que se entrena utilizando el formato de texto a texto unificado. Después del preentrenamiento con un objetivo de desruido, el modelo se ajusta finamente por separado en cada tarea secundaria antes de la evaluación. Es importante destacar que el modelo final de T5 se ajusta finamente por separado para cada tarea en los benchmarks GLUE y SuperGLUE, ya que el entrenamiento de todas las tareas juntas produce un rendimiento ligeramente inferior (siempre y cuando se tomen las medidas necesarias para evitar el sobreajuste).

preentrenamiento. En lugar de seleccionar tokens uniformemente, la metodología final de T5 realiza corrupción de fragmentos (es decir, seleccionar fragmentos completos de tokens para corromper de una vez) con una longitud promedio de tres. Aún así, se selecciona un 15% de los tokens para corrupción. Este objetivo tiene un rendimiento ligeramente mejor que el de la configuración base y produce longitudes de secuencia objetivo más cortas. Además, T5 mezcla actualizaciones de preentrenamiento no supervisadas con actualizaciones supervisadas de múltiples tareas. La proporción entre el número de actualizaciones no supervisadas y supervisadas depende del tamaño del modelo que se esté utilizando (es decir, los modelos más grandes necesitan más actualizaciones no supervisadas para evitar el sobreajuste).

cantidad de entrenamiento. El preentrenamiento adicional es útil para el rendimiento de T5. Específicamente, tanto aumentar el tamaño del lote como el número de iteraciones de entrenamiento benefician el rendimiento de T5. Por lo tanto, el modelo final de T5 se preentrena sobre 1T de tokens en total. Esto es mucho más grande que los 34B tokens de la configuración base durante el preentrenamiento, pero aún está muy lejos de RoBERTa [12], que se preentrena sobre más de 2.2T tokens. El preentrenamiento se realiza sobre el conjunto de datos genérico y filtrado C4, ya que el preentrenamiento específico de la tarea no produce un beneficio consistente en diferentes tareas.

tamaño del modelo. El uso de modelos más grandes es útil, pero a veces puede tener más sentido utilizar un modelo más pequeño (por ejemplo, cuando se dispone de recursos limitados para la inferencia). Por esta razón, se lanzan cinco tamaños diferentes de modelos T5 con un número variable de parámetros, desde 220M hasta 11B. ¡Por lo tanto, T5 en realidad es una suite de diferentes modelos! Podemos acceder a cualquiera de estos modelos en el enlace aquí.

Comentarios Finales

¡Muchas gracias por leer este artículo! Soy Cameron R. Wolfe, Director de IA en Rebuy. Estudio los fundamentos empíricos y teóricos del aprendizaje profundo. También puedes consultar mis otros escritos en VoAGI. Si te gustó, sígueme en Twitter o suscríbete a mi boletín informativo Deep (Learning) Focus, donde ayudo a los lectores a desarrollar una comprensión más profunda de temas en investigación de IA a través de resúmenes comprensibles de artículos populares.

Bibliografía

[1] Raffel, Colin, et al. “Explorando los límites del aprendizaje transferido con un transformer de texto a texto unificado.” The Journal of Machine Learning Research 21.1 (2020): 5485–5551.

[2] Liu, Peter J., et al. “Generando Wikipedia mediante la síntesis de secuencias largas.” arXiv preprint arXiv:1801.10198 (2018).

[3] Liu, Peter J., Yu-An Chung y Jie Ren. “Summae: Resumen abstraído de texto sin necesidad de entrenamiento previo utilizando auto-encoders independientes de longitud.” arXiv preprint arXiv:1910.00998 (2019).

[4] Song, Kaitao, et al. “Mass: Pre-entrenamiento de secuencia mascarada a secuencia para generación de lenguaje.” arXiv preprint arXiv:1905.02450 (2019).

[5] Devlin, Jacob, et al. “Bert: Pre-entrenamiento de transformers bidireccionales profundos para comprensión de lenguaje.” arXiv preprint arXiv:1810.04805 (2018).

[6] Howard, Jeremy y Sebastian Ruder. “Ajuste fino de modelo de lenguaje universal para clasificación de texto.” arXiv preprint arXiv:1801.06146 (2018).

[7] Wang, Alex, et al. “GLUE: Una plataforma de análisis y evaluación multitarea para comprensión de lenguaje natural.” arXiv preprint arXiv:1804.07461 (2018).

[8] Wang, Alex, et al. “Superglue: Un benchmark más exigente para sistemas de comprensión de lenguaje de propósito general.” Advances in neural information processing systems 32 (2019).

[9] Hermann, Karl Moritz, et al. “Enseñando a las máquinas a leer y comprender.” Advances in neural information processing systems 28 (2015).

[10] Rajpurkar, Pranav, et al. “Squad: Más de 100,000 preguntas para la comprensión de texto por parte de máquinas.” arXiv preprint arXiv:1606.05250 (2016).

[11] Vaswani, Ashish, et al. “La atención es todo lo que necesitas.” Advances in neural information processing systems 30 (2017).

[12] Liu, Yinhan, et al. “Roberta: Un enfoque robustamente optimizado para el preentrenamiento de bert.” arXiv preprint arXiv:1907.11692 (2019).