promptgarten 🌱
🌍 FR
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?

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 ●●●