El enorme blockhead que es GPT-3

Publicado: 5 septiembre 2020 en Ciencias de la computación, Filosofía del lenguaje, Tecnología
Etiquetas:, , , , , , , ,

Cuando pensamos en cómo implementar un programa capaz de manejar competentemente un lenguaje, lo primero que se nos pasa por la cabeza es enseñar a la máquina gramática. Hay que saber de sujetos, predicados, objetos directos y complementos circunstanciales. Y también semántica. Tendríamos que conseguir que el programa comprendiera en algún sentido los significados de las palabras para que no articulara únicamente frases sintácticamente correctas, sino también frases con sentido. Eso es aún más difícil. Los filósofos del lenguaje llevan ya un largo rato intentando comprender qué quiere decir que algo significa algo y todavía no lo tienen demasiado claro. Podemos crear un diccionario… Bien, todo esto ya se ha intentado y, desgraciadamente, no se ha conseguido demasiado… hasta ahora. El lenguaje se había mostrado como mucho más rico e inmanejable de lo que nadie hubiera supuesto y tareas como la traducción automática de idiomas o el dominio competente de la conversación se han mostrado mucho más complicadas de lo que los pioneros de la inteligencia artificial supusieron. Pero ahora algo ha cambiando ¿Nadie ha caído en lo bien que va funcionando el traductor de Google?

Una técnica interesante es la llamada word embedding. Codificamos cada palabra con un vector de N dimensiones. La distancia entre vectores expresaría la distancia semántica entre dos palabras. Por ejemplo, la palabra “luna” estaría más cerca en un espacio de N dimensiones, de la palabra “noche” que de la palabra “destornillador”. Así se crea una red semántica que resulta muy útil en determinadas tareas como el análisis de sentimientos. Podríamos clasificar textos en función de lo cerca o lejos que se encuentre la suma de todos sus vectores a la palabra “tristeza” para comparar el estado de ánimo de sus escritores. De la misma forma podríamos comparar textos escritos por suicidas para poder predecir la tendencia a quitarse la vida de gente a partir de las últimas cosas que escribe.

Nótese esta concepción geométrica del significado: las palabras significan en función de su posición con respecto a otras palabras. No hay nada más fuera de esa distancia que nos pueda aportar algo sobre el significado de la palabra. Eso choca con nuestra intuición. Solemos manejar naturalmente una teoría representacionista del lenguaje en la que las palabras significan porque representan un objeto del mundo. La palabra “manzana” no es absurda porque existen manzanas reales que aparecen de alguna extraña forma en nuestra mente cuando la oímos pronunciar. Sin embargo, una red semántica es un sistema cerrado que solo remite a elementos dentro de sí misma. Es, por así decirlo, completamente solipsista.

Pero es que si esto nos parece que se aleja de nuestra forma de comprender el lenguaje, las técnicas que utiliza el actual deep learning y que está generando una grandísima expectación, se alejan muchísimo más. El modelo de lenguaje que usan arquitecturas como el actual GPT-3 y sus predecesores, así como Google BERT, T5 o ELMo, es lo que se conoce como una semántica distribuida. Se basa en utilizar la gran potencia del Big Data para analizar frecuencias y cercanías de palabras, tokens o letras. La versión larga de GPT-3 analiza 175 mil millones de parámetros (su antecesor, GPT-2, analizaba tan solo 1.500 millones. El crecimiento ha sido de dos órdenes de magnitud) que han sido entrenados con una versión filtrada del dataset Common Crawl con 410.000 millones de tokens de tamaño (sumando Webtext 2, Books 1 y 2 y toda Wikipedia). Es, que yo sepa, la arquitectura de redes neuronales más grande jamás construida hasta la fecha.

