Arquitetura do Couchbase

Criação de aplicativos de IA de geração com o Couchbase Capella

Arquitetura de referência do Capella iQ

No cenário em rápida evolução da Inteligência Artificial (IA), a integração de soluções avançadas de banco de dados com modelos generativos de IA representa um avanço significativo. Este blog apresenta as arquitetura do Capella iQO Capella IQ é um aplicativo de IA generativa (Gen AI) que usa o banco de dados NoSQL do Couchbase que entende os prompts de consulta de linguagem natural para gerar consultas SQL++ e também a geração de código em diferentes linguagens SDK do cliente Couchbase. O Capella IQ é um assistente de codificação incorporado ao Capella Workbench e aos IDEs populares para ajudar os desenvolvedores a se tornarem instantaneamente mais produtivos. Veja o tutorial sobre como trabalhe mais rápido com o iQ.

Visão geral da arquitetura

A arquitetura apresentada no diagrama abaixo mostra um pipeline robusto que integra perfeitamente vários componentes para fornecer o Capella iQ, uma solução de IA generativa para os desenvolvedores de aplicativos. Um dos principais objetivos do iQ é integrar modelos avançados de IA para compreensão de linguagem natural (NLU) e geração de linguagem natural (NLG) com os pontos fortes do banco de dados NoSQL Couchbase, utilizando SQL++ e SDKs para o manuseio e a recuperação eficientes de dados. A futura seção do iQ no diagrama será entregue na próxima versão do iQ.

Capella iQ LLM App Architecture

Principais componentes da arquitetura

1. Pipelines de dados

Os pipelines de dados são a força vital de qualquer aplicativo orientado por IA. Eles são responsáveis por ingerir dados de várias fontes e prepará-los para o processamento. Nessa arquitetura, os pipelines de dados canalizam os dados para vários sistemas de armazenamento, garantindo que o sistema seja constantemente atualizado com informações relevantes. Esse fluxo contínuo de dados é fundamental para manter a precisão e a relevância dos resultados dos modelos de IA. 

Para aplicativos externos do Couchbase Gen AI, esse módulo pode trazer os dados diretamente ou transmitir de outras fontes usando conectores ou Análise do Couchbase serviços de ingestão. Especificamente para o Capella iQ, não há necessidade de um pipeline adicional, pois os dados já existem no Couchbase. 

2. Soluções de armazenamento

A arquitetura aproveita várias soluções de armazenamento para lidar com diferentes tipos de dados de forma eficiente:

A) Docs DB (Couchbase Key-Value, Consulta): Esse componente é responsável pelo armazenamento de documentos em um esquema flexível, permitindo pesquisas eficientes de valores-chave e consultas complexas. O Couchbase se destaca por fornecer esses recursos com baixa latência. Esse banco de dados é ideal para dados semiestruturados ou de esquema flexível que exigem operações rápidas de leitura e gravação.

B) Armazenamento de objetos (AWS S3/GCP/Azure): Usado para armazenar arquivos de objetos, imagens e vídeos, o S3 como objectstore oferece uma solução escalável e econômica para lidar com grandes quantidades de dados não estruturados. Esse componente é essencial para armazenar arquivos de mídia e outros objetos grandes que não se encaixam perfeitamente em um esquema de banco de dados tradicional.

C) Vector DB (Couchbase Full-Text Search): Esse banco de dados é otimizado para pesquisa de vetores e pesquisa de similaridade, permitindo que o sistema realize pesquisas avançadas com base em embeddings e outras representações de vetores. Isso é particularmente importante para aplicativos que exigem recursos de pesquisa semântica, em que a compreensão do significado do conteúdo é tão importante quanto o próprio conteúdo.

Especificamente para o Capella iQ, os dados do cliente já estão armazenados no banco de dados de documentos do cluster do Couchbase Capella. Nenhuma outra atividade específica é necessária no próprio iQ.

Para os aplicativos externos de IA de geração, é possível armazenar os dados e vetores no cluster do Couchbase e pesquisar vetores por meio do FTS usando os módulos de pipeline de dados acima.

3. Orquestrador e embeddings

