GPT-2 y GPT-3. Aprendizaje en contexto

Rubén Rodríguez Abril

GPT-2 de OpenAI y su sucesor GPT-3, son modelos multitarea, que no necesitan ser afinados (fine-tuned). Son capaces de aprehender cuál es la tarea a realizar mediante el denominado aprendizaje en contexto, realizado durante la fase de evaluación.

GPT-2

El segundo de los modelos de la serie GPT, GPT-2, es en buena medida una simple extensión a mayor escala (diez veces superior en términos de número de parámetros y de tamaño de la base de datos) de su predecesor inmediatamente anterior GPT-1. Sin embargo, presenta una poderosa innovación: es un modelo multitarea. Tal y como se expuso en el artículo anterior, el entrenamiento de GPT-1 se estructura en dos fases: la primera de ellas, la de preentrenamiento (pre-training), es no supervisada, y es común para todas las actividades. La segunda fase, que es la de afinamiento (fine-tuning), es específica para cada tipo de tarea. La principal novedad de GPT-2 es que prescinde por completo del afinamiento y utiliza el mismo cabezal para cualquier clase de cometido.

Aprendizaje en contexto

Los investigadores de OpenaAI habían observado que la mente humana es capaz de aprender a realizar tareas habiendo visto previamente apenas un par de ejemplos. Y se preguntaron si sería posible construir un modelo de NLP en el que el entrenamiento fuera común para todas las tareas, y en el que la actividad específica a realizar viniera descrita en la propio entrada, acompañada, tal vez de algunos ejemplos, de un modo similar al que aparece en la siguiente imagen:

En GPT-1 la tarea a realizar es determinada implícitamente al elegir el cabezal del modelo. En GPT-2, por el contrario, el cabezal es el mismo en todos los casos. La tarea a realizar es descrita en la entrada. 

"shots"

Cuando la entrada se limita a describir la actividad que debe ejecutar el modelo, sin proporcionar ningún ejemplo, se denomina zero-shot. Si, por el contrario, se ajuntan uno o varios ejemplos, se utilizan la expresiones one-shot o few-shot, respectivamente.En todos estos casos, los parámetros de la red permanecen invariantes. La red parece aprender durante la fase de evaluación en un procedimiento que la literatura especializada denomina aprendizaje en contexto (in-context learning).
Tres métodos distintos de Aprendizaje por Contexto en GPT-2.

Tipos de Aprendizaje en Contexto durante el periodo de evaluación.

Aprendizaje no supervisado

Dado que el aprendizaje de GPT-2 es enteramente no supervisado, en nuestra opinión (tal y como expusimos en el artículo inmediatamente anterior de esta serie) sus capacidades lingüísticas se desarrollan a partir del simple análisis estadístico de estructuras, que el modelo realiza durante la fase de preentrenamiento, pero sin entender realmente cuál es el significado intrínseco de cada palabra, frase o párrafo. Este método, que a priori podría parecer poco eficiente, es muy poderoso y permite por ejemplo al modelo aprender a traducir frases del inglés, tal y como se muestra en la imagen:

Ejemplo de Aprendizaje en Contexto con un prompt de un poema en GPT-3

Ejemplo de aprendizaje en contexto. Esta entrada se estructura en dos poemas precedidos, cada uno de ellos, de su título y de su autor. Tras ellos, se añade un título imaginario (“Shadows on the way”) y el nombre de un poeta real (Wallace Stevens). Cuando la máquina (en este caso, GPT-3) lee los datos, genera como salida una poesía con la temática descrita en el título y empleando el estilo del autor.

Arquitectura de GPT-2

La arquitectura de GPT-2 consiste en un codificador compuesto de tres niveles:

– En el primer nivel, los tokens de entrada son sometidos a una doble codificación, posicional y de incrustación (embedding). Esta última, a diferencia de lo que sucede en GPT-1 y en otros sistemas de traducción a máquina, no es ya una codificación léxica, palabra a palabra.. El sistema empleado es la codificación por pares de bytes (Byte Pair Encoding), que va a medio camino entre la codificación de palabras y la de caracteres/bytes. Son los pares de bytes, y no las palabras, los que son transformados inicialmente en vectores, lo que permite al transformer reconocer rasgos de carácter fonológico y ortográfico, e incluso reconocer a palabras escritas con faltas de ortografía. La composición de las letras en palabras se realiza por las unidades de atención de las capas inmediatamente superiores.

– En un segundo nivel, se sitúan 24 módulos idénticos de transformers, con la misma estructura que en el caso de GPT-1, si bien en este caso las subcapas de normalización se sitúan antes de la Unidad de Atención y de la minired orientada hacia adelante (Capa Lineal).

-En el nivel final se sitúa un régimen lineal, consistente en la matriz traspuesta de la matriz de embedding, seguido de una función softmax. Este nivel imprime la cadena de salida.

Procesamiento en GPT-2

Ilustración sobre la arquitectura transformer de GPT-2.

