Arquitectura de referencia de Capella iQ

En el panorama en rápida evolución de la Inteligencia Artificial (IA), la integración de soluciones avanzadas de bases de datos con modelos generativos de IA representa un avance significativo. Este blog presenta la arquitectura de Capella iQCapella IQ es una aplicación de Inteligencia Artificial Generativa (Gen AI) que utiliza la base de datos Couchbase NoSQL y que entiende las peticiones de consulta en lenguaje natural para generar consultas SQL++ y también generación de código en diferentes lenguajes del SDK cliente de Couchbase. El Capella IQ es un asistente de codificación que está integrado en el Capella Workbench y en IDEs populares para ayudar a los desarrolladores a ser más productivos al instante. Ver el tutorial sobre cómo trabaja más rápido con iQ.

Visión general de la arquitectura

La arquitectura representada en el siguiente diagrama muestra una sólida canalización que integra a la perfección varios componentes para ofrecer Capella iQ, una solución de IA generativa para los desarrolladores de aplicaciones. Uno de los principales objetivos de iQ es integrar potentes modelos de IA para la comprensión del lenguaje natural (NLU) y la generación de lenguaje natural (NLG) con los puntos fuertes de la base de datos NoSQL Couchbase, utilizando SQL++ y SDKs para un manejo y recuperación de datos eficientes. La futura sección iQ del diagrama se entregará en la próxima versión de iQ.

Capella iQ LLM App Architecture

Componentes clave de la arquitectura

1. Canalización de datos

Las canalizaciones de datos son el alma de cualquier aplicación basada en IA. Se encargan de ingerir datos de diversas fuentes y prepararlos para su procesamiento. En esta arquitectura, los conductos de datos canalizan los datos hacia múltiples sistemas de almacenamiento, garantizando que el sistema se actualice constantemente con información relevante. Este flujo continuo de datos es crucial para mantener la precisión y relevancia de los resultados de los modelos de IA. 

Para aplicaciones externas de Couchbase Gen AI, este módulo puede traer los datos directamente o por flujo desde otras fuentes usando conectores o Capella columnar servicios de ingestión. Específicamente para Capella iQ, no hay necesidad de una canalización adicional, ya que los datos ya existen en Couchbase. 

2. Soluciones de almacenamiento

La arquitectura aprovecha múltiples soluciones de almacenamiento para gestionar con eficacia distintos tipos de datos:

A) Docs DB (Couchbase Key-Value, Query): Este componente es responsable de almacenar documentos en un esquema flexible, permitiendo búsquedas eficientes de clave-valor y consultas complejas. Couchbase destaca por proporcionar estas capacidades con baja latencia. Esta base de datos es ideal para datos semiestructurados o de esquema flexible que requieran operaciones rápidas de lectura y escritura.

B) Almacenamiento de objetos (AWS S3/GCP/Azure): Utilizado para almacenar archivos de objetos, imágenes y vídeos, S3 como objectstore proporciona una solución escalable y rentable para manejar grandes cantidades de datos no estructurados. Este componente es esencial para almacenar archivos multimedia y otros objetos de gran tamaño que no encajan perfectamente en un esquema de base de datos tradicional.

C) Vector DB (Búsqueda de texto completo en Couchbase): Esta base de datos está optimizada para la búsqueda vectorial y por similitud, lo que permite al sistema realizar búsquedas avanzadas basadas en incrustaciones y otras representaciones vectoriales. Esto es especialmente importante para las aplicaciones que requieren capacidades de búsqueda semántica, en las que comprender el significado del contenido es tan importante como el propio contenido.

Específicamente para Capella iQ, los datos del cliente ya están almacenados en la base de datos de documentos del clúster Couchbase Capella. No se requiere ninguna otra actividad específica en el propio iQ.

Para las aplicaciones Gen AI externas, se podrían almacenar los datos y vectores en el clúster Couchbase y la búsqueda de vectores a través de FTS utilizando los módulos de canalización de datos anteriores.

3. Orquestador e incrustaciones