GPT-3 está programado para generar texto a partir de otro texto dado. Lo interesante es que para acertar a la hora de generar ese texto tiene que saber realizar muchas tareas diferentes. Por ejemplo, si yo le escribo como entrada “2+2=”, para responder correctamente “4” debería saber sumar (o, por fuerza fruta, tener unas inmensas tablas de resultados de sumas en su memoria), o si yo escribo “Laura es inteligente, egoísta y perezosa ¿Cuál es su mejor cualidad?”, para responder correctamente el programa ha de saber que la inteligencia suele considerarse como una cualidad positiva mientras que el egoísmo y la pereza no (o, por fuerza bruta, disponer de textos con algún parecido en donde se ha respondido de forma adecuada). Es decir, lo interesante de GPT-3 es que para completar texto hay que saber realizar muchas tareas diferentes que parecen requerir habilidades cognitivas superiores ¿Las posee verdaderamente?

Los mejores resultados obtenidos vienen porque GPT-3 utiliza las revolucionarias redes de tipo TRANSFORMER, una nueva arquitectura que ha superado a las tradicionales redes recurrentes o memorias a largo plazo (LSTM) que solían utilizarse. Éstas estaban diseñadas para poder almacenar información en la que importa el orden temporal, pero esa memoria a la hora de trabajar con grandes secuencias texto era un tanto limitada, de modo que las primeras frases que completaban solían ser correctas, pero el nivel de acierto se degradaba mucho cuando avanzaba en el escrito. Los transformers han mejorado ese aspecto ya que pueden analizar en paralelo amplias secuencias de texto y, lo más destacable, poseen un mecanismo de atención que les permite valorar cada token en función de su relevancia para la tarea a realizar, lo cual ha demostrado una gran efectividad que ha terminado por marcar una gran distancia con sus antecesores. Tienen una cierta capacidad de atención hacia el contexto que se ha mostrado muy eficaz.

Pero en lo referente a la comprensión del lenguaje se ha dado un paso atrás con respecto a otras arquitecturas. Si recordamos el ya pasado de moda WATSON de IBM, que machacaba al personal jugando al Jeopardy!, era un programa clásico, sin redes neuronales ni nada por el estilo, pero su sistema basado en la tecnología DeepQA, combinaba diversas técnicas de recuperación de información, lenguaje natural, representación del conocimiento, razonamiento y aprendizaje. Su conocimiento tenía cierta semántica (se catalogada el significado por regiones mediante unos algoritmos denominados anotadores) y cuando tenía que responder una pregunta, analizaba las respuestas posibles teniendo en cuenta técnicas gramaticales. En la programación de WATSON había mucho más conocimiento del lenguaje y de su significado que en GPT-3. Y esto da para otra reflexión: ¿las redes neuronales artificiales son el futuro o tan solo son una moda que, aunque dé ciertos frutos, pasará? Tendemos, con demasiada facilidad, a quedarnos fascinados por nuestro presente y nos cuesta creer que lo que hoy valoramos como maravilloso mañana quizá no lo sea.

No obstante el solipsismo semántico de GPT-3, solo lo es en cierto sentido. No tiene sensores que le den información del exterior, está completamente desconectado de la percepción y de la acción, pero eso no le hace carecer de toda semántica. Al ser entrenado con textos escritos por personas GTP-3 adquiere la semántica de esas personas. Si sabe que a un “Hola, ¿qué tal?” cabe responder “Bien, gracias” es porque eso tenía sentido en textos que leyó. Por tanto, no podemos decir que GPT-3 carece de semántica, sino más bien todo lo contrario, tiene montañas de semántica, toda aquella de las millones de páginas con las que ha entrenado solo que… él no lo sabe. De hecho, sigue siendo una máquina esencialmente sintáctica, es decir, solo copia y pega trozos de texto, aunque para pegarlos bien se aprovecha del conocimiento semántico generado por otros.