O orquestrador gerencia o fluxo de dados e operações dentro do sistema. Ele lida com os embeddings, que são cruciais para transformar dados textuais em vetores numéricos que os modelos de IA podem processar. Os embeddings são um componente essencial dos sistemas modernos de IA, pois permitem a representação de palavras, frases e até mesmo documentos inteiros de uma forma que capture seu significado semântico.

Especificamente para o iQ, o componente da interface do usuário é o orquestrador geral do fluxo de trabalho do aplicativo, no qual a interação de conversação, a criação de avisos contextuais e também as interações com o proxy de back-end do iQ, que, por sua vez, se comunica com os LLMs. No iQ atual, não há embeddings gerados, pois não há pesquisa de similaridade e nenhum dado privado está sendo comunicado aos LLMs. No futuro, a geração de embeddings do iQ está planejada a partir dos embeddings do LLM privado.

O aplicativo Gen AI externo baseado no Couchbase pode fazer a orquestração do fluxo de trabalho, bem como a geração de embeddings off-line para os documentos, de modo que a indexação de vetores possa ocorrer automaticamente durante a mutação dos documentos.

4. Construtores de contexto e de prompt

Abaixo estão dois submódulos importantes que ajudam na preparação da criação do prompt contextual para que ele possa conversar com os LLMs.

RAG/criador de contexto

Esse componente reúne o contexto relevante para consultas usando técnicas de geração aumentada por recuperação (RAG). A RAG aprimora os recursos da IA generativa ao incorporar informações privadas e/ou externas ao processo de geração de respostas, garantindo que o modelo de IA tenha acesso às informações pertinentes para gerar respostas precisas. Isso é particularmente útil para aplicativos que exigem respostas dinâmicas e contextualmente conscientes de um domínio específico. No Capella iQ, o contexto contém a inferência do esquema, que será derivada do escopo selecionado pelo usuário e de suas coleções.

Construtor imediato

Constrói prompts que são alimentados nos modelos de IA, garantindo que o formato de entrada se alinhe com os requisitos do modelo para um desempenho ideal. O criador de prompts pega a entrada bruta do usuário e a transforma em um formato estruturado que o modelo de IA pode entender e processar com eficiência.

No iQ atual, a inferência de esquema flexível é derivada do intervalo, escopo e coleções selecionados pelo usuário e nenhum dado sensível ou privado real é enviado aos LLMs. Não há RAG na implementação atual do iQ. No futuro iQ, o plano é executar a indexação do vetor de dados do Couchbase com a geração automática de embeddings nos dados usando LLMs hospedados privados.

Para os aplicativos Gen AI externos baseados no Couchbase, esse módulo pode fazer automaticamente a geração de embeddings para o prompt do usuário e, em seguida, executar o RAG com similaridade ou pesquisa de vetor no Couchbase e, por fim, preparar o prompt contextual que está pronto para ser enviado aos LLMs.

5. Filtro de dados confidenciais

Para garantir a conformidade com as normas de privacidade de dados, esse filtro examina os dados em busca de informações confidenciais, evitando que sejam processados ou armazenados de forma inadequada. Esse componente é essencial para aplicativos que lidam com informações pessoais ou confidenciais, pois ajuda a proteger a privacidade do usuário e a manter a conformidade com regulamentos como o GDPR e a CCPA.

Especificamente para o iQ atual, somente a inferência de esquema é enviada sem que nenhum dado privado ou sensível seja enviado aos LLMs. No futuro iQ, o plano é enviar dados privados para os LLMs privados hospedados dentro da VPC do plano de dados.

Nos aplicativos de IA de geração externa, os dados confidenciais devem ser filtrados antes de serem enviados para LLMs públicos, e os dados privados podem ser enviados diretamente para LLMs privados hospedados ou corporativos.

6. Proxy de backend do LLM: o coração da interação do modelo

O proxy de backend do LLM é um componente essencial na arquitetura de um aplicativo de IA generativa. Ele atua como o hub central por meio do qual todas as interações com modelos de linguagem grandes (LLMs) são roteadas, garantindo uma comunicação eficiente, a seleção adequada do modelo e a adesão às restrições operacionais. Vamos nos aprofundar em suas funcionalidades e importância.

