Retreival-Augmented Generation (RAG): el arte de generar buscando

1/8/2024
AUTOR
Colegio de matemáticas Bourbaki

Una de las críticas más feroces que se le han hecho a los Grandes Modelos de Lenguaje es llamarlos pericos pues se afirma que únicamente repiten la información a la que han tenido acceso durante el proceso de entrenamiento sin que necesariamente entiendan correctamente lo que están diciendo.

Evidentemente es difícil juzgar si uno de estos modelos verdaderamente entiende lo que está diciendo o no pues como todos hemos experimentado, un sistema como ChatGPT (el cual está basado en un LLM) arroja respuestas de una calidad extraordinaria para algunos temas y en estos casos sería difícil afirmar que no comprende lo que está diciendo.

Los modelos de Generación Mejorada por Recuperación (RAG en inglés) buscan incrementar la calidad de los los textos que el LLM utilizará para realizar inferencias sobre un prompt X. En este texto explicaremos las ideas generales de cómo funcionan estos modelos matemáticos.

Esta técnica está siendo muy utilizada por compañías al rededor del mundo con el objetivo de mejorar la calidad en las respuestas de un ChatBot incorporando el conocimiento que tienen dentro de sus bases de datos.

Los modelos RAG como espías

De una manera muy simple podemos pensar en los modelos RAG como el enriquecimiento de un modelo del lenguaje con lo siguiente:

  1. Una base de datos con conocimiento de experto sobre algún tema.
  2. Un nuevo modelo matemático que nos ayudará a buscar información la información en la base de datos anterior.

Para hacer más simple la explicación, imaginemos que nuestro LLM original es un espía profesional que es capaz de pelear, investigar, encubrir su identidad, etc. Nuestro espía podría no estar familiarizado con algún tipo de vehículo que necesite para alguna misión en particular, imaginemos que necesita conducir un tipo de vehículo que nunca ha utilizado antes, un tipo de ropa particular o que necesita fingir que ha vivido en alguna ciudad del mundo.

Hasta los grandes espías como el famoso James Bond, necesitan ayuda para prepararse en sus misiones complicadas. Los puntos 1) y 2) respectivamente mencionados son el análogo en el caso de un espía de:

  1. El acceso a vehículos especializados, detalles sobre la vida en alguna ciudad del mundo, armas sofisticadas, etc..
  2. Un equipo de expertos que le ayuden a James Bond a decidir cuál de las herramientas serían más útiles de acuerdo a su misión.

¿Cómo funcionan los LLM?

Los Grandes Modelos del Lenguaje al entrenarse buscan calcular la probabilidad de que un texto Y sea una continuación del prompt X que introdujo el usuario, para esto hay distintos métodos como podrían calcularse.

El método más evidente es simplemente buscar cuántas veces dentro de nuestro conjunto de entrenamiento aparece el texto (X,Y). Desafortunadamente esto en general causará un problema de sub-ajuste pues la cantidad de posibles preguntas seguidas por respuestas es exponencialmente grande y aunque las bases de datos con las que se entrenan los LLM son tan grandes como Wikipedia, es imposible tener un conjunto de datos lo suficientemente bueno.

El segundo enfoque es parametrizar a las probabilidades de que el texto Y esté después del texto X utilizando una red neuronal profunda, lo anterior es equivalente a agregar un conjunto de variables latentes a las que llamaremos Z conectadas entre sí iterativamente por medio de funciones lineales y no-lineales. Por increíble que parezca este método es bastante eficiente y ha generado resultados increíbles como ChatGPT.

¿Cómo funcionan los modelos RAG?

En esta sección vamos a dividir a la arquitectura y el entrenamiento de uno de estos modelos en tres pasos indispensables los cuales combinan importantes ideas en las arquitecturas de las redes neuronales profundas. Es importante mencionar que existen algunas modificaciones recientes del enfoque que estamos presentando en este texto es el del trabajo original en el que se introdujeron los modelos RAG: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. Estas técnicas son distintas a lo que normalmente se conoce como Fine-Tuning.

Paso 1: Un encoder para vectorizar la base de datos especializada

Los modelos RAG utilizan una poderosa idea en machine learning conocida como encoders la cual por medio de una base de datos no supervisada construye una nueva representación de nuestros registros a la que llamaremos encaje o embedding que además codifica vectorialmente a la semántica.

Sugerimos a quienes no estén familiarizados con este concepto que imaginen el resultado de entrenar un PCA en el conjunto de nuestros datos. Utilizando estos encoders que en el contexto original de los RAG se llaman BERT, se genera un conjunto de vectores latentes asociados a los textos en nuestra base de datos, digámosles Z(1), Z(2), Z(3), ...

Paso 2: Una red neuronal como buscador experto en la base de datos

Utilizando el mismo encoder BERT se genera un vector latente al que llamaremos Z(X) y el cual compararemos por medio de una medida de similitud las representaciones latentes Z(1), Z(2), Z(3), ... Es posible pensar en este proceso como un query adentro de una base de datos en el que el hiper-parámetro más relevante será el número de textos extraídos. Después de este proceso se encontrará algún número K de los registros más relevantes y guardaremos las variables de la siguiente manera: Z(1)', Z(2)', ... , Z(K)'.

Es muy interesante que este paso en RAG es parte de los parámetros entrenables lo cual significa que los modelos se entrenan en conjunto, inclusive en algunos casos se permite que exista un fine-tuning de los encajes o del modelo generativo.

Paso 3: Un LLM pre-entrenado

El último paso es agregar a nuestras variables latentes al LLM con el que generaremos nuestra respuesta Y, el cálculo lo hará una red neuronal a la que se le agregarán en la probabilidad condiciona los K + 1 vectores:

P( Y | Z(1)', Z(2)', ... , Z(K)', Z(X))

Existen distintos métodos para hacer esto, uno es por secuencia y el otro es por tóken, en la actualidad no hay alguno que tenga alguna ventaja clara sobre el otro. También es importante mencionar que la calidad de este LLM es indispensable para que nuestro RAG tenga un buen desempeño.

¿Dónde aprender sobre inteligencia artificial generativa?

Si está interesados en conocer más sobre las redes neuronales profundas y sus aplicaciones en la industria, el Colegio de Matemáticas Bourbaki ofrece dos cursos que podrían ser de su interés: