Criar aplicativos de IA generativa usando o Cloud SQL

Nesta página, você encontra uma visão geral dos recursos que o Cloud SQL para PostgreSQL oferece para ajudar na criação de aplicativos de IA generativa. Para começar a usar um aplicativo de exemplo, consulte Como começar a usar o Cloud SQL para aplicativos de IA generativa.

A Geração Aumentada de Recuperação (RAG) é uma técnica para otimizar a saída de um modelo de linguagem grande (LLM) ao referenciar uma base de conhecimento confiável antes de gerar uma resposta. A RAG aprimora os aplicativos de IA generativa ao aumentar a precisão deles. Os bancos de dados do Cloud SQL oferecem recursos selecionados para aplicativos de IA generativa e RAG, conforme explicado nesta página.

Gerar embeddings de vetor

Embeddings de vetor são essenciais para RAG porque permitem uma compreensão semântica e uma pesquisa eficiente por similaridade. Esses embeddings são representações numéricas de texto, imagens, áudio e vídeo. Os modelos de embedding geram embeddings de vetor para que, se dois conteúdos forem semanticamente parecidos, os respectivos embeddings ficarão próximos uns aos outros no espaço vetorial.

O Cloud SQL se integra à Vertex AI. É possível usar os modelos hospedados pela Vertex AI para gerar embeddings de vetor usando consultas SQL.

O Cloud SQL estende a sintaxe do PostgreSQL com uma função de embedding para gerar embeddings de vetor de texto. Depois de gerar esses embeddings, é possível armazená-los em um banco de dados do Cloud SQL sem precisar de um banco de dados de vetores separado.

Também é possível usar o Cloud SQL para armazenar embeddings de vetor gerados fora do Cloud SQL. Por exemplo, é possível armazenar embeddings de vetor gerados usando modelos pré-treinados no Grupo de modelos da Vertex AI. É possível usar esses embeddings de vetor como entradas nas funções pgvector para pesquisas semânticas e de similaridade.

Armazenar, indexar e consultar embeddings de vetor com pgvector

É possível armazenar, indexar e consultar embeddings de vetor no Cloud SQL usando a extensão pgvector do PostgreSQL.

Para saber mais sobre como configurar essa extensão, consulte Configurar extensões do PostgreSQL. Para mais informações sobre como armazenar, indexar e consultar embeddings de vetor, consulte Armazenar um embedding gerado e Consultar e indexar embeddings usando pgvector.

Invocar previsões on-line usando consultas SQL

É possível invocar previsões on-line com modelos armazenados no Grupo de modelos da Vertex AI com consultas SQL.

Usar a integração do LangChain

O Cloud SQL se integra ao LangChain, um framework de orquestração de LLM de código aberto, para simplificar o desenvolvimento de aplicativos de IA generativa. Você pode usar os seguintes pacotes do LangChain:

Melhorar o desempenho da pesquisa de vetor

Você pode melhorar o desempenho de uma pesquisa de vetor usando o seguinte:

  • Cache de dados: use um cache de dados integrado que utiliza um SSD local rápido para armazenar páginas de dados lidas com frequência. É possível melhorar em até três vezes o desempenho de leitura em comparação com a leitura em um disco permanente.
  • Métricas de cache de dados: otimize consultas com base na eficiência com que o cache de dados é usado em uma pesquisa de vetor.

    O Cloud SQL fornece as seguintes métricas no Metrics Explorer do Cloud Monitoring:

    Métrica Descrição Rótulo da métrica
    Cache de dados usado O uso do cache de dados (em bytes) database/data_cache/bytes_used
    Cota de cache de dados O tamanho máximo do cache de dados (em bytes) database/data_cache/quota
    Contagem de ocorrências em cache de dados O número total de operações de leitura de ocorrências em cache de dados para uma instância database/postgresql/data_cache/hit_count
    Contagem de ausências no cache de dados O número total de operações de leitura de ausência no cache de dados de uma instância database/postgresql/data_cache/miss_count
    Proporção de ocorrências em cache de dados A proporção de operações de leitura de ocorrências em cache de dados para operações de leitura de ausência no cache de dados para uma instância
    database/postgresql/data_cache/hit_ratio
  • Insights do sistema: forneça métricas do sistema, como utilização de CPU, utilização de disco e capacidade, para ajudar a monitorar a integridade das instâncias e resolver problemas que afetam o desempenho dos aplicativos de IA generativa. Para consultar essas métricas, use o painel de insights do sistema do Cloud SQL.

  • Query Insights: detecte, diagnostique e evite problemas de desempenho de consultas. Isso é útil para melhorar o desempenho da pesquisa vetorial nos seus aplicativos de IA generativa.

    Você pode usar o painel do Cloud SQL Query Insights para observar o desempenho das principais consultas e analisá-las usando planos de consulta visual. Você também pode monitorar o desempenho no nível do aplicativo e rastrear a origem de uma consulta problemática em toda a pilha do aplicativo para o banco de dados usando o SQLcommenter. Ele é uma biblioteca de código aberto de mapeamento relacional de objetos (ORM) e de instrumentação automática.

    O Query Insights também pode ajudar na integração com suas ferramentas de monitoramento de aplicativos (APM) para que você possa solucionar problemas de consulta usando ferramentas com as quais já esteja familiarizado.

Benefícios do uso do Cloud SQL para aplicativos de IA generativa

O uso do Cloud SQL para criar aplicativos de IA generativa oferece o seguinte:

  • Use o PostgreSQL para criar aplicativos de IA generativa. O Cloud SQL para PostgreSQL é compatível com pgvector e se integra à Vertex AI e ao LangChain.
  • Use um serviço confiável que tenha proteção, segurança e governança de dados de nível empresarial. Ao usar o Cloud SQL, você tem os seguintes benefícios:
    • Um SLA de alta disponibilidade de 99,99% que inclui manutenção
    • Um serviço gerenciado que oferece recursos como backups automáticos, replicação, patches, criptografia e aumento automático de capacidade de armazenamento
    • Recursos de segurança, governança e conformidade
  • Combine com dados operacionais contextuais. Use mesclagens e filtros em dados operacionais e embeddings de vetor para receber respostas contextuais, precisas e atualizadas nos seus aplicativos de IA generativa.
  • Reduza tarefas repetitivas da operação. Use o Cloud SQL como banco de dados de vetores para reduzir tarefas repetitivas de operação associadas à exportação de dados para um banco de dados de vetores separado.
  • Acesse os modelos mais recentes de IA generativa. Use consultas SQL para acessar os modelos de IA mais recentes hospedados na Vertex AI.

Como começar a usar o Cloud SQL para aplicativos de IA generativa

Para começar a criar aplicativos de IA generativa, use este app de exemplo. O app usa o Cloud SQL, o Google Kubernetes Engine e a Vertex AI.

A solução tem o seguinte conteúdo:

  • Modelos do Terraform para configurar sua infraestrutura com práticas recomendadas de segurança
  • Um app de exemplo para um chatbot com LLM

A seguir