El Procesamiento del Lenguaje Natural y la magia negra

29/1/2025
AUTOR
Colegio de matemáticas Bourbaki

Quienes hemos trabajado con el Procesamiento del Lenguaje Natural desde hace algunos años sabemos que detrás de los célebres Grandes Modelos del Lenguaje de OpenAI, Google, Meta o DeepSeek AI no hay magia negra sino el resultado de un progresivo trabajo en el modelado matemático de la información que existe en las bases de datos de textos.

En este artículo hablaremos sobre cómo el funcionamiento de los maravillosos LLM no parece tan poco creíble si suponemos algunos modelos sencillos del lenguaje llamados encajes (embeddings) los cuales han sido parte del estado del arte mucho antes que la fiebre de los Chatbots por medio de AI nos abrazara.

En particular nos centraremos en la famosa propiedad de las analogías que satisfacen estos encajes. En todo caso si deseamos acusar a alguien de brujería, esta propiedad sería la más difícil de defender ante la inquisición.

El artículo no será muy sofisticado y solo buscamos generar en nuestros lectores un sentimiento de cercanía con el funcionamiento de estos modelos, debemos insistir en que este texto de ninguna manera representa una explicación exhaustiva sobre el funcionamiento de las redes neuronales el cual sobra decirlo continúa siendo un misterio para la estadística.

El objetivo de los encajes (embeddings)

La representación vectorial tradicional de las palabras utiliza la técnica del procesamiento de datos conocida como one-hot-encoding en la que cada una de las coordenadas de un vector corresponde con una posible palabra que aparece en un conjunto de textos.

La desventaja inmediata de este acercamiento es la gran dimensionalidad que tendrían los vectores sin embargo existe otra aún más problemática: al utilizar una coordenada para cada palabra, estamos suponiendo que no existe ninguna relación estadística entre ellas. Es cierto que la estadística de una base de datos podría remediar este problema pues posiblemente en un conjunto con suficientes textos, las variables boloñesa y pesto exhiban alguna dependencia estadística. Desafortunadamente aunque este acercamiento sí funciona bien para tareas simples como la clasificación de textos, no ha probado ser lo suficientemente bueno en problemas generativos como los de un traductor o un ChatBot.

Sin entrar en muchos detalles sobre cómo lo hacen, los encajes (embeddings) como Word2vec o GLOVE son redes neuronales que son entrenadas de manera auto-supervisada que para cualquier palabra en el vocabulario con el que se entrenó, nos arrojan un vector. En este texto si representamos a una palabra con la letra w minúscula, el vector que nos arroja el encaje será la misma letra pero mayúscula, normalmente estos vectores tendrán solo cientos de coordenadas. Estos modelos están entrenados para la siguiente tarea:

  • Si los significados de dos palabras w, w' son similares, entonces los vectores W y W' son semejantes entre sí (forman un ángulo cercano a cero).

Estos modelos son increíblemente eficientes y tienen muchas aplicaciones en un sin fin de tareas, piense por ejemplo cómo LinkedIn logra recomendarnos perfiles afines sin que nuestros puestos sean idénticos como palabras. Los modelos de lenguaje también pueden asociar vectores a textos enteros, sufijos en un idioma como la terminación "ando" del gerundio o más aún a símbolos como fórmulas químicas por ejemplo, podríamos llamarles tokens en general para no centrarnos solo en palabras.

La propiedad (emergente y no-supervisada) de las analogías

Desde mi punto de vista la magia negra detrás de los modelos del lenguaje empieza y termina en una propiedad que satisfacen los encajes de palabras a pesar de no haber sido entrenados para ello. Es una propiedad emergente precisamente porque no es parte del entrenamiento ni la arquitectura, tampoco es un entrenamiento supervisado, notarán que si se intenta satisfacer esta propiedad con una base supervisada sería absolutamente inverosímil.

Notemos que al vectorizar las palabras, podemos operar con aritmética básica del álgebra lineal entre ellas, por ejemplo podríamos restar dos vectores. Para esta explicación consideremos las siguientes palabras:

  • pizza, pasta, margarita y boloñesa

