Construcción de una solución completa RAG utilizando bases de conocimiento para Amazon Bedrock y AWS CloudFormation

Elena Digital López

Retrieval Augmented Generation (RAG) es un enfoque innovador en la creación de sistemas de respuesta a preguntas que combina la recuperación de información con modelos fundamentales (FMs). Estos modelos primero obtienen 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 implica varios componentes, como una base de conocimiento, un sistema de recuperación y un sistema de generación. Implementar y desplegar estos componentes puede ser un desafío, especialmente cuando se manejan datos y modelos a gran escala.

Este artículo presenta cómo automatizar el despliegue de una solución RAG de extremo a extremo utilizando Knowledge Bases para Amazon Bedrock y AWS CloudFormation. Esto permite a las organizaciones configurar de manera rápida y eficiente un sistema RAG potente.

Descripción de la solución

La solución ofrece un despliegue automatizado de un flujo de trabajo RAG usando Knowledge Bases para Amazon Bedrock. AWS CloudFormation se utiliza para configurar los recursos necesarios, incluyendo:

  1. Un rol de AWS Identity and Access Management (IAM).
  2. Una colección e índice serverless de Amazon OpenSearch.
  3. Una base de conocimiento con su fuente de datos asociada.

El flujo de trabajo RAG permite utilizar datos almacenados en un bucket de Amazon Simple Storage Service (Amazon S3) e integrarlos con las capacidades de procesamiento de lenguaje natural de los FMs de Amazon Bedrock. Este proceso simplifica la configuración, permitiendo desplegar rápidamente y empezar a consultar datos con el FM elegido.

Requisitos previos

Para implementar la solución, se necesita:

  1. Una cuenta activa en AWS y conocimiento sobre FMs, Amazon Bedrock y OpenSearch Serverless.
  2. Un bucket de S3 con documentos en formatos compatibles (.txt, .md, .html, .doc/docx, .csv, .xls/.xlsx, .pdf).
  3. El modelo Amazon Titan Embeddings G1-Text habilitado en Amazon Bedrock.

Configuración de la solución

Una vez cumplidos los requisitos, se puede proceder con la configuración:

  1. Clonar el repositorio GitHub que contiene los archivos de la solución: git clone https://github.com/aws-samples/amazon-bedrock-samples.git
  2. Navegar al directorio de la solución: cd knowledge-bases/features-examples/04-infrastructure/e2e-rag-deployment-using-bedrock-kb-cfn
  3. Ejecutar el script sh para crear el bucket de despliegue, preparar las plantillas de CloudFormation y subir los archivos necesarios: bash deploy.sh

Durante la ejecución de deploy.sh, es posible proporcionar un nombre de bucket como argumento. De lo contrario, se utilizará un nombre predeterminado.

  1. Después de completar el script, anotar la URL de S3 de main-template-out.yml.
  2. En la consola de AWS CloudFormation, crear una nueva pila utilizando la URL copiada.
  3. Proporcionar un nombre de pila y especificar los detalles del flujo de trabajo RAG según el caso de uso.

Probar la solución

Cuando el despliegue sea exitoso (toma entre 7 y 10 minutos), se puede comenzar a probar la solución:

  1. En la consola de Amazon Bedrock, navegar a la base de conocimiento creada y seleccionar "Sync" para iniciar la ingestión de datos.
  2. Después de la sincronización de datos, seleccionar el FM deseado para recuperación y generación.
  3. Comenzar a realizar consultas a los datos utilizando lenguaje natural.

Limpieza

Para evitar futuros cargos, eliminar los recursos utilizados en esta solución:

  1. En la consola de Amazon S3, eliminar manualmente los contenidos dentro del bucket de despliegue creado, y luego eliminar el bucket.
  2. En la consola de AWS CloudFormation, seleccionar la pila principal y elegir "Delete".

Conclusión

Este artículo 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. Usando los servicios de AWS y las plantillas preconfiguradas de CloudFormation, se puede configurar rápidamente un poderoso sistema de respuesta a preguntas sin la complejidad de construir y desplegar componentes individuales. Este enfoque no solo ahorra tiempo y esfuerzo, sino que también proporciona una configuración consistente y reproducible, permitiendo enfocarse en extraer conocimientos valiosos de los 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

Scroll al inicio