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 (RAG) de recuperación con Vector Search. Vector Search es un servicio Google Cloud completamente administrado que proporciona una infraestructura de entrega optimizada para la coincidencia de similitud de vectores a gran escala.
El público previsto para este documento incluye arquitectos, desarrolladores y administradores de aplicaciones de IA generativa. En el documento, se supone que tienes conocimientos básicos sobre IA, aprendizaje automático (AA) y conceptos del modelo grande de lenguaje (LLM). En este documento, no se proporciona guía sobre cómo diseñar y desarrollar una aplicación de IA generativa.
Arquitectura
En el siguiente diagrama, se muestra una vista de alto nivel de la arquitectura que se presenta en este documento:
La arquitectura del diagrama anterior tiene dos subsistemas: transferencia de datos y entrega.
- El subsistema de transferencia de datos transfiere los datos que se suben desde fuentes externas. El subsistema prepara los datos para el RAG y se comunica con Vertex AI para generar incorporaciones para los datos transferidos y para compilar y actualizar el índice de vectores.
- El subsistema de entrega contiene los servicios de frontend y backend de la aplicación de IA generativa.
- El servicio de frontend controla el flujo de consultas y respuestas con los usuarios de la aplicación y reenvía las consultas al servicio de backend.
- El servicio de backend usa Vertex AI para generar incorporaciones de búsqueda, realizar búsquedas de similitud de vectores y aplicar filtros de seguridad y las instrucciones del sistema 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 dentro de cada subsistema del diagrama de arquitectura anterior.
Subsistema de transferencia de datos
El subsistema de transferencia de datos transfiere datos de fuentes externas y los prepara para el RAG. Los siguientes son los pasos en el flujo de transferencia y preparación de datos:
- Los datos se suben desde fuentes externas a un bucket de Cloud Storage. Las fuentes externas pueden ser aplicaciones, bases de datos o servicios de transmisión.
- Cuando se suben datos a Cloud Storage, se publica un mensaje en un tema de Pub/Sub.
- Cuando el tema de Pub/Sub recibe un mensaje, se activa una función de Cloud Run.
- La función de Cloud Run analiza los datos sin procesar, les da el formato necesario y los divide en fragmentos.
- La función usa la API de Vertex AI Embeddings para crear embeddings de los fragmentos con un modelo de embedding que tú especifiques. Vertex AI admite modelos de incorporación de texto y multimodales.
- Luego, la función compila un índice de Vector Search de las incorporaciones y, luego, implementa el índice.
Cuando se incorporan datos nuevos, se realizan los pasos anteriores para los datos nuevos y el índice se actualiza con actualizaciones de transmisión.
Cuando el subsistema de entrega procesa solicitudes de usuarios, usa el índice de Vector Search para la búsqueda de similitud de vectores. En la siguiente sección, se describe el flujo de la entrega.
Subsistema de entrega
El subsistema de entrega controla el flujo de consulta y respuesta entre la aplicación de IA generativa y sus usuarios. Estos son los pasos del flujo de entrega:
- Un usuario envía una búsqueda en lenguaje natural a un servicio de Cloud Run que proporciona una interfaz de frontend (como un chatbot) para la aplicación de IA generativa.
- El servicio de frontend reenvía la búsqueda del usuario a un servicio de backend de Cloud Run.
- El servicio de backend procesa la consulta de la siguiente manera:
- Convierte la búsqueda en incorporaciones usando el mismo modelo y los mismos parámetros de incorporaciones que el subsistema de transferencia de datos usa para generar incorporaciones de los datos transferidos.
- Recupera datos de fundamentación relevantes realizando una búsqueda de similitud de vectores para los embeddings de la búsqueda en el índice de Vector Search.
- Construye una instrucción aumentada combinando la búsqueda original con los datos de fundamentación.
- Envía la instrucción aumentada a un LLM implementado en Vertex AI.
- El LLM genera una respuesta.
- Para cada instrucción, Vertex AI aplica los filtros de seguridad de la IA responsable que configuraste y, luego, envía la respuesta filtrada y las puntuaciones de seguridad de la IA al servicio de backend de Cloud Run.
- La aplicación envía la respuesta al usuario a través del servicio de frontend de Cloud Run.
Puedes almacenar y ver registros de la actividad de consulta y respuesta en Cloud Logging, y puedes configurar la supervisión basada en registros con Cloud Monitoring. También puedes cargar las respuestas generadas en BigQuery para realizar análisis sin conexión.
El optimizador de instrucciones de Vertex AI te ayuda a mejorar las instrucciones a gran escala, tanto durante el diseño inicial de las instrucciones como para el ajuste continuo de las instrucciones. El optimizador de instrucciones evalúa la respuesta del modelo a un conjunto de instrucciones de muestra que proporcionan los ingenieros de AA. El resultado de la evaluación incluye las respuestas del modelo a las instrucciones de muestra, las puntuaciones de las métricas que especifican los ingenieros de AA y un conjunto de instrucciones del sistema optimizadas que puedes considerar usar.
Productos usados
En esta arquitectura de referencia, se usan los siguientes productos Google Cloud :
- Vertex AI: Es una plataforma de AA que te permite entrenar y, también, implementar modelos de AA y aplicaciones de IA, y personalizar LLM para usarlos en aplicaciones impulsadas por IA.
- Vector Search: Es un servicio de coincidencia de similitud de vectores que te permite almacenar, indexar y buscar datos semánticamente similares o relacionados.
- Cloud Run es una plataforma de procesamiento administrada que te permite ejecutar contenedores directamente sobre la infraestructura escalable de Google.
- Funciones de Cloud Run: Es una plataforma de procesamiento sin servidores que te permite ejecutar funciones de un solo propósito directamente en Google Cloud.
- Cloud Storage: Un depósito de objetos de bajo costo y sin límites para varios tipos de datos. Se puede acceder a los datos desde y hacia Google Cloud, y estos se replican en las ubicaciones para aumentar la redundancia.
- Pub/Sub: Un servicio de mensajería asíncrona y escalable que separa los servicios que producen mensajes de servicios que procesan esos mensajes.
- Cloud Logging: Un sistema de administración de registros en tiempo real con almacenamiento, búsqueda, análisis y alertas.
- Cloud Monitoring: Un servicio que proporciona visibilidad del rendimiento, la disponibilidad y el estado de la infraestructura y las aplicaciones.
- BigQuery: Un almacén de datos empresarial que te ayuda a administrar y analizar tus datos con funciones integradas como el análisis geoespacial de aprendizaje automático y la inteligencia empresarial.
Casos de uso
RAG es una técnica eficaz para mejorar la calidad del resultado que se genera a partir de un LLM. En esta sección, se proporcionan ejemplos de casos de uso para los que puedes usar aplicaciones de IA generativa compatibles con RAG.
Recomendaciones personalizadas de productos
Un sitio de compras en línea puede usar un chatbot con tecnología de LLM para ayudar a los clientes a encontrar productos o a obtener ayuda relacionada con las compras. Las preguntas de un usuario se pueden aumentar mediante el uso de datos históricos sobre el comportamiento de compra del usuario y los patrones de interacción con el sitio web. Los datos pueden incluir opiniones y comentarios de los usuarios que se almacenan en un almacén de datos no estructurado o métricas relacionadas con la búsqueda que se almacenan en un almacén de datos de estadísticas web. Luego, el LLM puede procesar la pregunta aumentada para generar respuestas personalizadas que el usuario podría considerar más interesantes y atractivas.
Sistemas de asistencia clínica
Los médicos en hospitales deben analizar y diagnosticar con rapidez el estado de la salud de un paciente para tomar decisiones sobre la atención y los medicamentos adecuados. Se puede usar una aplicación de IA generativa que use un LLM médico como Med-PaLM para ayudar a los médicos en su proceso de diagnóstico clínico. Las respuestas que genera la aplicación se pueden basar en registros históricos de pacientes mediante la contextualización de las instrucciones de los médicos con datos de la base de datos del historial clínico electrónico (HCE) del hospital o de una base de conocimiento externa, como PubMed.
Investigación legal eficiente
La investigación legal impulsada por IA generativa permite a los abogados consultar con rapidez grandes volúmenes de leyes y jurisprudencia para identificar precedentes legales relevantes o resumir conceptos legales complejos. El resultado de esa investigación se puede mejorar mediante la mejora de las indicaciones de un abogado con datos que se recuperan del corpus propio de contratos, comunicaciones jurídicas previas y registros de casos internos. Este enfoque de diseño garantiza que las respuestas generadas sean relevantes para el dominio legal en el que se especializa el abogado.
Alternativas de diseño
En esta sección, se presentan enfoques de diseño alternativos que puedes considerar para tu aplicación de IA generativa compatible con RAG en Google Cloud.
Alternativas de infraestructura de IA
Si deseas aprovechar las capacidades de almacenamiento de vectores de una base de datos Google Cloud completamente administrada, como AlloyDB para PostgreSQL o Cloud SQL para tu aplicación de RAG, consulta Infraestructura para una aplicación de IA generativa compatible con RAG con Vertex AI y AlloyDB para PostgreSQL.
Si quieres compilar e implementar con rapidez aplicaciones de IA generativa compatibles con RAG a través de herramientas y modelos de código abierto como Ray, Hugging Face y LangChain, consulta Infraestructura para una aplicación de IA generativa compatible con RAG a través de GKE y Cloud SQL.
Opciones de hosting de aplicaciones
En la arquitectura que se muestra en este documento, Cloud Run es el host de la aplicación de IA generativa y el procesamiento de datos. Cloud Run es una plataforma de aplicaciones completamente administrada y enfocada en los desarrolladores. Si necesitas mayor flexibilidad de configuración y control sobre la infraestructura de procesamiento, puedes implementar tu aplicación en clústeres de GKE o en VMs de Compute Engine.
La decisión de usar Cloud Run, GKE o Compute Engine como host de tu aplicación implica un equilibrio entre la flexibilidad de la configuración y el esfuerzo de administración. Con la opción sin servidores de Cloud Run, implementas tu aplicación en un entorno preconfigurado que requiere un esfuerzo de administración mínimo. Con las VMs de Compute Engine y los contenedores de GKE, eres responsable de administrar los recursos de procesamiento subyacentes, pero tienes mayor flexibilidad y control de configuración. Para obtener más información sobre cómo elegir un servicio de hosting de aplicaciones adecuado, consulta los siguientes documentos:
- ¿Mi app es adecuada para Cloud Run?
- Selecciona un entorno de ejecución de contenedor administrado
- Cómo alojar aplicaciones en Google Cloud
Otras opciones
Para obtener información sobre otras opciones de infraestructura, modelos compatibles y técnicas de fundamentación que puedes usar para aplicaciones de IA generativa enGoogle Cloud, consulta Elige modelos y la infraestructura para tu aplicación de IA generativa.
Consideraciones del diseño
En esta sección, se describen los factores de diseño, las prácticas recomendadas y las recomendaciones de diseño que debes tener en cuenta cuando usas esta arquitectura de referencia para desarrollar una topología que cumpla con tus requisitos específicos de seguridad, confiabilidad, costo y rendimiento.
La guía de esta sección no está completa. Según los requisitos específicos de tu aplicación y los productos y funciones de Google Cloud y de terceros que uses, es posible que debas considerar factores de diseño y compensaciones adicionales.
Seguridad, cumplimiento y privacidad
En esta sección, se describen las consideraciones y recomendaciones de diseño para diseñar una topología en Google Cloud que cumpla con los requisitos de seguridad y cumplimiento de tus cargas de trabajo.
Producto | Consideraciones y recomendaciones de diseño |
---|---|
Vertex AI |
Controles de seguridad: Vertex AI admite Google Cloud controles de seguridad que puedes usar para cumplir con tus requisitos de residencia de datos, encriptación de datos, seguridad de red y transparencia de acceso. Para obtener más información, consulta Controles de seguridad para Vertex AI y Controles de seguridad para IA generativa. Acceso al modelo: Puedes configurar políticas de la organización para limitar el tipo y las versiones de los LLM que se pueden usar en un proyecto de Google Cloud . Para obtener más información, consulta Cómo controlar el acceso a los modelos de Model Garden. Responsabilidad compartida: Vertex AI protege la infraestructura subyacente y proporciona herramientas y controles de seguridad para ayudarte a proteger tus datos, código y modelos. Para obtener más información, consulta Responsabilidad compartida de Vertex AI. Protección de datos: Usa la API de Cloud Data Loss Prevention para descubrir y desidentificar datos sensibles, como la información de identificación personal (PII), en las instrucciones y respuestas, y en los datos de registro. Para obtener más información, mira este video: Protege datos sensibles en apps con IA. |
Cloud Run |
Seguridad de entrada (servicio de frontend): Para controlar el acceso externo a la aplicación, inhabilita la URL run.app predeterminada del servicio de Cloud Run de frontend y configura un balanceador de cargas de aplicaciones externo regional. Además de balancear la carga del tráfico entrante a la aplicación, el balanceador de cargas administra los certificados SSL. Para mayor protección, puedes usar las políticas de seguridad de Google Cloud Armor para proporcionar filtrado de solicitudes, protección DSD y límite de frecuencia para el servicio.
Seguridad de entrada (servicio de backend): El servicio de Cloud Run para el backend de la aplicación en esta arquitectura no necesita acceso desde Internet. Para garantizar que solo los clientes internos puedan acceder al servicio, establece el parámetro Encriptación de datos: De forma predeterminada, Cloud Run encripta los datos con una Google-owned and Google-managed encryption key. Para proteger tus contenedores mediante una clave que controlas, puedes usar claves de encriptación administradas por el cliente (CMEK). Para obtener más información, consulta Usa claves de encriptación administradas por el cliente. Seguridad de la imagen del contenedor: Para garantizar que solo se implementen imágenes de contenedor autorizadas en los servicios de Cloud Run, puedes usar la Autorización Binaria. Residencia de datos: Cloud Run te ayuda a cumplir con los requisitos de residencia de datos. Las instancias de contenedor de Cloud Run se ejecutan dentro de la región que seleccionaste. Para obtener más orientación sobre la seguridad de los contenedores, consulta Sugerencias generales para el desarrollo de Cloud Run. |
Cloud Storage |
Encriptación de datos: De forma predeterminada, los datos que se almacenan en Cloud Storage se encriptan con Google-owned and Google-managed encryption keys. Si es necesario, puedes usar CMEK o tus propias claves que administres con un método de administración externo, como las claves de encriptación proporcionadas por el cliente (CSEK). Para obtener más información, consulta Opciones de encriptación de datos. Control de acceso: Cloud Storage admite dos sistemas para controlar el acceso de los usuarios a tus buckets y objetos: Identity and Access Management (IAM) y las listas de control de acceso (LCA). En la mayoría de los casos, recomendamos usar IAM, que te permite otorgar permisos a nivel de proyecto y de bucket. Para obtener más información, consulta Descripción general del control de acceso. Protección de datos: Los datos que cargas en el subsistema de transferencia de datos a través de Cloud Storage pueden incluir datos sensibles. Para proteger estos datos, puedes usar Sensitive Data Protection para descubrir, clasificar y desidentificar los datos. Para obtener más información, consulta Usa la Protección de datos sensibles con Cloud Storage. Control de red: Para mitigar el riesgo de robo de datos de Cloud Storage, puedes crear un perímetro de servicio con los Controles del servicio de VPC. Residencia de datos: Cloud Storage te ayuda a cumplir con los requisitos de residencia de datos. Los datos se almacenan o replican dentro de las regiones que especifiques. |
Pub/Sub |
Encriptación de datos: De forma predeterminada, Pub/Sub encripta todos los mensajes, tanto en reposo como en tránsito, con Google-owned and Google-managed encryption keys. Pub/Sub admite el uso de CMEK para la encriptación de mensajes en la capa de aplicación. Para obtener más información, consulta Configura la encriptación de mensajes. Residencia de datos: Si tienes requisitos de residencia de datos, para asegurarte de que los datos de los mensajes se almacenen en ubicaciones específicas, puedes configurar políticas de almacenamiento de mensajes. |
Cloud Logging |
Auditoría de actividad administrativa: El registro de la actividad administrativa está habilitado de forma predeterminada para todos los servicios de Google Cloud que se usan en esta arquitectura de referencia. Puedes acceder a los registros a través de Cloud Logging y usarlos para supervisar las llamadas a la API y otras acciones que modifiquen la configuración o los metadatos de los recursos de Google Cloud . Auditoría de acceso a los datos: El registro de eventos de acceso a los datos está habilitado de forma predeterminada para BigQuery. Para los otros servicios que se usan en esta arquitectura, puedes habilitar los registros de auditoría de acceso a los datos. Puedes usar estos registros para supervisar lo siguiente:
Seguridad de los datos de registro: Google no accede a los datos de Cloud Logging ni los usa. Residencia de datos: Para cumplir con los requisitos de residencia de datos, puedes configurar Cloud Logging para almacenar datos de registro en la región que especifiques. Para obtener más información, consulta Regionaliza tus registros. |
Todos los productos de la arquitectura |
Mitiga el riesgo de robo de datos: Para reducir el riesgo de robo de datos, crea un perímetro de Controles del servicio de VPC alrededor de la infraestructura. Los Controles del servicio de VPC admiten todos los servicios que se usan en esta arquitectura de referencia. Optimización posterior a la implementación: Después de implementar tu aplicación en Google Cloud, usa el servicio Active Assist para obtener recomendaciones que te ayuden a optimizar aún más la seguridad de tus recursos de nube. Revisa las recomendaciones y aplícalas según corresponda a tu entorno. Para obtener más información, consulta Cómo encontrar recomendaciones en el Centro de recomendaciones. Control de acceso: Sigue el principio de privilegio mínimo para cada servicio en la nube. |
Para obtener orientación general sobre la seguridad de las implementaciones de IA y AA enGoogle Cloud, consulta los siguientes recursos:
- (Blog) Presentación del framework de la IA segura de Google
- (Documentación) Perspectiva de seguridad de la IA y el AA en el Google Cloud Well-Architected Framework
- (Documentación) Responsabilidad compartida de Vertex AI
- (Informe técnico) IA generativa, privacidad y Google Cloud
- Video: Protección de datos sensibles en apps basadas en IA
Confiabilidad
En esta sección, se describen las consideraciones y recomendaciones de diseño para compilar y operar una infraestructura confiable para tu implementación en Google Cloud.
Producto | Consideraciones y recomendaciones de diseño |
---|---|
Búsqueda de vectores |
Ajuste de escala de las búsquedas: Para asegurarte de que el índice de Vector Search pueda controlar los aumentos en la carga de búsquedas, puedes configurar el ajuste de escala automático para el extremo del índice. Cuando aumenta la carga de consultas, la cantidad de nodos se incrementa automáticamente hasta el máximo que especifiques. Para obtener más información, consulta Cómo habilitar el ajuste de escala automático. |
Cloud Run |
Robustez ante interrupciones de la infraestructura: Cloud Run es un servicio regional. Los datos se almacenan de forma síncrona en varias zonas dentro de una región. Las cargas del tráfico se balancean automáticamente entre las zonas. Si se produce una interrupción zonal, Cloud Run continuará ejecutándose y los datos no se perderán. Si se produce una interrupción regional, Cloud Run deja de ejecutarse hasta que Google resuelva la interrupción. |
Cloud Storage | Disponibilidad de los datos: Puedes crear buckets de Cloud Storage en uno de los tres tipos de ubicación: regional, birregional o multirregión. Los datos que se almacenan en buckets regionales se replican de forma síncrona en varias zonas dentro de una región. Para obtener una mayor disponibilidad, puedes usar buckets birregionales o multirregionales, en los que los datos se replican de manera asíncrona en todas las regiones. |
Pub/Sub |
Control de frecuencia: Para evitar errores durante los períodos de aumentos transitorios en el tráfico de mensajes, puedes limitar la frecuencia de las solicitudes de publicación configurando el control de flujo en la configuración del publicador. Control de errores: Para controlar los intentos de publicación con errores, ajusta las variables de solicitud de reintento según sea necesario. Para obtener más información, consulta Reintenta solicitudes. |
BigQuery | Resistencia a las interrupciones de la infraestructura: Los datos que cargas en BigQuery se almacenan de forma síncrona en dos zonas dentro de la región que especifiques. Esta redundancia ayuda a garantizar que tus datos no se pierdan cuando se produce una interrupción zonal. Para obtener más información sobre las funciones de confiabilidad en BigQuery, consulta Comprende la confiabilidad. |
Todos los productos de la arquitectura | Optimización posterior a la implementación: Después de implementar tu aplicación en Google Cloud, usa el servicio Active Assist para obtener recomendaciones que te permitan optimizar aún más la confiabilidad de tus recursos de Cloud. Revisa las recomendaciones y aplícalas según corresponda a tu entorno. Para obtener más información, consulta Cómo encontrar recomendaciones en el Centro de recomendaciones. |
Para conocer los principios y las recomendaciones de confiabilidad específicos de las cargas de trabajo de IA y AA, consulta la perspectiva de IA y AA: Confiabilidad en Well-Architected Framework.
Optimización de costos
En esta sección, se proporciona orientación para optimizar el costo de configurar y operar una topología de Google Cloud que compilas a través de esta arquitectura de referencia.
Producto | Consideraciones y recomendaciones de diseño |
---|---|
Búsqueda de vectores |
La facturación de la Búsqueda de vectores depende del tamaño de tu índice, las consultas por segundo (QPS) y la cantidad y el tipo de máquina de los nodos que usas para el extremo del índice. Para las cargas de trabajo con una cantidad alta de QPS, agrupar las consultas en lotes puede ayudar a reducir el costo. Para obtener información sobre cómo estimar el costo de Vector Search, consulta Ejemplos de precios de Vector Search. Para mejorar la utilización de los nodos de procesamiento en los que se implementa el índice de la Búsqueda de vectores, puedes configurar el ajuste de escala automático para el extremo del índice. Cuando la demanda es baja, la cantidad de nodos se reduce automáticamente al mínimo que especifiques. Para obtener más información, consulta Habilita el ajuste de escala automático. |
Cloud Run |
Cuando creas servicios de Cloud Run, especificas la cantidad de memoria y CPU que se asignarán a la instancia de contenedor. Para controlar los costos, comienza con las asignaciones de CPU y memoria predeterminadas (mínimas). Para mejorar el rendimiento, puedes aumentar la asignación configurando el límite de CPU y el límite de memoria. Para obtener más información, consulta la siguiente documentación: Si puedes predecir los requisitos de CPU y memoria de tus servicios de Cloud Run, puedes ahorrar dinero si obtienes descuentos por compromiso de uso. Para obtener más información, consulta Descuentos por compromiso de uso de Cloud Run. |
Cloud Storage | Para el bucket de Cloud Storage que usas para cargar datos en el subsistema de transferencia de datos, elige una clase de almacenamiento adecuada. Cuando elijas la clase de almacenamiento, ten en cuenta los requisitos de retención de datos y frecuencia de acceso de tus cargas de trabajo. Por ejemplo, para controlar los costos de almacenamiento, puedes elegir la clase Standard y usar la Administración del ciclo de vida de los objetos. Si lo haces, se habilitará el cambio automático de objetos a una clase de almacenamiento de menor costo o la eliminación de objetos según las condiciones que establezcas. |
Cloud Logging |
Para controlar el costo de almacenamiento de registros, puedes hacer lo siguiente:
|
BigQuery | BigQuery te permite estimar el costo de las consultas antes de ejecutarlas. Para optimizar los costos de las consultas, debes optimizar el almacenamiento y el procesamiento de las consultas. Para obtener más información, consulta Estima y controla los costos. |
Todos los productos de la arquitectura | Después de implementar tu aplicación en Google Cloud, usa el servicio de Active Assist para obtener recomendaciones que te permitan optimizar aún más el costo de tus recursos de Cloud. Revisa las recomendaciones y aplícalas según corresponda a tu entorno. Para obtener más información, consulta Cómo encontrar recomendaciones en el Centro de recomendaciones. |
Para estimar el costo de tus recursos de Google Cloud , usa la Google Cloud calculadora de precios.
Para conocer los principios y las recomendaciones de optimización de costos específicos para las cargas de trabajo de IA y AA, consulta Perspectiva de IA y AA: Optimización de costos en el Framework de Well-Architected.
Optimización del rendimiento
En esta sección, se describen las consideraciones y recomendaciones de diseño para crear una topología en Google Cloud que cumpla con los requisitos de rendimiento de tus cargas de trabajo.
Producto | Consideraciones y recomendaciones de diseño |
---|---|
Búsqueda de vectores |
Cuando crees el índice, establece el tamaño del fragmento, el tipo de medida de distancia y la cantidad de incorporaciones para cada nodo hoja según tus requisitos de rendimiento. Por ejemplo, si tu aplicación es extremadamente sensible a la variabilidad de la latencia, te recomendamos un tamaño de fragmento grande. Para obtener más información, consulta Parámetros de configuración que afectan el rendimiento. Cuando configures la capacidad de procesamiento de los nodos en los que se implementa el índice de Vector Search, ten en cuenta tus requisitos de rendimiento. Elige un tipo de máquina adecuado y establece la cantidad máxima de nodos según la carga de consultas que esperas. Para obtener más información, consulta Configuración de implementación que afecta el rendimiento.
Configura los parámetros de la consulta para el índice de Vertex Search según tus requisitos de rendimiento, disponibilidad y costo de la consulta.
Por ejemplo, el parámetro Un índice actualizado ayuda a mejorar la precisión de las respuestas generadas. Puedes actualizar tu índice de Vector Search con actualizaciones por lotes o de transmisión. Las actualizaciones de transmisión te permiten realizar consultas casi en tiempo real sobre los datos actualizados. Para obtener más información, consulta Cómo actualizar y volver a compilar un índice activo. |
Cloud Run |
De forma predeterminada, a cada instancia de contenedor de Cloud Run se le asigna una CPU y 512 MiB de memoria. Según los requisitos de rendimiento, puedes configurar el límite de CPU y el límite de memoria. Para obtener más información, consulta la siguiente documentación: Para garantizar una latencia óptima incluso después de un período sin tráfico, puedes configurar una cantidad mínima de instancias. Cuando estas instancias están inactivas, la CPU y la memoria que se les asignan se facturan a un precio más bajo. Para obtener más orientación sobre la optimización del rendimiento, consulta Sugerencias generales para el desarrollo en Cloud Run. |
Cloud Storage | Para subir archivos grandes, puedes usar un método llamado cargas compuestas en paralelo. Con esta estrategia, el archivo grande se divide en fragmentos. Los fragmentos se suben a Cloud Storage en paralelo y, luego, los datos se recomponen en la nube. Cuando el ancho de banda de red y la velocidad del disco no son factores limitantes, las cargas compuestas paralelas pueden ser más rápidas que las operaciones de carga normales. Sin embargo, esta estrategia tiene algunas implicaciones de costos y limitaciones. Para obtener más información, consulta la sección sobre cargas compuestas paralelas. |
BigQuery |
BigQuery proporciona un gráfico de ejecución de consultas que puedes usar para analizar el rendimiento de las consultas y obtener estadísticas de rendimiento en cuanto a problemas como la contención de ranuras y la cuota de redistribución insuficiente. Para obtener más información, consulta Obtén estadísticas de rendimiento de las consultas. Después de abordar los problemas que identificas a través de las estadísticas de rendimiento de las consultas, puedes optimizar aún más las consultas con técnicas como la reducción del volumen de datos de entrada y salida. Para obtener más información, consulta Optimiza el procesamiento de las consultas. |
Todos los productos de la arquitectura | Después de implementar tu aplicación en Google Cloud, usa el servicio de Active Assist para obtener recomendaciones que te permitan optimizar aún más el rendimiento de tus recursos de Cloud. Revisa las recomendaciones y aplícalas según corresponda a tu entorno. Para obtener más información, consulta Cómo encontrar recomendaciones en el Centro de recomendaciones. |
Si deseas conocer los principios y las recomendaciones de optimización del rendimiento específicos para las cargas de trabajo de IA y AA, consulta Perspectiva de IA y AA: Optimización del rendimiento en Well-Architected Framework.
Implementación
Para implementar una topología basada en esta arquitectura de referencia, puedes descargar y usar la configuración de muestra de Terraform que está disponible en un repositorio en GitHub. Sigue las instrucciones del archivo README en el repositorio. El código de muestra no está diseñado para casos de uso de producción.
¿Qué sigue?
- Elige modelos y la infraestructura para tu aplicación de IA generativa
- Infraestructura para una aplicación de IA generativa compatible con RAG mediante el uso de Vertex AI y AlloyDB para PostgreSQL
- Infraestructura para una aplicación de IA generativa compatible con RAG mediante GKE y Cloud SQL
- Para obtener una descripción general de los principios y las recomendaciones de arquitectura específicos para las cargas de trabajo de IA y AA en Google Cloud, consulta la perspectiva de IA y AA en Well-Architected Framework.
- Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.
Colaboradores
Autor: Kumar Dhanagopal | Desarrollador de soluciones entre productos
Otros colaboradores:
- Assaf Namer | Arquitecto principal de seguridad en la nube
- Deepak Michael | Ingeniero de Atención al cliente especializado en herramientas de redes
- Divam Anand | Líder de Operaciones y Estrategia de Producto
- Eran Lewis | Gerente de producto sénior
- Jerome Simms | Director, Administración de productos
- Katie McLaughlin | Ingeniera sénior de Relaciones con Desarrolladores
- Mark Schlagenhauf | Escritor técnico, Herramientas de redes
- Megan O'Keefe | Jefa de Competencia de la Industria, Equipo de Evaluaciones de Cloud Platform
- Nicholas McNamara | Principal de Estrategia de Comercialización y Productos
- Preston Holmes | Gerente de productos salientes, Aceleración de aplicaciones
- Rob Edwards | Líder de prácticas tecnológicas, DevOps
- Victor Moreno | Gerente de producto, Herramientas de redes de Cloud
- Wietse Venema Ingeniero de relaciones con desarrolladores