Responsabilidades do proxy de backend do LLM

Seleção de modelos

Seleção de modelos dinâmicos
O proxy de backend do LLM seleciona dinamicamente o modelo de linguagem apropriado para cada tarefa com base em critérios como complexidade da consulta, preferências do usuário, disponibilidade do modelo e métricas de desempenho. Por exemplo, uma consulta factual simples pode ser encaminhada a um modelo leve, enquanto uma consulta mais complexa que exija compreensão diferenciada pode ser direcionada a um modelo avançado, como o GPT-4 Turbo, ou a um LLM privado especializado, como o Llama 3.

Seleção com reconhecimento de contexto
O proxy avalia o contexto da consulta do usuário e escolhe um modelo que tenha sido ajustado ou especializado para o domínio específico, garantindo que as respostas sejam precisas e contextualmente relevantes.

Moderação

Moderação de conteúdo
O proxy garante que todas as respostas geradas pelo LLM sigam as diretrizes e os padrões éticos predefinidos. Ele realiza a filtragem de conteúdo para evitar a geração de conteúdo nocivo, ofensivo ou inadequado, o que é fundamental para manter a confiança e a segurança em aplicativos voltados para o usuário.

Limites de contexto
O proxy impõe limites de contexto, garantindo que o contexto de entrada fornecido ao LLM não exceda o limite máximo de tokens do modelo, otimizando o desempenho e evitando erros ou o truncamento de informações importantes.

Limitação de taxa

Limitação de solicitações
O proxy de backend do LLM implementa a limitação de taxa para controlar o fluxo de solicitações enviadas aos LLMs. Isso ajuda a gerenciar os recursos do sistema de forma eficiente e evita a sobrecarga dos modelos, garantindo a capacidade de resposta mesmo sob carga pesada.

Limites específicos do usuário
O proxy pode aplicar limites de taxa por usuário, como a limitação de tokens e chamadas, para evitar abuso ou uso indevido do sistema. Por exemplo, um usuário pode ser restringido a um determinado número de chamadas por minuto para garantir o uso justo.

Registro e monitoramento

Registro abrangente
O proxy mantém registros detalhados de todas as interações com os LLMs, incluindo parâmetros de consulta, tempos de resposta e quaisquer erros encontrados. Esses registros são essenciais para a solução de problemas, auditoria e melhoria da confiabilidade do sistema.

Monitoramento em tempo real
O proxy fornece monitoramento em tempo real do desempenho do sistema, permitindo que os administradores acompanhem as principais métricas, como tempos de resposta, volumes de consulta e utilização de modelos, facilitando o gerenciamento proativo e a rápida resolução de problemas.

Integração com métricas e análises

Métricas de serviço
O proxy coleta e agrega dados sobre erros e códigos de status dos LLMs, fornecendo informações sobre a eficiência, a precisão e o consumo de recursos do modelo. Essas métricas são essenciais para a otimização contínua e o aumento da confiabilidade do serviço.

Análise de interação do usuário
O proxy rastreia as interações e o feedback do usuário, ajudando a entender o comportamento e as preferências do usuário. Esses dados podem ser usados para refinar as respostas do modelo e aprimorar a experiência geral do usuário.

7. LLMs públicos e privados

O sistema iQ atual integra LLMs públicos populares (por exemplo, GPT-4 Turbo, Claude 3) para realizar as operações de IA de geração. O plano futuro do iQ é integrar LLMs privados hospedados (por exemplo, Llama 3, ), proporcionando flexibilidade na escolha do melhor modelo para casos de uso específicos. 

Os LLMs públicos oferecem recursos avançados e são ideais para aplicativos de uso geral, enquanto os LLMs privados podem ser personalizados e ajustados para tarefas específicas, proporcionando maior controle e desempenho potencialmente melhor para aplicativos especializados.

8. Moderação e limitação de taxas

Moderação e limite da janela de contexto