Como ya señalábamos en el artículo anterior, en los modelos de la serie GPT compuestos de un único codificador, las palabras son vinculadas unas a otras por las unidades de autoatención, que generan así estructuras lingüísticas de cada vez mayor complejidad y abstracción conforme se progresa desde la entrada hacia las primeras capas interiores. Aproximadamente a partir de la capa octava, el proceso se invierte, y los tokens que cada capa de transformers produce representan estructuras lingüísticas cada vez más localizadas. Finalmente, la salida generada por la última capa lineal y la función softmax subsiguiente está compuesta de pares de bytes.

Por lo demás, el vocabulario consta de 50.257 pares de bytes y el tamaño de la matriz de contexto es de 1024 tokens. El modelo es entrenado con lotes de 512 componentes.

La base de datos empleada durante el preentrenamiento es WebText, que viene integrada por todas la páginas webs enlazadas desde artículos de Reddit que hayan recibido más de tres votos positivos por parte de los usuarios. tiene un tamaño de unos 40 GB de texto distribuidos en 8 millones de documentos

GPT-3

GPT-3 es una versión actualizada y a mayor escala de GPT-2. Fue presentado en Mayo de 2020, y su arquitectura es adaptable a ocho tamaños diferentes. El número de parámetros oscila desde los 125 millones de GPT-3 Small a los 175.000 millones de GPT-3 175B, que es el modelo GPT-3 propiamente dicho. Este último se compone de 96 módulos de transformers que procesan vectores de 12.288 dimensiones. Sus unidades de atención disponen de 96 cabezas de tamaño 128×128.

El modelo es entrenado utilizando cinco bases de datos: Common Crawl WebText2, Books1, Books2 y Wikipedia. CommonCrawl (380 TiB de tamaño en Octubre de 2022) se compone de más de 3.000 millones de documentos indexados de la World Wide Web, WebText2 es una versión actualizada de WebText, mientras que Books1 y Books2 son colecciones de libros cuyos derechos de propiedad intelectual pertenecen ya al dominio público. El costo computaconal de su entrenamiento asciende a 3,1e23 FLOP frente a los 1,5e21 de GPT-2.

Capacidades

GPT-3 fue sometido a diversas pruebas por parte del equipo de investigadores de OpenAI con el objetivo de comprobar sus capacidades en diversas tareas como determinar dependencias de alto alcance en un texto, completar frases y párrafos, confeccionar árboles sintácticos de oraciones, responder a cuestiones de conocimiento general (open-book) o relacionadas con la comprensión de un texto concreto (closed-book); realizar traducciones del inglés al francés, detectar estructuras anafóricas (cuestiones de Winograd) o llevar a cabo razonamientos de sentido común relacionados con objetos del mundo físico o ejercicios de comprensión lectora. Además, se midió su eficiencia en la realización de tareas sintéticas y cualitativas como operaciones aritméticas, sopas de letras, redacción de artículos periodísticos, o el aprendizaje y utilización de neologismos, entre muchas otras.

El modelo tenía dificultades en algunas actividades como la comprensión del mundo físico, respondiendo erróneamente a cuestiones como: “Si coloco queso en el frigorífico, ¿se fundirá?”. También surgían problemas durante la síntesis de textos largos, en los que no eran infrecuentes las contradicciones lógicas, las repeticiones semánticas o frases y párrafos que quedaban incompletos.

Con todo, la eficiencia de GPT-3 es impresionante. Y lo es en tal grado que sus creadores expresaron su temor de que pudiera ser utilizado para actividades maliciosas como estafas, redacción de artículos académicos fraudulentos o actividades de ingeniería social.

Tabla con los diferentes tamaños de GPT-3 y sus rendimientos.

Diferentes versiones de GPT-3. Como se puede comprobar, la tasa de aprendizaje es más pequeña en los modelos más grandes.

GPT-2 y GPT-3: ¿dos ejemplos de habitación china?

Lo verdaderamente sorprendente de estos dos modelos es que durante su entrenamiento la máquina no tiene acceso, directo o indirecto (a través del aprendizaje supervisado realizado por humanos), a los qualia asociados a palabras, frases, párrafos y textos. Sus capacidades no se basan en la aprehensión del significado intrínseco de los conceptos, sino a un gigantesco y maravilloso análisis estadístico de millones de textos.

Por este motivo, GPT-3 en principio podría utilizarse incluso para crear párrafos en lengua minoica (Lineal A) o en la escritura de la civilización del Valle del Indo, idiomas que aún no han sido descifrados y el significado de cuyos textos en buena medida desconocemos.

Generación de texto correcto, sin comprender qué significa dicho texto. La máquina tendría un comportamiento muy similar al descrito por John Searle en su experimento mental de la habitación china, expuesto en un célebre articulo del año 1980 titulado “Minds, Brains, and Programs», y que tantas discusiones filosóficas ha dado lugar en los últimos 25 años, por sus implicaciones en el ámbito de la Inteligencia Artificial y de la naturaleza de la consciencia.

Deep Learning

Mistral AI

Deep Learning

CLIP