GPT-3 es lo que el filósofo Ned Block llamaría un enorme blockhead, una clarísima habitación china de Searle: un sistema de fuerza bruta capaz de manejar el lenguaje con competencia y que, si da algo más de sí, podría llegar a pasar el test de Turing sin comprender ni una sola palabra de lo que dice. Eso sí, todavía está lejos de conseguirlo. Existen varios artículos que muestran la fragilidad de este tipo de modelos. Por ejemplo, un reciente estudio presentaba los Universal Adversarial Triggers para atacar modelos de NLP, que conseguían, entre otras cosas, que cuando GPT-2 se enfrentaba a la prueba del dataset SQuAD, respondiera en un 72% de las preguntas “To kill american people”, o que al hacerlo con el dataset SNLI, bajara en su rendimiento de un 89,94 a un 0,5%. En otro estudio, McCoy, Pavlick y Linzen, crearon un dataset llamado HANS pensado específicamente para que susodichos modelos fallaran. La idea era que, según los autores, funcionan mediante heurísticos (técnicas de búsqueda) que van bien para casos muy frecuentes pero que fallan estrepitosamente ante cualquier tipo de excepción que se salga de lo normal. Así estudiaron tres heurísticos:  Asumir que una premisa implica todas las hipótesis construidas a partir de palabras en la premisa (Lexical Overloop), asumir que una premisa implica todas sus subsiguientes contiguas (Subsecuence) y asumir que una premisa implica todos los subárboles completos en su árbol de análisis (Constituent). Entonces diseñaron HANS con todo tipo de ejemplos en los que estas heurísticas fallan y los datos les dieron la razón: BERT puntuó bajísimo.