Esse componente garante que o conteúdo gerado pela IA siga as diretrizes predefinidas e permaneça dentro dos limites da janela contextual. Na implementação atual do iQ, há verificações de moderação para evitar a geração de respostas prejudiciais ou inadequadas, embora nenhuma moderação adicional seja aplicada ao conteúdo gerado no momento. Para evitar erros relacionados à ultrapassagem da janela de contexto do LLM, o conteúdo é cortado desde o início para caber no tamanho do contexto do modelo. Em futuras versões do iQ, esse componente também poderá lidar com tarefas como armazenamento em cache, gerenciamento de feedback e execução em estilo sandbox do conteúdo gerado pelo LLM. Em aplicativos externos de IA generativa, esse módulo pode oferecer moderação semelhante, garantindo um processo seguro de geração de conteúdo.

Limitador de taxa

O limitador de taxa gerencia o fluxo de solicitações para evitar a sobrecarga do sistema, garantindo operações suaves e responsivas. Ele ajuda a manter o desempenho e a estabilidade mesmo sob carga pesada, controlando o número de solicitações. A limitação de taxa é aplicada em vários níveis: o número de chamadas por minuto por usuário, o número de tokens usados por dia por usuário e o número de tokens usados durante um mês no nível do locatário.

9. Métricas e registro

Métricas

As métricas são coletadas para monitorar e otimizar a eficiência e a eficácia do sistema. Elas fornecem informações valiosas sobre o desempenho do sistema, permitindo o aprimoramento e a otimização contínuos. O sistema de gerenciamento do SRE inclui um painel dedicado para coletar dados de métricas e visualizá-los por meio de gráficos.

Registro em log

Os registros são mantidos para solução de problemas, auditoria e aumento da confiabilidade do sistema. O registro em log é fundamental para diagnosticar problemas, rastrear o comportamento do sistema e garantir a responsabilidade e a transparência.

Benefícios de usar o Couchbase para armazenamento de documentos e vetores

O banco de dados NoSQL do Couchbase, juntamente com o recurso Vector DB, oferece várias vantagens nessa arquitetura:

Escalabilidade: Lida com grandes volumes de dados com facilidade, oferecendo suporte ao dimensionamento horizontal. Isso é particularmente importante para aplicativos de IA que exigem o processamento de grandes quantidades de dados em tempo real.

Flexibilidade: Oferece suporte a vários modelos de dados (valor-chave, documento) e consultas complexas. A flexibilidade do Couchbase permite que ele manipule uma ampla variedade de tipos e estruturas de dados, tornando-o ideal para aplicativos de IA dinâmicos e em evolução.

Desempenho: Oferece baixa latência e alta taxa de transferência, essenciais para aplicativos de IA em tempo real. O desempenho do Couchbase garante que o sistema possa oferecer interações rápidas e responsivas, mesmo sob carga pesada.

Integração com modelos de IA: A capacidade do Couchbase de se integrar perfeitamente aos modelos de IA e lidar com consultas complexas o torna uma solução de back-end avançada para aplicativos de IA generativa. Seu suporte para pesquisa de texto completo e pesquisa vetorial aumenta a capacidade do sistema de realizar pesquisas avançadas e fornecer resultados precisos.

Resumo das etapas de construção da IA de geração

