Tema
Generación aumentada por recuperación
- Lenguaje natural y modelos de lenguaje
- Nivel intermedio
La generación aumentada por recuperación busca fragmentos relevantes en una colección externa y los coloca en el contexto antes de generar, de modo que la respuesta se apoya en texto recuperado y no solo en los pesos del modelo.
Nombre en inglés
Retrieval augmented generation
Intuición
En lugar de exigir que todo el conocimiento quepa en los parámetros, el sistema abre el libro antes de responder. La calidad depende más del recuperador que del generador, porque un fragmento que no contiene la respuesta no se arregla con un generador mejor, y actualizar la colección sustituye a reentrenar.
Fórmula
P(y | x) = \sum_{d \in top_k} P(d | x) P(y | x, d)
Ejemplo resuelto
Sea una colección partida en fragmentos de 400 tokens con solape de 50, de manera que tras el primero cada fragmento nuevo avanza 350 tokens. Un documento de 2000 tokens produce así 6 fragmentos. Si el recuperador devuelve los 5 mejores y el 80 % de las preguntas tiene su respuesta en alguno de ellos, el techo de exactitud del sistema es 80 %, por bueno que sea el generador. Subir a los 10 mejores eleva ese techo a costa de duplicar el contexto y el costo por consulta.
Errores frecuentes
- Partir los documentos sin solape, decisión que corta las respuestas justo en la frontera entre dos fragmentos.
- Medir el sistema completo sin medir el recuperador aparte, cuando la mayoría de los fallos son de recuperación y quedan ocultos en la métrica final.
- Meter 20 fragmentos en el contexto suponiendo que más siempre ayuda, ya que el material irrelevante distrae al modelo y la información del centro del contexto se aprovecha peor que la de los extremos.
Ejercicio
Un recuperador coloca el fragmento correcto entre los 5 primeros en el 80 % de las consultas. El generador responde bien el 90 % de las veces que dispone de ese fragmento y el 10 % cuando no lo tiene. ¿Cuál es la exactitud del sistema?
Ver la solución
La exactitud total suma los dos caminos. Con el fragmento correcto disponible vale 0.8 por 0.9 = 0.72, y sin él vale 0.2 por 0.1 = 0.02, de modo que el total llega a 0.74. Conviene fijarse en el reparto del esfuerzo, ya que subir el generador del 90 % al 95 % añade 4 puntos y subir el recuperador del 80 % al 90 % añade 8.
Respuesta: 0.74