Módulo 16 · Inteligencia artificial en AWS/Lección 103
RAG: respuestas con tus propios datos
Darle al modelo los documentos correctos en el momento de la pregunta: fragmentación, embeddings, bases vectoriales, Knowledge Bases y búsqueda híbrida.
Al terminar podrás
- →Explicar el flujo de RAG de la ingesta a la respuesta
- →Elegir estrategia de fragmentación y almacén vectorial
- →Configurar Amazon Bedrock Knowledge Bases con búsqueda híbrida y reranking
- →Mantener el índice al día y evaluar la calidad de la recuperación
Un modelo fundacional sabe lo que vio cuando lo entrenaron. No conoce tu política de vacaciones, el manual de tu producto ni el precio que cambió ayer. Si le preguntas, puede inventar una respuesta que suena bien. La generación aumentada por recuperación (RAG, Retrieval-Augmented Generation) resuelve eso sin tocar el modelo: antes de responder, busca los fragmentos de tus documentos que tienen que ver con la pregunta y los pone dentro del prompt.
RAG se apoya en dos ideas de IA generativa y modelos fundacionales: los embeddings (vectores que representan el significado de un texto) y la ventana de contexto. Y en lo que ya sabes de prompts por Amazon Bedrock e ingeniería de prompts.
¿Por qué RAG y no reentrenar el modelo?
Hay tres formas de darle conocimiento a un modelo: escribirlo en el prompt, recuperarlo con RAG o ajustar el modelo con fine-tuning. Para conocimiento que cambia, que es privado o que necesita citas, RAG suele ganar. El detalle de fine-tuning y destilación está en personalizar modelos.
| Criterio | Solo prompt | RAG | Fine-tuning |
|---|---|---|---|
| Qué cambia | El texto que envías | El contexto que se agrega en cada pregunta | Los pesos del modelo |
| Datos frescos | Solo lo que cabe en el prompt | Sí: actualizas el índice, no el modelo | No: hay que volver a entrenar |
| Citas y trazabilidad | No | Sí: cada respuesta apunta a sus fuentes | No: el conocimiento queda mezclado en el modelo |
| Esfuerzo y costo | Bajo | Medio: ingesta, índice y consultas | Alto: datos etiquetados, entrenamiento y hospedaje |
| Bueno para | Tareas generales | Preguntas sobre documentos propios y cambiantes | Cambiar estilo, formato o dominar una tarea |
RAG también reduce las alucinaciones porque ancla (grounding) la respuesta en texto real. No las elimina: el modelo puede ignorar el contexto o mezclarlo con lo que cree saber.
El flujo de punta a punta
RAG tiene dos fases. La indexación ocurre antes, cada vez que cambian los documentos. La consulta ocurre en cada pregunta.
- 1
Ingerir
Leer los documentos desde su origen: un bucket de S3, una wiki, SharePoint, un sitio web. Se extrae el texto, y con un analizador avanzado también tablas e imágenes. - 2
Fragmentar
Cortar cada documento en fragmentos (chunks) de tamaño manejable. Un fragmento demasiado grande diluye el significado; uno demasiado chico pierde contexto. - 3
Generar embeddings
Un modelo de embeddings convierte cada fragmento en un vector. En Bedrock, por ejemplo, Amazon Titan Text Embeddings V2, Cohere Embed o Amazon Nova Multimodal Embeddings para imágenes, audio y video. - 4
Guardar en el almacén vectorial
Cada vector se guarda junto con su texto y sus metadatos (documento, página, fecha, país, área). Los metadatos permiten filtrar después. - 5
Recuperar
Llega una pregunta. Se convierte en vector con el mismo modelo de embeddings y se buscan los fragmentos más cercanos (los top-k), con filtros y, si se activa, búsqueda por palabras clave. - 6
Aumentar el prompt
Los fragmentos recuperados se insertan en una plantilla junto con la pregunta y las instrucciones: «responde solo con este contexto; si no está, dilo». - 7
Generar con citas
El modelo responde y la aplicación muestra de qué documento salió cada afirmación. El usuario puede verificar.
Fragmentar bien y elegir dónde guardar
La fragmentación es la decisión que más afecta la calidad y la que más se subestima. Amazon Bedrock Knowledge Bases ofrece estas estrategias:
Después eliges el almacén vectorial. En AWS hay varias opciones:
Amazon OpenSearch Service
OpenSearch Serverless o clústeres administrados. Búsqueda vectorial y por palabras clave en el mismo motor, filtros ricos y vectores binarios. La opción más completa para búsqueda híbrida.Amazon Aurora
Aurora PostgreSQL con la extensión pgvector. Ideal si tus datos ya viven en PostgreSQL y quieres unir vectores con tablas relacionales.Amazon RDS
RDS for PostgreSQL también soporta pgvector. Sirve para un RAG propio; la integración administrada de Knowledge Bases es con Aurora.Amazon Neptune
Neptune Analytics para GraphRAG: combina vectores con un grafo de entidades y relaciones. Útil cuando la respuesta exige conectar hechos de varios documentos.Amazon S3 Vectors
Buckets vectoriales dentro de S3, sin infraestructura que administrar. El menor costo para guardar muchos vectores; pensado para consultas poco frecuentes con latencia por debajo del segundo.Amazon Kendra
No es un almacén vectorial: es un buscador empresarial. Su índice GenAI funciona como recuperador administrado dentro de Knowledge Bases.
También existen búsqueda vectorial en Amazon DocumentDB y Amazon MemoryDB, y Knowledge Bases se conecta con Pinecone, Redis Enterprise Cloud y MongoDB Atlas. La regla práctica: usa el almacén que tu equipo ya opera, salvo que necesites algo que no tiene, como búsqueda híbrida o costo muy bajo para volúmenes enormes. Si necesitas un modelo de embeddings que Bedrock no ofrece, puedes hospedarlo en SageMaker AI.
Amazon Bedrock Knowledge Bases
Knowledge Bases arma el flujo completo por ti: conecta las fuentes, fragmenta, genera embeddings, escribe en el almacén y expone dos APIs. Retrieve devuelve solo los fragmentos, para que tú armes el prompt. RetrieveAndGenerate recupera, arma el prompt, llama al modelo y devuelve la respuesta con citas. Hay dos tipos:
- Managed Knowledge Base: AWS administra el almacenamiento vectorial, la indexación y la recuperación. Trae conectores para S3, SharePoint, Confluence, Google Drive, OneDrive y un rastreador web, con sincronización automática y recuperación agéntica para preguntas que requieren varios saltos.
- Knowledge base personalizada: tú eliges el almacén vectorial, el modelo de embeddings y la estrategia de fragmentación. Más control, más decisiones.
Las palancas para mejorar la recuperación:
- Filtrado por metadatos: limita la búsqueda a fragmentos con ciertos atributos (país, versión, fecha). En S3, cada documento lleva un archivo
.metadata.jsonal lado. Con el filtrado implícito, un modelo deduce el filtro a partir de la pregunta. - Búsqueda híbrida: combina la búsqueda por significado con la búsqueda por palabras exactas. Rescata códigos de producto, siglas y nombres propios que los embeddings confunden. Funciona con Aurora/RDS, OpenSearch Serverless y MongoDB cuando el índice tiene un campo de texto filtrable.
- Reranking: un modelo reordenador (reranker), como Amazon Rerank o Cohere Rerank, vuelve a puntuar los candidatos frente a la pregunta. Recuperas 20, reordenas y pasas los 5 mejores.
- Descomposición de consultas (query decomposition): parte una pregunta compleja en subpreguntas y recupera para cada una.
- Plantilla de prompt y guardrails: personalizas las instrucciones de generación y aplicas Bedrock Guardrails a la entrada y la salida.
aws bedrock-agent-runtime retrieve-and-generate \
--input '{"text": "¿Cuántos días de vacaciones tengo el primer año?"}' \
--retrieve-and-generate-configuration '{
"type": "KNOWLEDGE_BASE",
"knowledgeBaseConfiguration": {
"knowledgeBaseId": "KB1234ABCD",
"modelArn": "<ARN del modelo o perfil de inferencia>",
"retrievalConfiguration": {
"vectorSearchConfiguration": {
"numberOfResults": 8,
"overrideSearchType": "HYBRID",
"filter": { "equals": { "key": "pais", "value": "CO" } }
}
}
}
}'
# La respuesta trae el texto generado y "citations":
# qué fragmento y qué documento respaldan cada parte.Mantener el índice al día
Un índice viejo es peor que no tener RAG: el modelo cita con confianza una política que ya no existe. En una knowledge base personalizada, cada cambio en la fuente exige una sincronización (StartIngestionJob). La sincronización es incremental: solo procesa documentos agregados, modificados o borrados desde la última vez. Si solo cambió el archivo de metadatos, Bedrock puede actualizarlos sin volver a generar embeddings.
Para no depender de que alguien se acuerde, programa la sincronización con EventBridge Scheduler, o dispárala con un evento de S3 que invoque una Lambda. La Managed Knowledge Base sincroniza sola. Después de un trabajo de ingesta, los vectores nuevos pueden tardar unos minutos en aparecer en las consultas.
Cuando RAG falla y cómo medirlo
Evalúa la recuperación por separado de la generación. Arma un conjunto de preguntas con los fragmentos que deberían salir y mide si salen: relevancia del contexto (lo recuperado sirve) y cobertura del contexto (lo recuperado contiene todo lo necesario). Bedrock Evaluations calcula ambas. El método completo está en evaluar modelos e IA generativa, y el impacto en la factura, en costos de la IA generativa.
Quiz
Pon a prueba lo que aprendiste
0 de 5 correctas · 5 sin responder
1.Un banco quiere que su asistente responda sobre productos cuyas tasas cambian cada semana y que cada respuesta muestre el documento de origen. ¿Qué enfoque conviene?
2.Los usuarios buscan por códigos de pieza como «XR-2207-B» y el asistente devuelve piezas parecidas pero equivocadas. ¿Qué ajuste ayuda más?
3.Una empresa SaaS indexa documentos de todos sus clientes en una sola knowledge base. Un cliente recibió un fragmento de otro cliente. ¿Qué medida corrige la causa?
4.Los manuales técnicos son largos. Con fragmentos chicos la búsqueda es precisa pero las respuestas quedan sin contexto; con fragmentos grandes la búsqueda empeora. ¿Qué estrategia equilibra ambas cosas?
5.Un equipo guarda cientos de millones de vectores de un archivo histórico que se consulta pocas veces al día. La prioridad es el menor costo de almacenamiento. ¿Qué almacén encaja?