O fluxo de trabalho do aplicativo de IA generativa começa com uma entrada de consulta NLU da interface do usuário (CP-UI) e termina com a geração de conteúdo, seguindo as etapas genéricas abaixo:

    1. Pronta construção: A consulta inicial da NLU é transformada em um prompt estruturado pelo Prompt Builder. Essa etapa envolve a análise da entrada do usuário e a construção de um formato que o modelo de IA possa entender e processar com eficiência.
    2. Construção do contexto: O contexto relevante é coletado usando o RAG/Context Builder. Essa etapa envolve a recuperação de informações externas relevantes para a consulta, aprimorando a capacidade do modelo de IA de gerar respostas precisas e contextualmente adequadas.
    3. Filtragem de dados confidenciais: Garante que os dados do prompt e do contexto estejam livres de informações confidenciais. Essa etapa é fundamental para manter a privacidade do usuário e a conformidade com as normas de proteção de dados. Em seguida, ele interage com o ponto de extremidade REST do proxy de back-end do LLM com toda a carga útil contextual necessária.
    4. Seleção de modelos e proxy: O proxy de backend do LLM seleciona o modelo apropriado com base na consulta e encaminha o prompt. Essa etapa envolve a escolha do melhor modelo para a tarefa, considerando fatores como recursos do modelo, desempenho e requisitos específicos do caso de uso.
    5. Moderação e limitação de taxa: A consulta é moderada e com taxa limitada para garantir a conformidade e o desempenho. Essa etapa envolve a verificação da adequação do conteúdo e a garantia de que o sistema não seja sobrecarregado por solicitações excessivas.
    6. Geração de respostas: O LLM selecionado gera uma resposta, que é então transmitida de volta ao proxy de backend. Essa etapa envolve o processamento do prompt e do contexto para gerar uma resposta em linguagem natural que atenda à consulta do usuário.
    7. Construção de respostas: A resposta processada é estruturada e formatada para o usuário. Essa etapa envolve a transformação da resposta bruta gerada pela IA em um formato que seja fácil para o usuário entender e usar.
    8. Entrega de respostas: A resposta final do NLG é entregue ao usuário por meio do CP-UI. Essa etapa envolve a apresentação da resposta ao usuário de forma clara e fácil de usar.

Conclusão

A integração do banco de dados Couchbase com uma arquitetura de aplicativo de IA generativa oferece uma solução avançada para as necessidades modernas de IA. Essa arquitetura não apenas aproveita a flexibilidade e o dimensionamento do Couchbase, mas também garante o manuseio robusto dos dados, o processamento eficiente e a geração precisa de respostas. Ao adotar essa arquitetura, os desenvolvedores podem criar aplicativos avançados de IA que atendem às demandas dos atuais ambientes de dados de aprendizado dinâmico.

A combinação dos recursos robustos do banco de dados do Couchbase com os recursos avançados dos modelos de IA generativa fornece uma base sólida para a criação de aplicativos de IA inovadores e eficientes. Independentemente de você estar desenvolvendo bots de suporte ao cliente, geradores de conteúdo, pesquisa semântica ou ferramentas avançadas de análise de dados, essa arquitetura oferece a flexibilidade, o desempenho e a escalabilidade necessários para ter sucesso no cenário competitivo da IA.

Próximas etapas

Explore o potencial do Couchbase e da IA generativa para revolucionar seus aplicativos. Ao aproveitar os pontos fortes dessa arquitetura avançada, você pode criar soluções orientadas por IA que oferecem desempenho, precisão e satisfação do usuário excepcionais. Seja você um desenvolvedor, cientista de dados ou líder de negócios, a integração do Couchbase e da IA generativa fornece as ferramentas e os recursos necessários para impulsionar a inovação e atingir suas metas.

Dê o primeiro passo para criar a próxima geração de aplicativos de IA adotando essa arquitetura. Aproveite o poder do banco de dados NoSQL e vetorial do Couchbase e os recursos avançados dos modelos de IA generativa para criar soluções que atendam às demandas dos ambientes de dados dinâmicos atuais. Ao fazer isso, você pode desbloquear novas oportunidades, melhorar a eficiência operacional e fornecer um valor excepcional aos seus usuários.

Referências


Agradecimentos

Agradecimentos à equipe do 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). Agradecimentos especiais a Mohan V por ajudar nas revisões extras e criar uma boa experiência para o leitor. Obrigado a todos que ajudaram direta ou indiretamente!



Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Jagadesh Munta, engenheiro de software principal, Couchbase

Jagadesh Munta é engenheiro de software principal da Couchbase Inc., EUA. EUA. Antes disso, ele foi veterano na Sun Microsystems e na Oracle por 19 anos. Jagadesh é mestre em engenharia de software pela San Jose State University, EUA, e bacharel em tecnologia. Ciência e Engenharia da Computação na JNTU, Índia. Ele é autor do "Software Quality and Java Automation Engineer Survival Guide" para ajudar desenvolvedores de software e engenheiros de automação de qualidade.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.