El orquestador gestiona el flujo de datos y operaciones dentro del sistema. Se encarga de las incrustaciones, que son cruciales para transformar datos textuales en vectores numéricos que los modelos de IA puedan procesar. Las incrustaciones son un componente clave de los modernos sistemas de IA, ya que permiten representar palabras, frases e incluso documentos enteros de forma que capten su significado semántico.

Específicamente para iQ, el componente UI es el orquestador general del flujo de trabajo de la aplicación, donde se produce la interacción conversacional, la creación de avisos contextuales y también las interacciones con el proxy backend de iQ, que, a su vez, se comunica con los LLM. En el iQ actual, no se generan incrustaciones, ya que no hay búsqueda de similitudes ni se comunican datos privados a los LLM. En el futuro, está previsto generar incrustaciones iQ a partir de las incrustaciones LLM privadas.

La aplicación Gen AI externa basada en Couchbase puede realizar la orquestación del flujo de trabajo, así como la generación de incrustaciones fuera de línea para los documentos, de modo que la indexación vectorial pueda producirse automáticamente durante la mutación de los documentos.

4. Contexto y creadores de estímulos

A continuación se presentan dos submódulos importantes que ayudan en la preparación de la construcción del prompt contextual para que pueda conversar con los LLM.

RAG/constructor de contextos

Este componente reúne el contexto pertinente para las consultas utilizando técnicas de generación mejorada por recuperación (Retrieval-Augmented Generation, RAG). La RAG mejora las capacidades de la IA generativa incorporando información privada y/o externa al proceso de generación de respuestas, lo que garantiza que el modelo de IA tenga acceso a la información pertinente para generar respuestas precisas. Esto es especialmente útil para aplicaciones que requieren respuestas dinámicas y contextualmente conscientes de un dominio específico. En Capella iQ, el contexto contiene la inferencia del esquema, que se va a derivar del ámbito seleccionado por el usuario y sus colecciones.

Prompt constructor

Elabora los avisos que se introducen en los modelos de IA, asegurándose de que el formato de entrada se ajusta a los requisitos del modelo para un rendimiento óptimo. El constructor de avisos toma la información bruta del usuario y la transforma en un formato estructurado que el modelo de IA pueda entender y procesar eficazmente.

En el iQ actual, la inferencia del esquema flexible se deriva del cubo, ámbito y colecciones seleccionados por el usuario y no se envía ningún dato sensible o privado real a los LLM. No hay RAG en la implementación actual de iQ. En el futuro iQ, el plan es realizar la indexación vectorial de datos de Couchbase con generación automática de incrustaciones en los datos utilizando LLMs privados.

Para las aplicaciones Gen AI externas basadas en Couchbase, este módulo puede realizar automáticamente la generación de embebidos para la petición del usuario y, a continuación, realizar la RAG con similitud o búsqueda vectorial en Couchbase y, finalmente, preparar la petición contextual que está lista para enviarla a los LLM.

5. Filtro de datos sensibles

Para garantizar el cumplimiento de la normativa sobre privacidad de datos, este filtro examina los datos en busca de información sensible, evitando que se procesen o almacenen de forma inadecuada. Este componente es fundamental para las aplicaciones que manejan información personal o sensible, ya que ayuda a proteger la privacidad de los usuarios y a mantener el cumplimiento de normativas como GDPR y CCPA.

Específicamente en el iQ actual, sólo se envía la inferencia del esquema sin ningún dato privado o sensible enviándolo a los LLM. En el futuro iQ, el plan es enviar datos privados a los LLM privados alojados dentro de la VPC del plano de datos.

En las aplicaciones Gen AI externas, los datos sensibles deben filtrarse antes de enviarlos a los LLM públicos y los datos privados pueden enviarse directamente a los LLM privados alojados o empresariales.

6. Proxy LLM backend: el corazón de la interacción entre modelos

El LLM Backend Proxy es un componente fundamental en la arquitectura de una aplicación de IA generativa. Actúa como el eje central a través del cual se enrutan todas las interacciones con los grandes modelos lingüísticos (LLM), garantizando una comunicación eficiente, una selección adecuada del modelo y el cumplimiento de las restricciones operativas. Profundicemos en sus funciones y su importancia.

Responsabilidades del proxy de backend de LLM

Selección del modelo

