Embeddings

Embeddings, LLMs y algunas de sus aplicaciones a mediados de 2024

I.

Están apareciendo herramientas basadas en LLMs para industrializar la investigación. Tengo recopiladas, por el momento, cuatro: Consensus, Zotero, Elicit, Tavily y FutureSearch. De vez en cuando pruebo Consensus para valorar cómo va mejorando. Y le queda: la última vez, al preguntarle sobre el procedimiento científico para reproducir la dipladenia por esquejes, me sugirió algo así como aplicarle rayos gamma (!).

II.

Unos cuantos enlaces sobre aplicaciones reales —en la economía real— de los LLMs (y los LMMs) en diversas áreas, como el vídeo (vía sora), la música (vía suno), la programación (vía devin) o el RAG y/o Finetuning.

Más sobre paralelismos entre textos vía embeddings

Retomo el asunto de los paralelismos entre textos, que ya traté aquí, por el siguiente motivo:

  • Estoy explorando las posibilides del RAG
  • Para lo cual es necesario crear una base de datos documental con los fragmentos debidamente embebidos
  • En particular, estoy probando lo que chroma da de sí.

Esencialmente, chroma consiste en:

  • Una base de datos (SQLite, de hecho) donde se almacenan los fragmentos, sus metadatos y sus embeddings.
  • Mecanismos para crear los embeddings.
  • Mecanismos para buscar (por similitud de los embeddings) fragmentos relacionados con una petición de búsqueda.

Mis experimentos en español han sido catastróficos. La culpa, realmente, no parece ser de crhoma en sí sino de los algoritmos de embedding —se supone que específicos para el español— que he utilizado. Lo que sigue es un resumen de los resultados obtenidos en inglés, que parecen mucho mejores.

Paralelismos entre textos vía embeddings: el caso, por poner uno, de los evangelios de Mateo y Marcos

Hace un tiempo tuve que leerlo todo sobre cierto tema. Entre otras cosas, cinco libros bastante parecidos entre sí. Era una continua sensación de déjà vu: el capitulo 5 de uno de ellos era casi como el tres de otro, etc. Pensé que podría ser útil —y hacerme perder menos tiempo— poder observar el solapamiento en bloques —sígase leyendo para entender mejor el significado de lo que pretendía—.

En esta entrada voy a mostrar el resultado de mis ensayos sobre unos textos distintos. Los que me interesaban originalmente estaban en PDF y hacer un análisis más o menos riguroso exigía mucho trabajo de limpieza previo. Pensando en otros textos distintos que vienen a contar la misma historia se me ocurrió utilizar dos de los evangelios sinópticos (en particular, los de Mateo y Marcos).

Uso y abuso de los "embeddings"

La variable feota por excelencia de nuestra profesión es el código postal: es categórica, tiene miles de niveles, muchos son infrecuentes, etc. Así que cuando se inventaron los embeddings, hace la tira, se me ocurrió crear uno por defecto. Es decir, una representación en baja dimensión de esa variable que pudiera aplicarse a una variedad de modelos. Y así fue hasta que al cabo de unos minutos se me ocurrió que ya existía una, muy natural, en dos dimensiones, que difícilmente iba a poder ser batida por un constructo ciego a la realidad: latitud y longitud.

Dos ejercicios (propuestos) sobre "embeddings"

Se me han ocurrido en los dos últimos días un par de ejercicios sobre embeddings que no voy a hacer. Pero tal vez alguien con una agenda más despejada que la mía se anime. Uno es más bien tonto; el otro es más serio.

El primero consiste en tomar las provincias, los códigos postales o las secciones censales y crear textos que sean, para cada una de ellas, las colindantes. Luego, construir un embedding de dimensión 2. Objetivo: probar o refutar que el embedding es una transformación de las coordenadas geográficas de las unidades geográficas. Bonus: ver qué pasa con embeddings de dimensión superior.

"Embeddings" y análisis del carrito de la compra

Escribiendo la entrada del otro día sobre embeddings, no se me pasó por alto que la fórmula

$$ \frac{P(W_i,C_i)}{P(W_i)P(C_i)}$$

que escribí en ella es análoga al llamado lift (¿es el lift?) del llamado análisis del carrito de la compra, i.e., el estudio de productos que tienden a comprarse juntos (véase, por ejemplo, esto).

Lo cual me lleva a sugerir mas no escribir una entrada en la que se rehagan este tipo de análisis usando embeddings: los ítems como palabras, los carritos como textos, etc. Si alguien tiene tiempo y le sale algo potable, que avise y lo enlazo aquí.

¿De qué matriz son los "embeddings" una factorización?

Hoy, embeddings. Esto va de reducir la dimensionalidad de un espacio generado por palabras (procedentes de textos). Si a cada palabra le asignamos un vector índice (todo ceros y un uno donde le corresponde), la dimensión del espacio de palabras es excesiva.

La ocurrencia de algunos es asociar a cada palabra, $latex W_i$, un vector $latex w_i$ corto (p.e., 100) con entradas $latex w_{ij}$ a determinar de la manera que se explica a continuación.