promptgarten 🌱
Guía●●●6 min · +60 XP

Construye tú mismo un RAG sencillo

Chunking, embeddings, búsqueda vectorial, contexto en el prompt: los cuatro pasos detrás de todo sistema RAG, más cuándo basta simplemente con una ventana de contexto larga.

Los cuatro pasos

RAG (Retrieval-Augmented Generation, generación aumentada por recuperación) busca, antes de cada respuesta, fragmentos de texto relevantes en una base de conocimiento propia y se los da al modelo dentro del prompt. El proceso tiene cuatro pasos:

  1. Chunking: dividir la base de conocimiento en fragmentos pequeños de texto, normalmente de unos pocos cientos de tokens.
  2. Embeddings: convertir cada fragmento en un vector con un modelo de embeddings que capture su significado.
  3. Búsqueda vectorial: para una consulta, encontrar los fragmentos cuyos vectores son más parecidos a ella.
  4. Contexto en el prompt: insertar los fragmentos encontrados en el prompt antes de que el modelo responda.

RAG frente a una ventana de contexto larga

Si toda tu base de conocimiento cabe sin problema en la ventana de contexto, RAG suele ser un esfuerzo innecesario: meter simplemente todo en el prompt es más sencillo y menos propenso a errores. RAG merece la pena cuando la base de conocimiento es más grande que la ventana de contexto, cambia con frecuencia, o cuando solo una porción pequeña y variable es relevante en cada consulta.

Fuentes de error habituales

Fragmentos demasiado grandes: el relleno irrelevante desplaza lo importante. Fragmentos demasiado pequeños: se pierde el contexto. La búsqueda vectorial pura pasa por alto coincidencias exactas de términos (jerga técnica, nombres de código); combinarla con la búsqueda clásica por palabras clave soluciona eso.

EJEMPLO

Plantilla de prompt tras la búsqueda: "Responde a la siguiente pregunta usando únicamente los extractos de abajo. Si la respuesta no está ahí, dilo. EXTRACTOS: [fragmento 1] [fragmento 2] [fragmento 3] PREGUNTA: ¿Cómo cancelo mi suscripción?"

🛠️ EJERCICIO — PRUÉBALO TÚ

Construye un sistema RAG diminuto para un puñado de archivos de texto propios (por ejemplo, 5-10 notas) y comprueba si encuentra la fuente correcta.

  1. Divide 5-10 archivos de texto cortos en fragmentos de unos 200-300 tokens.
  2. Genera embeddings para cada fragmento y para 3 preguntas de prueba cuya respuesta ya conozcas.
  3. Compara la similitud coseno y comprueba si el fragmento con la respuesta correcta acaba realmente arriba.

AUTOEVALUACIÓN

  • ¿Encontró la búsqueda vectorial el fragmento correcto en las 3 preguntas de prueba?
  • ¿Hubo algún caso en el que ganara un fragmento incorrecto pero semánticamente parecido?
  • ¿Qué habría cambiado en este resultado un chunking más pequeño o más grande?

QUIZ RÁPIDO

¿Cuándo es un sistema RAG sencillo la mejor opción, en lugar de simplemente meter toda la base de conocimiento en la ventana de contexto?

Compartir:𝕏in💬

FUENTES

TEMAS RELACIONADOS

RAG (generación aumentada por recuperación) ●●○Embeddings: el texto convertido en números ●●○Context Window (ventana de contexto) ●○○Estrategias de contexto para agentes ●●●