Selección dinámica de modelos
El LLM Backend Proxy selecciona dinámicamente el modelo lingüístico adecuado para cada tarea en función de criterios como la complejidad de la consulta, las preferencias del usuario, la disponibilidad del modelo y las métricas de rendimiento. Por ejemplo, una simple consulta factual puede dirigirse a un modelo ligero, mientras que una consulta más compleja que requiera una comprensión matizada podría dirigirse a un modelo avanzado como GPT-4 Turbo o a un LLM privado especializado como Llama 3.

Selección en función del contexto
El proxy evalúa el contexto de la consulta del usuario y elige un modelo que ha sido afinado o especializado para el dominio específico, garantizando que las respuestas sean tanto precisas como contextualmente relevantes.

Moderación

Moderación de contenidos
El proxy garantiza que todas las respuestas generadas por el LLM se ajustan a las directrices y normas éticas predefinidas. Realiza un filtrado de contenidos para evitar la generación de contenidos dañinos, ofensivos o inapropiados, lo cual es crucial para mantener la confianza y la seguridad en las aplicaciones de cara al usuario.

Límites contextuales
El proxy aplica los límites de contexto garantizando que el contexto de entrada proporcionado al LLM no supere el límite máximo de tokens del modelo, optimizando el rendimiento y evitando errores o el truncamiento de información importante.

Limitación de velocidad

Solicitud de estrangulamiento
El proxy LLM Backend implementa la limitación de velocidad para controlar el flujo de solicitudes enviadas a los LLM. Esto ayuda a gestionar los recursos del sistema de forma eficiente y evita la sobrecarga de los modelos, garantizando la capacidad de respuesta incluso con cargas pesadas.

Límites específicos del usuario
El proxy puede aplicar límites de tarifa por usuario, como limitar los tokens y las llamadas, para evitar el abuso o mal uso del sistema. Por ejemplo, un usuario puede tener restringido un determinado número de llamadas por minuto para garantizar un uso justo.

Registro y control

Registro exhaustivo
El proxy mantiene registros detallados de todas las interacciones con los LLM, incluidos los parámetros de consulta, los tiempos de respuesta y los errores encontrados. Estos registros son esenciales para solucionar problemas, auditar y mejorar la fiabilidad del sistema.

Control en tiempo real
El proxy proporciona supervisión en tiempo real del rendimiento del sistema, lo que permite a los administradores realizar un seguimiento de métricas clave como los tiempos de respuesta, los volúmenes de consulta y la utilización de modelos, facilitando la gestión proactiva y la rápida resolución de problemas.

Integración con métricas y análisis

Métricas de servicio
El proxy recopila y agrega datos sobre errores y códigos de estado de los LLM, proporcionando información sobre la eficiencia del modelo, la precisión y el consumo de recursos. Estas métricas son fundamentales para la optimización continua y la mejora de la fiabilidad del servicio.

Análisis de la interacción de los usuarios
El proxy realiza un seguimiento de las interacciones y comentarios de los usuarios, lo que ayuda a comprender su comportamiento y preferencias. Estos datos pueden utilizarse para perfeccionar las respuestas del modelo y mejorar la experiencia general del usuario.

7. LLM públicos y privados

El sistema iQ actual integra LLM públicos populares (por ejemplo, GPT-4 Turbo, Claude 3) para llevar a cabo las operaciones de Gen AI. El plan futuro de iQ es integrar LLMs privados alojados (por ejemplo, Llama 3, ), proporcionando flexibilidad a la hora de elegir el mejor modelo para casos de uso específicos. 

Los LLM públicos ofrecen potentes capacidades y son ideales para aplicaciones de uso general, mientras que los LLM privados pueden personalizarse y ajustarse para tareas específicas, lo que proporciona un mayor control y un rendimiento potencialmente mejor para aplicaciones especializadas.

8. Moderación y limitación de la tasa

Moderación y límite de la ventana contextual

