Preentrenamiento y ajuste
El paradigma de preentrenamiento + ajuste fino, que se hizo popular por primera vez en Computer Vision, se refiere al proceso de entrenamiento de un modelo mediante dos etapas: preentrenamiento y luego ajuste fino.
En preentrenamiento En esta etapa, el modelo se entrena en un conjunto de datos a gran escala relacionado con la tarea posterior en cuestión. En Computer Vision, esto generalmente se hace aprendiendo un modelo de clasificación de imágenes en ImageNet, con su subconjunto más comúnmente utilizado, ILSVR, que contiene categorías de 1K, cada una con imágenes de 1K.
Aunque las imágenes de 1 millón no suenan como “a gran escala” según el estándar actual, ILSVR era realmente notable hace una década y, de hecho, era mucho más grande de lo que podríamos tener para tareas CV específicas.
Además, la comunidad CV ha explorado muchas formas de deshacerse de la formación previa supervisada, por ejemplo moco (por Kaiming He et al.) y SimCLR (por Ting Chen et al.), etc.
Después del entrenamiento previo, se supone que el modelo ha aprendido algunos conocimientos generales sobre la tarea, lo que podría acelerar el proceso de aprendizaje en la tarea posterior.
Luego viene a sintonia FINA: En esta etapa, el modelo se entrenará en una tarea posterior específica con datos etiquetados de alta calidad, a menudo en una escala mucho menor en comparación con ImageNet. Durante esta etapa, el modelo adquirirá algunos conocimientos de dominio específicos relacionados con la tarea en cuestión, lo que ayuda a mejorar su desempeño.
Para muchas tareas de CV, esto preentrenamiento + ajuste El paradigma demuestra un mejor rendimiento en comparación con entrenar directamente el mismo modelo desde cero con datos limitados de tareas específicas, especialmente cuando el modelo es complejo y, por lo tanto, es más probable que se sobreajuste con datos de entrenamiento limitados. Combinado con redes CNN modernas como ResNet, esto conduce a un salto de rendimiento en muchos puntos de referencia de CV, donde algunos de los cuales incluso alcanzan un rendimiento casi humano.
Por tanto, surge una pregunta natural: ¿cómo podemos replicar tal éxito en la PNL?
Exploraciones anteriores de preentrenamiento antes de GPT-1
De hecho, la comunidad de PNL nunca deja de intentarlo en esta dirección, y algunos de los esfuerzos pueden remontarse a 2013, como Palabra2Vec y Guante (Vectores globales para representación de palabras).
Palabra2Vec
El documento Word2Vec “Representaciones distribuidas de palabras y frases y su composicionalidad”fue honrado con el premio “Prueba del tiempo” en NeurIPS 2023. Es realmente una lectura obligada para cualquiera que no esté familiarizado con este trabajo.
Hoy en día parece muy natural representar palabras o tokens como vectores de incrustación, pero este no era el caso antes de Word2Vec. En aquella época, las palabras eran comúnmente representadas por codificación one-hot o algunas estadísticas basadas en recuentos, como TD-FDI (término frecuencia-frecuencia de documento inversa) o matrices de coocurrencia.
Por ejemplo, en la codificación one-hot, dado un vocabulario de tamaño N, a cada palabra de este vocabulario se le asignará un índice i, y luego se representará como un vector disperso de longitud N donde solo el i-ésimo elemento se establece en 1.
Tomemos como ejemplo el siguiente caso: en este vocabulario de juguetes solo tenemos cuatro palabras: the (índice 0), cat (índice 1), sat (índice 2) y on (índice 3), y por lo tanto cada palabra se representará como un vector disperso de longitud 4 (the ->1000, cat -> 0100, sat -> 0010, on -> 0001).
El problema con este método simple es que, a medida que el vocabulario crece cada vez más en los casos del mundo real, los vectores one-hot se volverán extremadamente largos. Además, las redes neuronales no están diseñadas para manejar estos vectores dispersos de manera eficiente.
Además, las relaciones semánticas entre palabras relacionadas se perderán durante este proceso ya que el índice de cada palabra se asigna aleatoriamente, lo que significa que palabras similares no tienen conexión en esta representación.
Con eso, ahora puedes comprender mejor el significado de la contribución de Word2Vec: al representar palabras como vectores continuos en un espacio de alta dimensión donde palabras con contextos similares tienen vectores similares, revolucionó por completo el campo de la PNL.
Con Word2Vec, las palabras relacionadas se asignarán más estrechamente en el espacio de incrustación. Por ejemplo, en la siguiente figura, los autores muestran la proyección PCA de incrustaciones de palabras para algunos países y sus capitales correspondientes, con sus relaciones capturadas automáticamente por Word2Vec sin proporcionar ninguna información supervisada.
Word2Vec se aprende sin supervisión y, una vez que se aprenden las incrustaciones, se pueden utilizar fácilmente en tareas posteriores. Este es uno de los primeros esfuerzos que exploran el aprendizaje semisupervisado en PNL.
Más específicamente, puede aprovechar el CBOW (Bolsa continua de palabras) o Saltar gramo arquitecturas para aprender incrustaciones de palabras.
En CBOW, el modelo intenta predecir la palabra objetivo en función de las palabras circundantes. Por ejemplo, dada la oración “El gato se sentó en la alfombra”, CBOW intentaría predecir la palabra objetivo “sat” dadas las palabras de contexto “El”, “gato”, “sobre”, “el”. Esta arquitectura es eficaz cuando el objetivo es predecir una sola palabra a partir del contexto.
Sin embargo, Skip-Gram funciona de manera totalmente opuesta: utiliza una palabra objetivo para predecir las palabras de contexto circundantes. Tomando la misma oración como ejemplo, esta vez la palabra objetivo “sat” se convierte en la entrada y el modelo intentaría predecir palabras de contexto como “The”, “cat”, “on” y “the”. Skip-Gram es particularmente útil para capturar palabras raras aprovechando el contexto en el que aparecen.
Guante
Otro trabajo en esta línea de investigación es GloVe, que también es un método no supervisado para generar incrustaciones de palabras. A diferencia de Word2Vec, que se centra en un contexto local, GloVe está diseñado para capturar información estadística global mediante la construcción de una matriz de coocurrencia de palabras y factorizándola para obtener vectores de palabras densos.
Tenga en cuenta que tanto Word2Vec como GloVe pueden transferir principalmente información a nivel de palabra, lo que a menudo no es suficiente para manejar tareas complejas de PNL, ya que necesitamos capturar semántica de alto nivel en las incrustaciones. Esto conduce a exploraciones más recientes sobre el preentrenamiento no supervisado de modelos de PNL.
Preentrenamiento no supervisado
Antes de GPT, muchos trabajos habían explorado el entrenamiento previo no supervisado con diferentes objetivos, como el modelo de lenguaje, la traducción automática y la coherencia del discurso, etc. Sin embargo, cada método solo supera a otros en ciertas tareas posteriores y no estaba claro qué objetivos de optimización eran más efectivos o no. más útil para la transferencia.
Es posible que hayas notado que los modelos de lenguaje ya se habían explorado como objetivos de entrenamiento en algunos de los trabajos anteriores, pero ¿por qué estos métodos no tuvieron éxito como GPT?
La respuesta es Transformador modelos.
Cuando se propusieron los trabajos anteriores, todavía no existían modelos Transformer, por lo que los investigadores solo podían confiar en modelos RNN como LSTM para el entrenamiento previo.
Esto nos lleva al siguiente tema: la arquitectura Transformer utilizada en GPT.
Transformador solo decodificador
En GPT, la arquitectura Transformer es una versión modificada del Transformer original llamada Transformador solo decodificador. Esta es una arquitectura Transformer simplificada propuesta por Google en 2018 y contiene solo el decodificador.
A continuación se muestra una comparación de la arquitectura de codificador-decodificador introducida en el Transformer original versus la arquitectura Transformer de solo decodificador utilizada en GPT. Básicamente, la arquitectura de solo decodificador elimina por completo la parte del codificador junto con la atención cruzada, lo que lleva a una arquitectura más simplificada.
Entonces, ¿cuál es el beneficio de hacer que el decodificador Transformer sea solo?
En comparación con los modelos de solo codificador como BERT, los modelos de solo decodificador a menudo funcionan mejor en la generación de texto coherente y contextualmente relevante, lo que los hace ideales para tareas de generación de texto.
Los modelos de solo codificador como BERT, por otro lado, a menudo funcionan mejor en tareas que requieren comprender los datos de entrada, como clasificación de texto, análisis de sentimientos y reconocimiento de entidades con nombre, etc.
Existe otro tipo de modelos que emplean tanto el codificador como el decodificador Transformador, como T5 y BART, donde el codificador procesa la entrada, mientras que el decodificador genera la salida en función de la representación codificada. Si bien este diseño los hace más versátiles en el manejo de una amplia gama de tareas, a menudo son más intensivos en términos computacionales que los modelos de solo codificador o solo decodificador.
En pocas palabras, si bien ambos se basaron en modelos Transformer y trataron de aprovechar el esquema de preentrenamiento y ajuste, GPT y BERT han elegido formas muy diferentes para lograr ese objetivo similar. Más específicamente, GPT lleva a cabo una capacitación previa en un autorregresivo manera, mientras que BERT sigue un codificación automática acercarse.
Modelos de lenguaje autorregresivos versus de codificación automática
Una manera fácil de comprender su diferencia es comparar sus objetivos de capacitación.
En los modelos de lenguaje autorregresivos, el objetivo del entrenamiento suele ser predecir el siguiente token de la secuencia, en función de los tokens anteriores. Debido a la dependencia de tokens anteriores, esto generalmente conduce a un enfoque unidireccional (generalmente de izquierda a derecha), como mostramos a la izquierda de la Figura 6.
Por el contrario, los modelos de lenguaje de codificación automática a menudo se entrenan con objetivos como el modelo de lenguaje enmascarado o la reconstrucción de toda la entrada a partir de versiones corruptas. Esto a menudo se hace de manera bidireccional donde el modelo puede aprovechar todos los tokens alrededor del enmascarado, en otras palabras, los tokens del lado izquierdo y derecho. Esto se ilustra en la derecha de la Figura 6.
En pocas palabras, el LM autorregresivo es más adecuado para la generación de texto, pero su enfoque de modelado unidireccional puede limitar su capacidad para comprender el contexto completo. La codificación automática LM, por otro lado, puede hacer un mejor trabajo en la comprensión del contexto, pero no está diseñada para tareas generativas.