Retrieval Augmented Generation (RAG) es un enfoque de vanguardia para la creación de sistemas de respuesta a preguntas que combina las fortalezas de la recuperación de información y los modelos fundamentales (FMs). Los modelos RAG primero recuperan información relevante de un gran corpus de texto y luego utilizan un FM para sintetizar una respuesta basada en la información recuperada.
Una solución RAG de extremo a extremo involucra varios componentes, incluyendo una base de conocimiento, un sistema de recuperación y un sistema de generación. Construir y desplegar estos componentes puede ser complejo y propenso a errores, especialmente cuando se maneja datos y modelos a gran escala.
Este artículo demuestra cómo automatizar sin problemas el despliegue de una solución RAG de extremo a extremo utilizando Knowledge Bases para Amazon Bedrock y AWS CloudFormation, permitiendo a las organizaciones configurar rápidamente y sin esfuerzo un poderoso sistema RAG.
Descripción de la solución
La solución proporciona un despliegue automatizado de extremo a extremo de un flujo de trabajo RAG utilizando Knowledge Bases para Amazon Bedrock. Usamos AWS CloudFormation para configurar los recursos necesarios, incluyendo:
- 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 RAG permite utilizar datos de documentos almacenados en un bucket de Amazon Simple Storage Service (Amazon S3) e integrarlos con las poderosas capacidades de procesamiento de lenguaje natural de los FMs proporcionados en Amazon Bedrock. La solución simplifica el proceso de configuración, permitiendo desplegar rápidamente y empezar a hacer consultas a los datos utilizando el FM elegido.
Requisitos previos
Para implementar la solución, debe tener:
- Una cuenta activa en AWS y estar familiarizado con FMs, Amazon Bedrock y OpenSearch Serverless.
- Un bucket de S3 donde sus documentos estén almacenados en un formato compatible (.txt, .md, .html, .doc/docx, .csv, .xls/.xlsx, .pdf).
- El modelo Amazon Titan Embeddings G1-Text habilitado en Amazon Bedrock.
Configuración de la solución
Una vez completados los pasos previos, estará listo para configurar la solución:
- Clone el repositorio GitHub que contiene los archivos de la solución:
git clone https://github.com/aws-samples/amazon-bedrock-samples.git
- Navegue al directorio de la solución:
cd knowledge-bases/features-examples/04-infrastructure/e2e-rag-deployment-using-bedrock-kb-cfn
- Ejecute el script
sh
, que creará el bucket de despliegue, preparará las plantillas de CloudFormation y subirá las plantillas y artefactos necesarios al bucket de despliegue:bash deploy.sh
Mientras ejecuta deploy.sh
, si proporciona un nombre de bucket como argumento, se creará un bucket con el nombre especificado. De lo contrario, se usará el formato de nombre predeterminado.
- Después de que el script se complete, anote la URL de S3 de
main-template-out.yml
. - En la consola de AWS CloudFormation, cree una nueva pila utilizando la URL copiada.
- Proporcione un nombre de pila y especifique los detalles del flujo de trabajo RAG según su caso de uso.
Probar la solución
Cuando el despliegue sea exitoso (toma entre 7 y 10 minutos), puede empezar a probar la solución.
- En la consola de Amazon Bedrock, navegue a la base de conocimiento creada y elija "Sync" para iniciar el trabajo de ingestión de datos.
- Después de la sincronización de datos, seleccione el FM deseado para recuperación y generación.
- Comience a hacer consultas a sus datos utilizando consultas en lenguaje natural.
Limpieza
Para evitar futuros cargos, elimine los recursos utilizados en esta solución:
- En la consola de Amazon S3, elimine manualmente los contenidos dentro del bucket de despliegue creado, luego elimine el bucket.
- En la consola de AWS CloudFormation, seleccione la principal pila y elija "Delete".
Conclusión
En este artículo, se presentó una solución automatizada para desplegar un flujo de trabajo RAG de extremo a extremo utilizando Knowledge Bases para Amazon Bedrock y AWS CloudFormation. Mediante el uso de los servicios de AWS y las plantillas preconfiguradas de CloudFormation, puede configurar rápidamente un poderoso sistema de respuesta a preguntas sin las complejidades de construir y desplegar componentes individuales para aplicaciones RAG. Este enfoque no solo ahorra tiempo y esfuerzo, sino que también proporciona una configuración consistente y reproducible, permitiéndole enfocarse en utilizar el flujo de trabajo RAG para extraer valiosos conocimientos de sus datos.
Sobre los autores
Sandeep Singh es un Senior Generative AI Data Scientist en Amazon Web Services, especializado en IA generativa y aprendizaje automático. Yanyan Zhang también es Senior Generative AI Data Scientist en Amazon Web Services, trabajando en tecnologías avanzadas de IA/ML. Mani Khanuja es Tech Lead – Generative AI Specialists y autora del libro "Applied Machine Learning and High Performance Computing on AWS".
vía: AWS machine learning blog