Este componente garantiza que el contenido generado por la IA se adhiere a las directrices predefinidas y se mantiene dentro de los límites de la ventana contextual. En la implementación actual de iQ, existen comprobaciones de moderación para evitar la generación de respuestas dañinas o inapropiadas, aunque por el momento no se aplica ninguna moderación adicional al contenido generado. Para evitar errores relacionados con la superación de la ventana contextual del LLM, el contenido se recorta desde el principio para ajustarse al tamaño del contexto del modelo. En futuras versiones de iQ, este componente también podría encargarse de tareas como el almacenamiento en caché, la gestión de comentarios y la ejecución de contenidos generados por el LLM al estilo sandbox. En aplicaciones externas de IA generativa, este módulo puede proporcionar una moderación similar, garantizando un proceso seguro de generación de contenidos.

Limitador de velocidad

El limitador de velocidad gestiona el flujo de peticiones para evitar la sobrecarga del sistema, garantizando un funcionamiento fluido y ágil. Ayuda a mantener el rendimiento y la estabilidad incluso bajo cargas pesadas controlando el número de peticiones. El limitador de velocidad se aplica a varios niveles: el número de llamadas por minuto y por usuario, el número de tokens utilizados al día por usuario y el número de tokens utilizados durante un mes a nivel de inquilino.

9. Métricas y registro

Métricas

Las métricas se recopilan para supervisar y optimizar la eficiencia y eficacia del sistema. Proporcionan información valiosa sobre el rendimiento del sistema, lo que permite una mejora y optimización continuas. El sistema de gestión de SRE incluye un cuadro de mandos específico para recopilar datos métricos y visualizarlos mediante gráficos.

Registro

Los registros se mantienen para solucionar problemas, auditar y mejorar la fiabilidad del sistema. Los registros son cruciales para diagnosticar problemas, seguir el comportamiento del sistema y garantizar la responsabilidad y la transparencia.

Ventajas de utilizar Couchbase para almacenar documentos y vectores

La base de datos NoSQL de Couchbase junto con la función Vector DB proporcionan varias ventajas en esta arquitectura:

Escalabilidad: Maneja grandes volúmenes de datos con facilidad y admite el escalado horizontal. Esto es especialmente importante para las aplicaciones de IA que requieren procesar grandes cantidades de datos en tiempo real.

Flexibilidad: Soporta varios modelos de datos (clave-valor, documento) y consultas complejas. La flexibilidad de Couchbase le permite manejar una amplia gama de tipos y estructuras de datos, por lo que es ideal para aplicaciones de IA dinámicas y en evolución.

Rendimiento: Ofrece baja latencia y alto rendimiento, esenciales para aplicaciones de IA en tiempo real. El rendimiento de Couchbase garantiza que el sistema pueda ofrecer interacciones rápidas y con gran capacidad de respuesta, incluso con mucha carga.

Integración con modelos de IA: La capacidad de Couchbase para integrarse a la perfección con modelos de IA y gestionar consultas complejas lo convierte en una potente solución backend para aplicaciones de IA generativa. Su compatibilidad con la búsqueda de texto completo y la búsqueda vectorial mejora la capacidad del sistema para realizar búsquedas avanzadas y ofrecer resultados precisos.

Resumen de los pasos de Gen AI

El flujo de trabajo de la aplicación de IA generativa comienza con la entrada de una consulta NLU desde la interfaz de usuario (CP-UI) y finaliza con la generación de contenidos, siguiendo los pasos genéricos que se indican a continuación:

    1. Edificio Prompt: El Prompt Builder transforma la consulta NLU inicial en una consulta estructurada. Este paso consiste en analizar la entrada del usuario y construir un formato que el modelo de IA pueda entender y procesar eficazmente.
    2. Contexto Edificio: El contexto relevante se recopila mediante el RAG/Context Builder. Este paso consiste en recuperar información externa relevante para la consulta, lo que mejora la capacidad del modelo de IA para generar respuestas precisas y adecuadas al contexto.
    3. Filtrado de datos sensibles: Garantiza que la solicitud y los datos contextuales están libres de información sensible. Este paso es crítico para mantener la privacidad del usuario y el cumplimiento de la normativa de protección de datos. A continuación, interactúa con el punto final REST del proxy backend LLM con toda la carga útil contextual necesaria.
    4. Selección de modelos y proxy: El LLM Backend Proxy selecciona el modelo adecuado en función de la consulta y reenvía la petición. Este paso consiste en elegir el mejor modelo para la tarea, teniendo en cuenta factores como las capacidades del modelo, el rendimiento y los requisitos específicos del caso de uso.
    5. Moderación y limitación de tarifas: La consulta se modera y se limita su velocidad para garantizar la conformidad y el rendimiento. En este paso se comprueba que el contenido sea adecuado y que el sistema no se vea desbordado por un exceso de solicitudes.
    6. Generación de respuestas: El LLM seleccionado genera una respuesta que se transmite al proxy backend. Este paso consiste en procesar el mensaje y el contexto para generar una respuesta en lenguaje natural que responda a la consulta del usuario.
    7. Respuesta Edificio: La respuesta procesada se estructura y formatea para el usuario. Este paso consiste en transformar la respuesta bruta generada por la IA en un formato fácil de entender y utilizar para el usuario.
    8. Entrega de respuestas: La respuesta NLG final se entrega al usuario a través de la CP-UI. Este paso consiste en presentar la respuesta al usuario de forma clara y sencilla.

