En esta publicación compartiré una arquitectura de solución que he diseñado para crear una Base de conocimiento de un modelo de RAG.
Primero que nada, tal vez nos preguntemos ¿Que es un Modelo de RAG?.. Básicamente un modelo RAG (Retrieval-Augmented Generation) es una arquitectura de inteligencia artificial que combina recuperación de información (Retrieval) con generación de texto (Generation) para mejorar la precisión y relevancia de las respuestas generadas por modelos de lenguaje.
Este enfoque se utiliza principalmente en sistemas de IA generativa, donde se requiere responder preguntas o generar contenido basado en información actualizada y contextual, sin depender únicamente del conocimiento pre-entrenado del modelo.
Actualmente el servicio de AWS Bedrock ofrece una increible caracteristica que nos permite crear las Knowledge Base (o base de conocimiento) de una manera muy simple. Para más información sobre esta feature, revisar el siguiente link. Sin embargo, también podemos diseñar soluciones escalables para el mismo fin dentro de AWS.
A continuación compartiré una arquitectura de solución que está idealmente pensada para la generación de los embeddings a través de la incorporación de nuevos archivos en Amazon S3. Esta arquitectura representa una Knowledge Base en AWS, diseñada para almacenar y procesar información, generando embeddings que permiten búsquedas semánticas utilizando Amazon OpenSearch. A continuación, se describe cada componente y su función en el flujo de datos.
Componentes Principales
🔹 Infraestructura y Almacenamiento
- AWS CloudFormation: Automatiza la creación de la infraestructura, desplegando la Knowledge Base Stack.
- S3 Knowledge Base: Almacena los documentos y archivos que serán procesados.
- Files Metadata Table: Base de datos que mantiene los metadatos de los archivos procesados.
🔹 Procesamiento de Datos
- Amazon EventBridge: Detecta eventos cuando se suben archivos a S3 y activa el flujo de procesamiento.
- Extract Metadata (Lambda): Extrae metadatos de los archivos y los envía a la Files Metadata Table.
- File Processing Queue (SQS): Cola de procesamiento que gestiona las solicitudes para generar embeddings.
- File Processing Dead Letter Queue (SQS): Almacena mensajes fallidos que no pudieron ser procesados.
🔹 Generación de Embeddings y Vectorización
- Generate Embeddings (Lambda): Genera embeddings de los archivos utilizando un modelo de machine learning.
- ECR (Elastic Container Registry): Contiene imágenes Docker para ejecutar las funciones de extracción de metadatos y generación de embeddings.
🔹 Indexación y Búsqueda Semántica
- Amazon OpenSearch Service: Almacena y permite búsquedas basadas en embeddings, facilitando la búsqueda semántica dentro de la Knowledge Base.
Narrativa del Processo:
- Carga de Archivos → Un usuario sube un archivo a S3 Knowledge Base.
- Evento en EventBridge → Detecta la carga y activa la Lambda Extract Metadata.
- Extracción de Metadatos → La Lambda extrae metadatos y los guarda en Files Metadata Table.
- Cola de Procesamiento (SQS) → Se envía un mensaje a la File Processing Queue para iniciar la generación de embeddings.
- Generación de Embeddings → La Lambda Generate Embeddings convierte el archivo en un vector numérico.
- Indexación en OpenSearch → Los embeddings se almacenan en Amazon OpenSearch para búsqueda semántica.
- Actualización de Estado → La tabla de metadatos se actualiza con el estado final del archivo.
Beneficios de esta Arquitectura
✅ Automatización Completa con AWS CloudFormation y EventBridge.
✅ Procesamiento Escalable con AWS Lambda y SQS.
✅ Búsqueda Semántica Avanzada mediante Amazon OpenSearch y embeddings.
✅ Alta Disponibilidad y Tolerancia a Fallos con S3, SQS y Dead Letter Queue.
Espero que sea útil para todos ustedes esta arquitectura de referencia. Ante cualquier consulta, no duden en contactarme!. https://www.linkedin.com/in/cristianrcarballo/
Top comments (0)