Retrieval Augmented Generation (RAG) es un enfoque emergente en la creación de sistemas de respuesta a preguntas que combina las fortalezas de la recuperación de información y los modelos de lenguaje avanzados. Esta técnica permite a los usuarios obtener respuestas precisas a partir de un vasto corpus de texto, utilizando primero un mecanismo de recuperación que identifica la información relevante y luego un modelo fundamental (FM) que sintetiza la respuesta basada en dicha información.
La construcción de una solución RAG de extremo a extremo no es un proceso trivial e involucra múltiples componentes, tales como una base de conocimiento, un sistema de recuperación de información y un sistema generador. La implementación de estos componentes requiere atención meticulosa y puede ser propensa a errores, particularmente cuando se maneja una gran cantidad de datos y modelos a gran escala.
Este artículo explica cómo automatizar el despliegue de una solución RAG utilizando Knowledge Bases para Amazon Bedrock y AWS CloudFormation, lo que permite a las organizaciones configurar de manera rápida y eficiente un potente sistema RAG sin las complejidades habituales.
Descripción de la solución
La propuesta consiste en crear un flujo de trabajo RAG completamente automatizado mediante el uso de AWS CloudFormation para configurar los recursos necesarios, que incluyen:
- Un rol de AWS Identity and Access Management (IAM).
- Una colección e índice serverless de Amazon OpenSearch.
- Una base de conocimiento con su fuente de datos asociada.
El flujo de trabajo de RAG permite la utilización de datos de documentos almacenados en un bucket de Amazon Simple Storage Service (Amazon S3), integrándolos con las capacidades de procesamiento de lenguaje natural proporcionadas por los modelos de Amazon Bedrock. Este proceso simplifica la configuración, permitiendo que las organizaciones desplieguen y comiencen a realizar consultas a sus datos de manera rápida y eficiente.
Requisitos previos
Para implementar esta solución, es necesario cumplir con los siguientes requisitos:
- Tener una cuenta activa en AWS y estar familiarizado con FMs, Amazon Bedrock y OpenSearch Serverless.
- Disponer de un bucket de S3 con documentos almacenados en formatos compatibles (.txt, .md, .html, .doc/docx, .csv, .xls/.xlsx, .pdf).
- Tener habilitado el modelo Amazon Titan Embeddings G1-Text en Amazon Bedrock.
Configuración de la solución
Una vez cumplidos los requisitos previos, se puede proceder a la configuración de la solución siguiendo estos pasos:
- Clonar el repositorio de GitHub que contiene los archivos necesarios:
git clone https://github.com/aws-samples/amazon-bedrock-samples.git
- Navegar al directorio de la solución:
cd knowledge-bases/features-examples/04-infrastructure/e2e-rag-deployment-using-bedrock-kb-cfn
- Ejecutar el script
sh
que creará el bucket de despliegue y preparará las plantillas de CloudFormation:bash deploy.sh
Si se proporciona un nombre de bucket como argumento al ejecutar deploy.sh
, se creará un bucket con el nombre especificado; de lo contrario, se usará un formato de nombre predeterminado.
- Copiar la URL de S3 de
main-template-out.yml
después de completar el script. - En la consola de AWS CloudFormation, crear una nueva pila utilizando la URL copiada.
- Proveer un nombre de pila y especificar los detalles del flujo de trabajo RAG según el caso de uso.
Probar la solución
Tras un despliegue exitoso, que puede tomar entre 7 y 10 minutos, se puede comenzar a probar la solución:
- En la consola de Amazon Bedrock, navegar a la base de conocimiento creada y seleccionar "Sync" para iniciar la ingestión de datos.
- Después de la sincronización de datos, seleccionar el FM deseado para recuperación y generación.
- Empezar a realizar consultas utilizando lenguaje natural.
Limpieza
Para evitar futuros cargos, es importante eliminar los recursos utilizados:
- En la consola de Amazon S3, eliminar manualmente los contenidos del bucket de despliegue creado y posteriormente eliminar el bucket.
- En la consola de AWS CloudFormation, seleccionar la pila principal y elegir "Delete".
Conclusión
Este artículo ha presentado una solución automatizada para desplegar un flujo de trabajo RAG de extremo a extremo utilizando Knowledge Bases para Amazon Bedrock y AWS CloudFormation. Aprovechando los servicios de AWS y las plantillas preconfiguradas de CloudFormation, las organizaciones pueden configurar rápidamente un sistema de respuesta a preguntas robusto, eliminando las complejidades asociadas con la implementación de componentes individuales de soluciones RAG. Este enfoque no solo ahorra tiempo y esfuerzo, sino que también proporciona una configuración consistente y reproducible, permitiendo aprovechar al máximo los datos disponibles.