El psicólogo Gary Marcus y el informático de la Universidad de Nueva York Ernest Davis sometieron a GPT-3 a una prueba informal de 157 preguntas acerca de razonamiento biológico, físico, psicológico, non sequiturs, seguimiento de objetos e individuos a lo largo de una frase, etc. La máquina acertó 71 (un 45%) mostrándose, igualmente, muy débil. Veamos tres ejemplos (en negrita la continuación del texto generada por GPT-3:

You poured yourself a glass of cranberry juice, but then you absentmindedly poured about a teaspoon of grape juice into it. It looks okay. You try sniffing it, but you have a bad cold, so you can’t smell anything. You are very thirsty. So you drink it.

You are now dead.

Confunde el zumo de uva con veneno.

If you break a glass bottle that holds toy soldiers, the toy soldiers will probably

  1. be angry
  2. be sad
  3. be happy
  4. be scared.

If you break a glass bottle that holds toy soldiers, the toy soldiers will probably be angry.

Los soldaditos de juguete no tienen sentimientos.

At the party, I poured myself a glass of lemonade, but it turned out to be too sour, so I added a little sugar. I didn’t see a spoon handy, so I stirred it with a cigarette. But that turned out to be a bad idea because it kept falling on the floor. That’s when he decided to start the Cremation Association of North America, which has become a major cremation provider with 145 locations.

Falla en la respuesta y luego balbucea estupideces.

Sin embargo, a pesar de esta debilidad, de esta falta de comprensión, todavía tiene un punto a su favor: puede aprender más. En 2012 el investigador canadiense Hector Levesque propuso una alternativa (o más bien una concreción) al test de Turing: el test de esquemas de Winograd. En esta prueba se hacen a la máquina una serie de preguntas conocidas como pares de Winograd que tienen la cualidad de que para responderlas correctamente hace falta cierto conocimiento implícito o de sentido común. Un ejemplo:

Frank felt crushed when his longtime rival Bill revealed that
he was the winner of the competition. Who was the
winner?
Answer 0: Frank
Answer 1: Bill

Para acertar hace falta saber que si tu rival de toda la vida te gana sueles sentirte mal, es decir, tener un conocimiento previo que no puede deducirse de los contenidos de la pregunta. El test de esquemas de Winograd tiene la virtud de que un sistema diseñado para hacerse pasar por humano simplemente fingiendo (uno tipo a la ELIZA de Weizenbaum) fallaría. Para superar el test hace falta, de verdad, mostrar inteligencia y no solo aparentarla. Entonces, es de suponer que las frágiles nuevas arquitecturas de NLP como GPT-3 no lo superarán… ¿o sí?

Pues lo pasan ¿Cómo? Porque ya existe un dataset llamado WinoGrande que sirve para medir a los programas en este tipo de problemas, pero con el que también podemos  entrenar a nuestro programa para que lo supere. GPT-3 consiguió un impresionante éxito del 70,2% en él sin ningún ejemplo previo que le orientara (zero-shot learning). De la misma forma, los diseñadores de HANS notaron que cuando los programas que antes lo hacían muy mal se entrenaban con ejemplos similares a los de HANS, su rendimiento mejoraba mucho. Y es que aquí parece estar la clave: ¿que nuestro sistema no entiende una tarea? No importa, entrénalo con miles de ejemplos y, al final, lo hará bien aunque no la entienda. Es como el famoso teorema del mono infinito: si tenemos millones de monos tecleando al azar en máquinas de escribir durante miles de años, al final, necesariamente, alguno escribirá el Quijote. GPT-3 es como un gigantesco savant, un imbécil que tiene en su memoria todo lo que la humanidad ha escrito y que ha sido entrenado con un poder de cómputo tan grande que siempre encuentra la palabra exacta. Verdaderamente no lo hace siempre, todavía es bastante peor que la campaña de publicidad de OpenIA nos quiere hacer ver, pero en el futuro podría seguir mejorando. Y aquí es donde viene la reflexión con la quiero concluir: ¿cuál es el límite de la fuerza bruta?  Los informáticos, amantes de la elegancia matemática, siempre han pensado que la inteligencia artificial fuerte (la strong IA) estaría en un programa fruto de una genialidad, en algo simple pero sumamente inteligente. Por el contrario, la fuerza bruta siempre ha gozado de mala fama: es la tosquedad, la estupidez por definición ¿cómo de ahí va a salir algo bueno? Bien, ¿y si eso solo fuera un prejuicio? Y si, sencillamente, por fuerza bruta pudiese conseguirse todo. El número de respuestas válidas en una conversación es potencialmente infinito, pero podría acotarse en un subconjunto que, si nuestra capacidad de cómputo sigue yendo hacia arriba, podríamos llegar a manejar. Quizá la reflexión que nos espera cuando tengamos computación cuántica y 5G sea esa: ¿qué es lo que se puede y no se puede hacer con una inimaginable fuerza bruta?

P.D.: La empresa OpenIA se creó, decían, sin ánimo de lucro. Cuando sacaron GPT-2 no quisieron ni liberar el código ni dejar que lo probásemos por miedo, decían, a que se utilizara para malos usos. Pues bien, según me llega en un tweet de Gary Marcus, para octubre, quien quiera o pueda pagar, podrá usar GPT-3 sin ningún problema (Esto para los que piensen que Elon Musk va a salvar la humanidad).

comentarios
  1. Samu dice:

    La cuestión es cómo funciona nuestro cerebro para dotarnos de nuestras habilidades cognitivas: ¿fuerza bruta o no? Tenemos más de un trillón de sinapsis realizando conexiones entre neuronas sin ningún patrón demasiado claro en general (a parte de detectarse subredes bien demarcadas). ¿Podría un sistema de redes neuronales artificiales imitar todas nuestras habilidades cuando escale en número de parámetros a un trillón o más? No se puede descartar en principio.

  2. Mario dice:

    Sobre Gary Marcus y el test realizado…, a veces es importante saber preguntar para obtener las respuestas correctas –> https://arr.am/2020/07/25/gpt-3-uncertainty-prompts/

  3. jajugon dice:

    También el segundo Wittgenstein y sus usos del lenguaje: aprendemos la semántica por exposición masiva (fuerza bruta) al uso de determinadas palabras en determinados contextos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s