Conclusión

La integración de la base de datos Couchbase con una arquitectura de aplicación de IA generativa ofrece una potente solución para las necesidades modernas de IA. Esta arquitectura no solo aprovecha la flexibilidad y escalabilidad de Couchbase, sino que también garantiza un manejo de datos robusto, un procesamiento eficiente y una generación de respuestas precisa. Al adoptar esta arquitectura, los desarrolladores pueden crear aplicaciones de IA avanzadas que satisfagan las demandas de los entornos de datos de aprendizaje dinámicos actuales.

La combinación de las robustas capacidades de base de datos de Couchbase y las características avanzadas de los modelos generativos de IA proporciona una base sólida para construir aplicaciones de IA innovadoras y eficientes. Tanto si estás desarrollando bots de atención al cliente, generadores de contenido, búsqueda semántica o herramientas avanzadas de análisis de datos, esta arquitectura ofrece la flexibilidad, el rendimiento y la escalabilidad necesarios para triunfar en el competitivo panorama de la IA.

Próximos pasos

Explora el potencial de Couchbase y la IA generativa para revolucionar tus aplicaciones. Aprovechando los puntos fuertes de esta potente arquitectura, puedes crear soluciones basadas en IA que ofrezcan un rendimiento, una precisión y una satisfacción del usuario excepcionales. Tanto si eres desarrollador, científico de datos o líder empresarial, la integración de Couchbase y la IA generativa proporciona las herramientas y capacidades necesarias para impulsar la innovación y alcanzar tus objetivos.

Dé el primer paso hacia la creación de la próxima generación de aplicaciones de IA adoptando esta arquitectura. Aprovecha la potencia de la base de datos vectorial y NoSQL de Couchbase y las capacidades avanzadas de los modelos generativos de IA para crear soluciones que satisfagan las demandas de los entornos de datos dinámicos actuales. Al hacerlo, podrás desbloquear nuevas oportunidades, mejorar la eficiencia operativa y ofrecer un valor excepcional a tus usuarios.

Referencias


Agradecimientos

Gracias al equipo de Capella iQ (Keshav M, Steve Y, Dhinu S, Kamini J, Ravi K, Rob A, Piotr N, Elliot, Eben H, Sriram R, Nimiya J, Shaazin S, Bo-Chun, Sean C, Tyler M). Un agradecimiento especial a Mohan V por ayudar en las revisiones adicionales y crear una buena experiencia para el lector. Gracias a todos los que han colaborado directa o indirectamente.



Autor

Publicado por Jagadesh Munta, Ingeniero Principal de Software, Couchbase

Jagadesh Munta es Ingeniero Principal de Software en Couchbase Inc. EE.UU. Anteriormente, trabajó en Sun Microsystems y Oracle durante 19 años. Jagadesh tiene un máster en Ingeniería de Software por la Universidad Estatal de San José (EE.UU.) y un B.Tech. Computer Science and Engineering en JNTU, India. Es autor de "Software Quality and Java Automation Engineer Survival Guide" para ayudar a los desarrolladores de software y a los ingenieros de automatización de la calidad.

Dejar una respuesta