«`html
Implementación Multi-Tenant de RAG con Amazon Bedrock y OpenSearch Service
En los últimos años, la aparición de los modelos de lenguaje de gran tamaño (LLMs) ha acelerado la adopción de la inteligencia artificial (IA) en diversas industrias. Sin embargo, para potenciar las capacidades de los LLMs y utilizar información actualizada y conocimientos específicos del dominio, es esencial la integración con fuentes de datos externas. La Generación Aumentada por Recuperación (RAG) ha ganado atención como un enfoque eficaz para abordar este desafío.
RAG es una técnica que busca información relevante en bases de conocimiento o documentos existentes basándose en la entrada del usuario e incorpora esta información en la entrada del LLM para generar respuestas más precisas y contextualmente apropiadas. Esta técnica se implementa en una amplia gama de aplicaciones, desde el uso de documentación técnica en el desarrollo de productos hasta la respuesta a preguntas frecuentes en el soporte al cliente.
Valor de RAG para Proveedores de SaaS
La implementación de RAG aporta un valor significativo tanto a los proveedores de software como servicio (SaaS) como a sus usuarios (inquilinos). Los proveedores de SaaS pueden utilizar una arquitectura multi-inquilino que ofrece servicios a múltiples inquilinos desde una única base de código. A medida que los inquilinos utilizan el servicio, sus datos se acumulan mientras están protegidos por el adecuado control de acceso y aislamiento de datos.
Al implementar capacidades de IA utilizando LLMs en estos entornos, RAG permite utilizar los datos específicos de cada inquilino para proporcionar servicios de IA personalizados. Consideremos, por ejemplo, un centro de atención telefónica SaaS. Los registros históricos de consultas, preguntas frecuentes y manuales de productos de cada inquilino se acumulan como bases de conocimiento específicas de cada inquilino. Implementando un sistema RAG, el LLM puede generar respuestas apropiadas relevantes al contexto de cada inquilino al referirse a estas fuentes de datos específicas.
Desafíos Técnicos y Seguridad
Sin embargo, el uso de datos específicos de los inquilinos a través de RAG presenta desafíos técnicos desde las perspectivas de seguridad y privacidad. La preocupación principal radica en implementar una arquitectura segura que mantenga el aislamiento de datos entre inquilinos y ayude a prevenir la fuga de datos no intencionada o el acceso entre inquilinos.
Los Amazon Bedrock Knowledge Bases simplifican la implementación de RAG. Al utilizar OpenSearch como base de datos vectorial, hay dos opciones disponibles: Amazon OpenSearch Service o Amazon OpenSearch Serverless. Cada opción tiene características y modelos de permisos diferentes al construir entornos multi-inquilinos.
| Opción | Características |
|---|---|
| Amazon OpenSearch Serverless |
|
| Amazon OpenSearch Service |
|
Uso Efectivo de JWT en la Aislamiento de Datos Multi-Tenant en OpenSearch Service
Como se mencionó anteriormente, OpenSearch Service ofrece múltiples métodos para gestionar datos multi-inquilinos: aislamiento a nivel de dominio, índice y documento. Para implementar la segregación de permisos de acceso a nivel de índice y documento, se puede utilizar FGAC, que es compatible con el plugin de seguridad de OpenSearch.
El uso de JSON Web Tokens (JWT) proporciona ventajas significativas, como la identificación dinámica de inquilinos, ya que los payloads de JWT pueden incluir información de atributos (contexto del inquilino) para identificar inquilinos. Esto permite que el sistema identifique dinámicamente a los inquilinos para cada solicitud y pase este contexto a recursos y servicios posteriores.
Arquitectura de Solución
En RAG, datos como documentos relevantes utilizados para aumentar las salidas de LLM son vectorizados por modelos de lenguaje y se indexan en una base de datos vectorial. Las preguntas de los usuarios en lenguaje natural se convierten en vectores utilizando el modelo de incrustación y se buscan en la base de datos vectorial. Los datos recuperados a través de la búsqueda vectorial se pasan al LLM como contexto para aumentar la salida.
Consideraciones de Seguridad
Es esencial tener en cuenta que la implementación en este post utiliza un modelo en el que las tablas de DynamoDB y los buckets de S3 son compartidos entre inquilinos. Para un uso en producción, se debe considerar modelos de partición y determinar el modelo óptimo según los requisitos.
Para evitar cargos inesperados, se recomienda eliminar los recursos cuando ya no sean necesarios. Debido a que los recursos se crean con el AWS CDK, se debe ejecutar el comando cdk destroy para eliminarlos.
Para más detalles sobre la implementación de RAG multi-inquilino, se pueden consultar los siguientes recursos:
- Multi-tenant RAG with Amazon Bedrock Knowledge Bases
- Build a multi-tenant generative AI environment for your enterprise on AWS
Para más información sobre la implementación multi-inquilino RAG, se puede consultar el artículo original en Amazon Web Services Blog.
«`












