En este documento se proporciona una arquitectura de referencia que puedes usar para diseñar la infraestructura de una aplicación de IA generativa con generación aumentada por recuperación (RAG) mediante Google Agentspace y Vertex AI. Esta arquitectura de referencia muestra cómo usar servicios gestionados y desplegar un solo agente de IA para facilitar un flujo de datos de RAG de principio a fin. Google Agentspace es la plataforma unificada para la orquestación de agentes en toda la empresa. Vertex AI acelera el desarrollo y el despliegue de agentes personalizados, y proporciona almacenes de datos gestionados para facilitar la recuperación eficiente de RAG.
Este documento está dirigido a arquitectos, desarrolladores y administradores de aplicaciones de IA generativa. En este documento se da por hecho que tienes conocimientos básicos sobre los conceptos de IA, aprendizaje automático (ML) y modelos de lenguaje extensos (LLMs). En este documento no se explica cómo diseñar y desarrollar una aplicación de IA generativa. Para obtener información sobre cómo diseñar una aplicación, consulta Desarrollar una aplicación de IA generativa.
Arquitectura
En el siguiente diagrama se muestra una vista general de la arquitectura que se describe en este documento:
La arquitectura del diagrama anterior tiene dos subsistemas: la ingestión de datos y el servicio.
- El subsistema de ingestión de datos ingiere y prepara datos de fuentes externas para usarlos en RAG. El subsistema genera incrustaciones para los datos ingeridos y las usa para crear y mantener un índice de vectores en el que se pueden hacer búsquedas en un almacén de datos gestionado.
- El subsistema de servicio contiene los servicios de frontend y backend de la aplicación de IA generativa.
- El servicio de frontend gestiona el flujo de consulta-respuesta con los usuarios de la aplicación y reenvía las consultas al servicio de backend.
- El servicio backend usa Google Agentspace y Vertex AI para crear y desplegar tu agente de IA con el fin de orquestar el proceso de RAG. Este proceso usa los datos vectoriales indexados para generar respuestas que se basan en el contexto y cumplen los filtros de seguridad de la IA responsable.
En el siguiente diagrama se muestra una vista detallada de la arquitectura:
En las siguientes secciones se describe el flujo de datos de cada subsistema del diagrama de arquitectura anterior.
Subsistema de ingestión de datos
El subsistema de ingestión de datos ingiere datos de fuentes externas y los prepara para el RAG. Estos son los pasos del flujo de ingestión y preparación de datos:
- Los ingenieros de datos suben datos de fuentes externas a un segmento de Cloud Storage. Las fuentes externas pueden ser aplicaciones, bases de datos o servicios de streaming.
- Una vez completado, Cloud Storage publica un mensaje en un tema de Pub/Sub.
- El tema de Pub/Sub activa un trabajo de procesamiento para que se ejecute en funciones de Cloud Run.
- Las funciones de Cloud Run procesan los datos sin procesar generando y almacenando los metadatos como archivos JSON Lines (JSONL). Los archivos JSONL se almacenan en un segmento de Cloud Storage independiente.
- Una vez completada, la función de Cloud Run publica un mensaje en un tema de Pub/Sub.
- El tema de Pub/Sub activa una tarea de procesamiento que se ejecuta en el almacén de datos gestionado de Google Agentspace. El trabajo de procesamiento extrae los datos y los metadatos sin procesar de los segmentos de Cloud Storage y, a continuación, analiza y divide los datos en fragmentos para que se puedan recuperar de forma eficiente durante el servicio. Google Agentspace genera automáticamente las inserciones de vectores sin necesidad de configuración.
Subsistema de servicio
El subsistema de servicio gestiona el flujo de consulta-respuesta entre la aplicación de IA generativa y sus usuarios. Estos son los pasos del flujo de publicación:
- Un usuario de la aplicación envía una consulta a través de uno de los servicios de frontend de Cloud Run. Puedes personalizar estos servicios para ofrecer diferentes experiencias, como una interfaz de usuario de chatbot, una página de búsqueda o una aplicación móvil.
- El servicio frontend recibe la consulta y, a continuación, la reenvía a un servicio backend de Cloud Run centralizado. Este backend proporciona un único endpoint unificado para admitir todos los diferentes clientes frontend. El servicio de backend también realiza el preprocesamiento necesario, que puede incluir la creación de filtros para la consulta de búsqueda. De esta forma, la lógica sigue siendo transparente para los front-ends.
- El servicio backend envía la solicitud preparada a Google Agentspace mediante el endpoint de la API de Google Agentspace para iniciar el flujo de trabajo de RAG.
- Para procesar la consulta, Google Agentspace usa la búsqueda empresarial y el agente personalizado para llevar a cabo las siguientes tareas:
- Crea una inserción de la consulta del usuario.
- Realiza una búsqueda semántica en los datos indexados del almacén de datos gestionado para encontrar la información más relevante.
- Amplía la consulta original con los datos recuperados del almacén de datos gestionado para crear una petición detallada y contextual.
- Generar una respuesta final basada en la petición ampliada.
- Google Agentspace envía la respuesta generada al servicio backend de Cloud Run.
- El servicio de backend devuelve la respuesta final al servicio de frontend que envió la solicitud original. El servicio frontend presenta la respuesta al usuario de la aplicación.
Productos usados
Esta arquitectura de referencia usa los siguientes Google Cloud productos:
- Google Agentspace: una plataforma gestionada que actúa como registro central y centro de interacción de todos tus agentes de IA en una empresa, y que permite que las aplicaciones los descubran, los gestionen y los usen fácilmente.
-
Vertex AI: una plataforma de aprendizaje automático que te permite entrenar y desplegar modelos de aprendizaje automático y aplicaciones de IA, así como personalizar LLMs para usarlos con aplicaciones basadas en IA.
- Vertex AI Agent Engine: una plataforma que te permite ejecutar, gestionar y escalar agentes de IA en producción.
- Cloud Run: una plataforma de computación sin servidor que te permite ejecutar contenedores directamente en la infraestructura escalable de Google.
- Pub/Sub: un servicio de mensajería asíncrono y escalable que desacopla los servicios que producen mensajes de los que los procesan.
- Cloud Storage: un almacén de objetos ilimitado y a un coste bajo para diversos tipos de datos. Se puede acceder a los datos desde dentro y fuera de Google Cloud, y se replican en varias ubicaciones para ofrecer redundancia.
Casos prácticos
Esta arquitectura se ha diseñado para escenarios empresariales en los que tu aplicación de IA generativa necesita acceder a la información más actualizada y requiere un conocimiento profundo y contextual para proporcionar respuestas precisas.
La arquitectura incluye un subsistema de ingestión de datos personalizado para abordar dos requisitos empresariales clave:
- Disponibilidad de datos en tiempo real: la canalización basada en eventos procesa los datos nuevos en cuanto están disponibles en tu organización, como una nueva guía de productos o un informe actualizado. La canalización también hace que la información esté disponible en tu almacén de datos gestionado. Este diseño ayuda a mitigar la obsolescencia de la información, ya que garantiza que haya un retraso mínimo entre la disponibilidad y el uso de los datos.
- Búsqueda contextual enriquecida: el trabajo de procesamiento personalizado permite a tu organización aplicar su propia lógica empresarial para enriquecer los datos con metadatos valiosos. La función de Cloud Run puede etiquetar cada documento con atributos específicos, como línea de producto, autor, ubicación o tipo de documento. Estos metadatos enriquecidos ayudan al agente a acotar su búsqueda y ofrecer respuestas más precisas y contextualizadas.
La RAG es una técnica eficaz para mejorar la calidad de los resultados que genera un LLM. En esta sección se proporcionan ejemplos de casos prácticos en los que puedes usar aplicaciones de IA generativa compatibles con RAG.
Recomendaciones personalizadas de productos
Un sitio de compras online puede usar un chatbot basado en LLM para ayudar a los clientes a encontrar productos o recibir asistencia relacionada con las compras. Las preguntas de un usuario se pueden mejorar usando datos históricos sobre su comportamiento de compra y sus patrones de interacción con el sitio web. Los datos pueden incluir reseñas y comentarios de usuarios que se almacenan en un almacén de datos no estructurado, o bien métricas relacionadas con las búsquedas que se almacenan en un almacén de datos de analíticas web. El LLM puede procesar la pregunta ampliada para generar respuestas personalizadas que resulten más atractivas y convincentes para el usuario.
Sistemas de asistencia clínica
Los médicos de los hospitales necesitan analizar y diagnosticar rápidamente el estado de salud de un paciente para tomar decisiones sobre la atención y la medicación adecuadas. Una aplicación de IA generativa que utilice un LLM médico como Med-PaLM se puede usar para ayudar a los médicos en el proceso de diagnóstico clínico. Las respuestas que genera la aplicación se pueden basar en el historial de los pacientes contextualizando las peticiones de los médicos con datos de la base de datos de la historia clínica electrónica del hospital o de una base de conocimientos externa, como PubMed.
Investigación jurídica eficiente
La investigación jurídica basada en IA generativa permite a los abogados consultar rápidamente grandes volúmenes de leyes y jurisprudencia para identificar precedentes jurídicos relevantes o resumir conceptos jurídicos complejos. Los resultados de estas investigaciones se pueden mejorar si se complementan las peticiones de los abogados con datos obtenidos del corpus de contratos, las comunicaciones legales anteriores y los registros de casos internos de la firma de abogados. Este enfoque de diseño asegura que las respuestas generadas sean relevantes para el ámbito jurídico en el que se especializa el abogado.
Alternativas de diseño
En esta sección se presentan enfoques de diseño alternativos que puedes tener en cuenta para tu aplicación de IA generativa compatible con RAG en Google Cloud.
Alternativas de infraestructura de IA
Si necesitas una arquitectura que use un producto de búsqueda de vectores totalmente gestionado, puedes usar Vertex AI y Vector Search, que proporcionan una infraestructura de servicio optimizada para búsquedas de vectores a gran escala. Para obtener más información, consulta Infraestructura de RAG para la IA generativa con Vertex AI y Vector Search.
Si quieres aprovechar las funciones de almacén de vectores de una base de datos totalmente gestionada Google Cloud , como AlloyDB para PostgreSQL o Cloud SQL, consulta Infraestructura de RAG para IA generativa con Vertex AI y AlloyDB para PostgreSQL.
Si quieres crear y desplegar rápidamente aplicaciones de IA generativa compatibles con RAG con herramientas y modelos de código abierto, como Ray, Hugging Face y LangChain, consulta el artículo sobre la infraestructura de RAG para la IA generativa con GKE y Cloud SQL.
Opciones de alojamiento de aplicaciones
En la arquitectura que se muestra en este documento, Cloud Run es el host de la aplicación de IA generativa y del procesamiento de datos. Cloud Run es una aplicación totalmente gestionada y orientada a los desarrolladores. También puedes desplegar tu aplicación en Vertex AI Agent Engine, en clústeres de GKE o en máquinas virtuales de Compute Engine.
Para elegir un host de aplicaciones, ten en cuenta las siguientes ventajas e inconvenientes de la flexibilidad de la configuración y el esfuerzo de gestión:
- Con la opción sin servidor de Cloud Run, puedes desplegar tus servicios personalizados en un entorno gestionado y preconfigurado. Para alojar los servicios de frontend y la lógica de backend personalizada para el preprocesamiento de solicitudes, esta arquitectura requiere la capacidad de implementar aplicaciones personalizadas.
- Con la opción Vertex AI Agent Engine, usas una plataforma totalmente gestionada diseñada para el servicio de agentes. Vertex AI Agent Engine reduce la sobrecarga de gestión y asegura una integración estrecha con Google Agentspace.
- Con las VMs de Compute Engine y los contenedores de GKE, eres responsable de gestionar los recursos informáticos subyacentes, pero tienes más flexibilidad y control en la configuración.
Para obtener más información sobre cómo elegir un servicio de alojamiento de aplicaciones adecuado, consulta los siguientes documentos:
- ¿Mi aplicación es adecuada para Cloud Run?
- Seleccionar un entorno de ejecución de contenedores gestionado
- Alojar aplicaciones en Google Cloud
Otras opciones de infraestructura
Para obtener información sobre otras opciones de infraestructura, modelos admitidos y técnicas de fundamentación que puedes usar en aplicaciones de IA generativa enGoogle Cloud, consulta Elegir modelos e infraestructura para tu aplicación de IA generativa.
Factores del diseño
En esta sección se ofrecen directrices para ayudarte a desarrollar una arquitectura de IA generativa compatible con RAG en Google Cloud que cumpla tus requisitos específicos de seguridad, cumplimiento, fiabilidad, coste y rendimiento. Las directrices de esta sección no son exhaustivas. En función de los requisitos específicos de tu aplicación de IA generativa y de los Google Cloud productos y funciones que utilices, es posible que tengas que tener en cuenta otros factores de diseño y compensaciones.
Para obtener una descripción general de los principios y las recomendaciones de arquitectura específicos de las cargas de trabajo de IA y aprendizaje automático en Google Cloud, consulta la sección Perspectiva de IA y aprendizaje automático del framework Well-Architected.
Seguridad, privacidad y cumplimiento
En esta sección se describen las consideraciones y recomendaciones de diseño para diseñar una topología en Google Cloud que cumpla los requisitos de seguridad y cumplimiento de tu carga de trabajo.
Producto |
Consideraciones y recomendaciones de diseño |
---|---|
Vertex AI |
Vertex AI admite Google Cloud controles de seguridad que puedes usar para cumplir tus requisitos de residencia de datos, cifrado de datos, seguridad de red y transparencia de acceso. Para obtener más información, consulta la siguiente documentación: Google Agentspace Enterprise elimina los datos solicitados por los usuarios en un plazo de 60 días. Para obtener más información, consulta Eliminación de datos enGoogle Cloud. Los modelos de IA generativa pueden producir respuestas dañinas, sobre todo cuando se les pide explícitamente que lo hagan. Para mejorar la seguridad y mitigar posibles usos inadecuados, puedes configurar filtros de contenido que actúen como barreras ante respuestas dañinas. Para obtener más información, consulta Filtros de seguridad y de contenido. |
Cloud Run |
De forma predeterminada, Cloud Run encripta los datos mediante Google-owned and Google-managed encryption keys. Para proteger tus contenedores con claves que controles, puedes usar claves de cifrado gestionadas por el cliente (CMEKs). Para obtener más información, consulta el artículo Usar claves de cifrado gestionadas por el cliente. Para asegurarte de que solo se desplieguen imágenes de contenedor autorizadas en Cloud Run, puedes usar la autorización binaria. Cloud Run te ayuda a cumplir los requisitos de residencia de datos. Tus funciones de Cloud Run se ejecutan en la región seleccionada. |
Cloud Storage |
De forma predeterminada, Cloud Storage encripta los datos que almacena mediante Google-owned and Google-managed encryption keys. Si es necesario, puedes usar CMEKs o tus propias claves, que puedes gestionar con un método de gestión externo, como las claves de cifrado proporcionadas por el cliente (CSEKs). Para obtener más información, consulta Opciones de cifrado de datos. Cloud Storage admite dos métodos para conceder a los usuarios acceso a tus segmentos y objetos: Gestión de Identidades y Accesos (IAM) y listas de control de acceso (LCAs). En la mayoría de los casos, te recomendamos que uses IAM, que te permite conceder permisos a nivel de cubo y de proyecto. Para obtener más información, consulta Descripción general del control de acceso. Los datos que cargues en el subsistema de ingestión de datos a través de Cloud Storage pueden incluir datos sensibles. Puedes usar Protección de Datos Sensibles para descubrir, clasificar y desidentificar datos sensibles. Para obtener más información, consulta el artículo Usar Protección de Datos Sensibles con Cloud Storage. Cloud Storage te ayuda a cumplir los requisitos de residencia de datos. Cloud Storage almacena o replica los datos en la región que especifiques. |
Pub/Sub |
De forma predeterminada, Pub/Sub cifra todos los mensajes, incluidos los mensajes en reposo y en tránsito, mediante Google-owned and Google-managed encryption keys. Pub/Sub admite el uso de CMEKs para cifrar mensajes en la capa de aplicación. Para obtener más información, consulta Configurar el cifrado de mensajes. Si tienes requisitos de residencia de datos, puedes configurar políticas de almacenamiento de mensajes para asegurarte de que los datos de los mensajes se almacenan en ubicaciones específicas. |
Para consultar principios y recomendaciones de seguridad específicos de las cargas de trabajo de IA y aprendizaje automático, consulta la sección Perspectiva de IA y aprendizaje automático: seguridad del framework Well-Architected.
Fiabilidad
En esta sección se describen las consideraciones de diseño y las recomendaciones para crear y operar una infraestructura fiable para tu implementación en Google Cloud.
Producto |
Consideraciones y recomendaciones de diseño |
---|---|
Vertex AI |
Vertex AI garantiza la residencia de los datos en reposo. Vertex AI almacena los datos de origen, incluidos los datos de RAG, en el almacén de datos gestionado, en la Google Cloud ubicación que hayas seleccionado. Esta separación del procesamiento y el almacenamiento es un aspecto fundamental de cómo la plataforma proporciona alta fiabilidad y cumplimiento. |
Cloud Run |
Cloud Run es un servicio regional que almacena datos de forma síncrona en varias zonas de una región. El servicio balancea la carga del tráfico automáticamente entre las zonas. Si se produce una interrupción en una zona, los trabajos de Cloud Run seguirán ejecutándose y no se perderán datos. Si se produce una interrupción en una región, los trabajos de Cloud Run dejarán de ejecutarse hasta que Google resuelva la interrupción. Es posible que fallen tareas o trabajos de Cloud Run concretos. Para gestionar estos errores, puedes usar reintentos de tareas y la creación de puntos de control. Para obtener más información, consulta el artículo Prácticas recomendadas para reintentos y puntos de control de tareas. |
Cloud Storage |
Puedes crear segmentos de Cloud Storage en uno de los tres tipos de ubicación: regional, birregional o multirregional. En el caso de los datos de los segmentos regionales, Cloud Storage replica esos datos de forma síncrona en varias zonas de una región. Para disfrutar de una mayor disponibilidad, puedes usar segmentos de dos regiones o multirregionales, en los que Cloud Storage replica los datos de forma asíncrona en varias regiones. Asegúrese de que su elección se ajusta a sus requisitos de cumplimiento. |
Para consultar los principios y las recomendaciones de fiabilidad específicos de las cargas de trabajo de IA y aprendizaje automático, consulta el artículo Perspectiva de la fiabilidad de la IA y el aprendizaje automático del framework Well-Architected.
Optimización de costes
En esta sección se ofrecen directrices para optimizar el coste de configurar y operar una Google Cloud topología que se cree con esta arquitectura de referencia.
Producto |
Consideraciones y recomendaciones de diseño |
---|---|
Vertex AI |
El modelo de IA subyacente que invoca el agente puede influir directamente en el coste de usar ese agente. Los precios se calculan en función del número de tokens de entrada y salida de cada solicitud. Para obtener más información, consulta las cuotas y los límites del sistema de la IA generativa en Vertex AI y la calculadora de precios deGoogle Cloud. Para obtener información sobre cómo minimizar el recuento de tokens para reducir los costes, consulta Optimizar la longitud de las peticiones y las respuestas. |
Cloud Run Functions |
Cuando creas trabajos de Cloud Run, especificas la cantidad de memoria y CPU que se asignará a la instancia de contenedor. Para controlar los costes, empieza con las asignaciones predeterminadas de CPU y memoria. Para mejorar el rendimiento, puedes aumentar la asignación configurando los límites de CPU y memoria. Si puedes predecir los requisitos de CPU y memoria de tus trabajos de Cloud Run, puedes ahorrar dinero con descuentos por uso comprometido. Para obtener más información, consulta Descuentos por compromiso de uso de Cloud Run. |
Cloud Storage |
En el segmento de Cloud Storage que uses para cargar datos en el subsistema de ingestión de datos, elige una clase de almacenamiento adecuada en función de los requisitos de conservación de datos y frecuencia de acceso de tus cargas de trabajo. Por ejemplo, puedes elegir la clase de almacenamiento Estándar y usar la gestión del ciclo de vida de los objetos para controlar los costes de almacenamiento. La gestión del ciclo de vida de los objetos degrada automáticamente los objetos a una clase de almacenamiento de menor coste o los elimina en función de las condiciones que definas. |
Para consultar los principios y las recomendaciones de optimización de costes específicos de las cargas de trabajo de IA y aprendizaje automático, consulta el artículo Perspectiva de IA y aprendizaje automático: optimización de costes del framework Well-Architected.
Optimización del rendimiento
En esta sección se describen las consideraciones y recomendaciones de diseño para diseñar una topología en Google Cloud que cumpla los requisitos de rendimiento de sus cargas de trabajo.
Producto |
Consideraciones y recomendaciones de diseño |
---|---|
Google Agentspace |
Para reducir la latencia durante el servicio, transmite las respuestas enviando respuestas del modelo antes de que el agente genere el resultado completo. De esta forma, se procesa la salida en tiempo real y puedes actualizar inmediatamente la interfaz de usuario y realizar otras tareas simultáneas. El streaming mejora la capacidad de respuesta percibida y crea una experiencia de usuario más interactiva. Para obtener más información, consulta Transmitir respuestas. |
Cloud Run |
Ajusta la asignación de memoria y CPU de las instancias de Cloud Run en función de tus requisitos de rendimiento. Para obtener más información, consulta Configurar límites de CPU para trabajos y Configurar límites de memoria para servicios. |
Cloud Storage |
Para subir archivos grandes, puedes usar un método llamado subida compuesta paralela. Con esta estrategia, el archivo grande se divide en fragmentos. Subes los fragmentos a Cloud Storage en paralelo y, a continuación, Cloud Storage vuelve a montar los datos en Google Cloud. Las subidas compuestas paralelas pueden ser más rápidas que las operaciones de subida normales si tienes suficiente ancho de banda de red y velocidad de disco. Sin embargo, esta estrategia tiene algunas limitaciones y consecuencias económicas. Para obtener más información, consulta Subidas compuestas paralelas. |
Para consultar los principios y las recomendaciones de optimización del rendimiento específicos de las cargas de trabajo de IA y aprendizaje automático, consulte el artículo Perspectiva de la IA y el aprendizaje automático: optimización del rendimiento del marco de trabajo Well-Architected.
Implementación
Para implementar esta arquitectura de referencia, usa el ejemplo de Terraform disponible en GitHub. Para obtener más información, consulta Infraestructura de RAG para aplicaciones de IA generativa con Google Agentspace y Vertex AI.
Siguientes pasos
- Consulta cómo fragmenta documentos Google Agentspace para RAG.
- Consulta cómo alojar aplicaciones y agentes de IA en Cloud Run.
- Consulta las prácticas recomendadas de IA responsable y los filtros de seguridad de Vertex AI.
- Consulta las prácticas recomendadas para usar modelos de lenguaje extensos (LLMs).
- Para obtener una descripción general de los principios y las recomendaciones de arquitectura específicos de las cargas de trabajo de IA y aprendizaje automático en Google Cloud, consulta la sección Perspectiva de IA y aprendizaje automático del framework Well-Architected.
- Para ver más arquitecturas de referencia, diagramas y prácticas recomendadas, consulta el centro de arquitectura de Cloud.
Colaboradores
Autor: Samantha He | Redactora técnica
Otros colaboradores:
- Deepak Michael | Ingeniero de clientes especialista en redes
- Kumar Dhanagopal | Desarrollador de soluciones entre productos
- Mark Schlagenhauf | Redactor técnico de redes
- Victor Moreno | Product Manager, Cloud Networking
- Yehia Elshater | Arquitecto de soluciones de campo, IA generativa, Google Cloud
- Paarth Mahajan | Especialista en redes de Google Cloud