Así como sus vectores correspondientes

  • PIZZA, PASTA MARGARITA Y BOLOÑESA

La propiedad de las analogías se satisface cuando existe un ángulo cercano a cero entre los siguientes vectores donde el guión es la resta entre vectores:

  • PIZZA - MARGARITA
  • PASTA - BOLOÑESA

Por poner otro ejemplo, los encajes también satisfacen que existe un ángulo pequeño entre los siguientes vectores:

  • PROGRAMAR - PROGRAMANDO
  • COCINAR - COCINANDO

No cabe duda de que es completamente fascinante que esta propiedad sea cierta a pesar de que no se entrenó explícitamente para esta tarea. Recordemos que esto sigue siendo cierto cuando en lugar de palabras utilizamos símbolos, un ejemplo notorio de esto es el siguiente trabajo publicado en Unsupervised word embeddings capture latent knowledge from materials science literature en el que con una base de datos de artículos científicos sobre la Ciencia de Materiales, se resolvieron este tipo de analogías inclusive entre fórmulas químicas (tokens) que relacionan la oxidación de un elemento por ejemplo.

Como un detalle curioso Geoffrey Hinto el flamante ganador del Premio Nobel de Física del año pasado, había descubierto esta propiedad posiblemente antes de que se publicara el trabajo de Word2vec como lo muestra este intercambio de correos.

El verbo boloñesear

Una vez que creemos en la propiedad de las analogías entre los vectores asociados a las palabras o a tokens, pensemos en el siguiente prompt copiado directamente de mi cuenta de ChatGPT:

  • PROMPT: Si la palabra boloñesa fuera un verbo, ¿cuál sería su conjugación en gerundio?
  • ChatGPT: ¡Qué interesante pregunta! Si imaginamos que boloñesa fuera un verbo, podría tener una conjugación algo creativa. Siguiendo el modelo de verbos regulares que terminan en -ar, su conjugación en gerundio podría ser boloñeseando. Así que, si uno estuviera en medio de hacer algo como una receta, podríamos decir algo como: "Estoy boloñeseando la pasta". Aunque, claro, todo depende de cómo lo definamos, ¿no? ¿Qué te parece a ti?

Aunque es casi imposible que ChatGPT haya tenido estos dos textos en su entrenamiento, no es nada extraño imaginar que haya tenido textos que explican cómo se construye el gerundio.

Siguiendo la línea del artículo vamos a vectorizar tanto el prompt como el texto (por supuesto que le pedí a ChatGPT que lo convierta en mayúsculas):

  • SI LA PALABRA BOLOÑESA FUERA UN VERBO, ¿CUÁL SERÍA SU CONJUGACIÓN EN GERUNDIO?
  • ¡QUÉ INTERESANTE PREGUNTA! SI IMAGINAMOS QUE BOLOÑESA FUERA UN VERBO, PODRÍA TENER UNA CONJUGACIÓN ALGO CREATIVA. SIGUIENDO EL MODELO DE VERBOS REGULARES QUE TERMINAN EN -AR, SU CONJUGACIÓN EN GERUNDIO PODRÍA SER BOLOÑESEANDO. ASÍ QUE, SI UNO ESTUVIERA EN MEDIO DE HACER ALGO COMO UNA RECETA, PODRÍAMOS DECIR ALGO COMO: "ESTOY BOLOÑESEANDO LA PASTA". AUNQUE, CLARO, TODO DEPENDE DE CÓMO LO DEFINAMOS, ¿NO? ¿QUÉ TE PARECE A TI?

Pensemos ahora en un LLM como un modelo que busca cuál es el vector compuesto por palabras que sí existen más cercano al siguiente vector:

  • (TEXTO SIMILAR AL PROMPT QUE ESTÁ EN EL DATA SET ) - (RESPUESTA AL PROMPT EN EL DATASET) - (PROMPT ACTUAL)

¿Dónde aprender Procesamiento del Lenguaje Natural?

En el Colegio de Matemáticas Bourbaki enseñamos con detalle las matemáticas y las bases para que nuestros estudiantes estén listos para aprender los modelos más avanzados de Inteligencia Artificial, Ciencia de Datos y Finanzas Cuantitativas.