O que é um banco de dados de vetores?

Um banco de dados vetorial é qualquer banco de dados que permite armazenar, indexar e consultar embeddings vetoriais ou representações numéricas de dados não estruturados, como texto, imagens ou áudio.

O Google Cloud integra esses recursos de nível empresarial diretamente aos serviços gerenciados, incluindo o AlloyDB para PostgreSQL, o Spanner e o BigQuery, ajudando você a criar aplicativos inteligentes sem gerenciar uma infraestrutura separada.

Bancos de dados habilitados para vetores: desbloqueie a pesquisa semântica!

O que são embeddings vetoriais?

Embeddings de vetor são representações numéricas de dados, normalmente definidas como matrizes de números de ponto flutuante. Eles traduzem dados complexos e não estruturados, como texto, imagens ou áudio, em um formato que os modelos de machine learning podem processar.

Ao mapear esses dados em um espaço vetorial, os embeddings capturam o significado semântico. Itens semelhantes são posicionados mais próximos, enquanto itens diferentes ficam mais distantes. Essa relação espacial ajuda os sistemas a identificar conexões entre pontos de dados com base no contexto e no significado, em vez de apenas correspondências de palavras-chave.

Outros tipos de dados compatíveis

Enquanto alguns bancos de dados especializados só aceitam embeddings vetoriais, outros aceitam muitos tipos de dados e consulta, além de embeddings vetoriais. Isso é fundamental para criar aplicativos de IA generativa com base em dados avançados e reais. À medida que os benefícios da consulta semântica usando embeddings de vetores se tornarem claros, a maioria dos bancos de dados adicionará suporte a vetores. No futuro, acreditamos que todo banco de dados será um banco de dados de vetores.

Saiba como a pesquisa de vetor da Vertex AI auxilia na criação de aplicativos de IA generativa de alto desempenho. A pesquisa de vetor da Vertex AI é baseada na Pesquisa de Vizinho Mais Próximo Escalonável (ScaNN, na sigla em inglês), uma tecnologia de pesquisa de vetor escalonável e eficiente desenvolvida pela Google Research, o que a torna ideal para lidar com grandes conjuntos de dados e requisitos de pesquisa em tempo real. Saiba mais sobre pesquisa de vetor e embeddings no vídeo abaixo e comece com este guia de início rápido.

Assista ao vídeo para saber como criar apps com tecnologia de LLM usando embeddings, pesquisa vetorial e RAG.

Como funciona um banco de dados de vetores?

A consulta eficiente de um grande conjunto de vetores requer indexação especializada e estratégias de pesquisa diferentes dos campos de texto ou numéricos tradicionais. Como os vetores não têm uma única ordenação lógica, os bancos de dados vetoriais dependem dos seguintes mecanismos para recuperar dados:

  • Pesquisa de vizinho mais próximo (KNN): o caso de uso mais comum é identificar os vetores "k" mais próximos de um vetor de consulta. Ela usa métricas de distância, como produto escalar, similaridade de cosseno ou distância euclidiana, para medir a proximidade no espaço vetorial.
  • Vizinhos mais próximos aproximados (ANN): calcular a distância exata entre um vetor de consulta e todos os outros vetores pode ser caro do ponto de vista computacional. Para ajudar a reduzir esse custo, os bancos de dados usam algoritmos de ANN. Esses algoritmos podem melhorar significativamente a velocidade da pesquisa ao sacrificar uma pequena quantidade de precisão (recall), o que é um compromisso aceitável para a maioria dos aplicativos de pesquisa semântica.
  • Indexação vetorial: para permitir pesquisas mais rápidas, os índices vetoriais organizam os dados de modo que os clusters de vetores próximos sejam agrupados. As estruturas comuns incluem listas (que representam clusters de vetores), gráficos (que conectam vetores a vizinhos) e árvores (em que os ramos representam subconjuntos de clusters). Cada tipo de índice oferece diferentes compensações em relação à velocidade de pesquisa, consumo de memória e tempo de criação do índice.
  • Filtragem de metadados: a maioria dos aplicativos exige mais do que apenas semelhança semântica. Por exemplo, um usuário pode pesquisar um livro semelhante a "uma história comovente sobre um peixe" (pesquisa vetorial), mas limitar os resultados a itens "abaixo de US$ 20" (filtro de metadados). Bancos de dados vetoriais avançados combinam esses predicados SQL com a similaridade vetorial para executar consultas híbridas poderosas.

Casos de uso para bancos de dados vetoriais

Os embeddings de vetor capturam o significado semântico de dados complexos. Quando combinados com bancos de dados vetoriais, que fornecem indexação e recuperação eficientes, os desenvolvedores podem criar uma ampla variedade de aplicativos inteligentes e ferramentas de processamento de dados.

Os desenvolvedores podem usar bancos de dados vetoriais como uma base de conhecimento externa para modelos de linguagem grandes (LLMs). Ao recuperar o contexto relevante e proprietário antes de enviar um comando ao modelo, os aplicativos podem reduzir as alucinações e fornecer respostas factualmente precisas e específicas do domínio. Isso é essencial para criar agentes de suporte com tecnologia de IA, analisadores de documentos jurídicos e sistemas internos de gerenciamento de conhecimento.

Os bancos de dados vetoriais permitem que os desenvolvedores criem sistemas de personalização que vão além da filtragem colaborativa. Ao representar o comportamento do usuário e os atributos do produto como vetores, os aplicativos podem identificar itens semelhantes ou combinar usuários com conteúdo que se adapta às suas preferências em tempo real. Essa arquitetura é compatível com sugestões de produtos de e-commerce, feeds de conteúdo e recomendações de streaming de mídia.

Ao contrário da pesquisa tradicional por palavras-chave, os bancos de dados vetoriais permitem aplicativos de pesquisa semântica que entendem a intenção do usuário. Os desenvolvedores podem criar experiências de pesquisa que permitem aos usuários consultar por conceito em vez de usar frases exatas. Além disso, como os vetores podem representar diferentes tipos de dados no mesmo espaço, você pode criar ferramentas de pesquisa multimodal, permitindo que os usuários pesquisem imagens usando descrições de texto ou encontrem documentos relacionados usando uma imagem de entrada.

Os bancos de dados vetoriais podem ajudar a identificar padrões irregulares em conjuntos de dados enormes. Ao estabelecer um espaço vetorial que representa o comportamento ou as transações "normais", os desenvolvedores podem detectar programaticamente os outliers que ficam muito longe dos clusters estabelecidos. Esse recurso é essencial para criar sistemas de detecção de fraudes financeiras, ferramentas de monitoramento de segurança de rede e verificações de integridade da infraestrutura de TI.

Nos fluxos de trabalho de engenharia de dados, os bancos de dados vetoriais podem ajudar a limpar e unificar conjuntos de dados diferentes. Ao comparar embeddings de registros de clientes ou listagens de produtos, os sistemas podem identificar entradas duplicadas mesmo quando o texto varia um pouco (por exemplo, "R. Principal" vs. "Rua Principal"). Isso ajuda as organizações a manter uma visão única e precisa dos dados.

Bancos de dados vetoriais no Google Cloud

AlloyDB para PostgreSQL

O AlloyDB para PostgreSQL combina a compatibilidade do PostgreSQL com a infraestrutura escalonável do Google. Ele inclui compatibilidade integrada com embeddings vetoriais usando a extensão pgvector padrão e a aprimora com o índice ScaNN do Google. Isso permite consultas vetoriais mais rápidas e ativa o "filtro em linha", que pode ajudar a otimizar as pesquisas híbridas avaliando a similaridade vetorial e os filtros de metadados simultaneamente para melhorar o desempenho.

Exemplo: pesquisa híbrida de imóveis

Um app imobiliário em que os usuários querem encontrar casas com base em "estilo" (por exemplo, "moderno de meados do século com luz natural") e que atendam a restrições rígidas (por exemplo, "3 quartos", "menos de US$ 800 mil", "no distrito escolar A").

  • Desafio: uma pesquisa vetorial padrão pode retornar uma casa de "meados do século" que custa US$ 2 milhões ou está no distrito errado. Uma consulta SQL padrão pode filtrar por preço, mas não entende o "estilo de meados do século"
  • Solução: a filtragem em linha do AlloyDB verifica o índice vetorial e os filtros de metadados SQL (preço, local) simultaneamente em uma única passagem
  • Resultado: o app retorna imóveis que correspondem à estética e ao orçamento em milissegundos, sem a penalidade de desempenho de resultados pós-filtrados

O Google Cloud integra recursos de pesquisa vetorial diretamente aos serviços de banco de dados principais, ajudando você a operacionalizar a IA generativa usando seus dados e fluxos de trabalho atuais.

Spanner

O Spanner, o banco de dados distribuído globalmente do Google, é compatível com a pesquisa vetorial para aplicativos transacionais. Ele pode fornecer uma pesquisa de vetores altamente disponível e escalonável usando algoritmos de vizinho mais próximo exato e aproximado. Isso permite que aplicativos globais implementem recursos como recomendações em tempo real ou pesquisa semântica, mantendo a consistência e a confiabilidade rigorosas.

Exemplo: recomendações em tempo real para e-commerce

Uma plataforma global de e-commerce quer criar um mecanismo de recomendação que lide com pesquisas vagas de usuários, como "melhores botas de caminhada para clima chuvoso", garantindo a disponibilidade imediata do produto.

  • Desafio: a correspondência de palavras-chave tradicional não encontra produtos relevantes que não contêm os termos de pesquisa exatos (por exemplo, uma descrição que diz "à prova d'água" pode não corresponder a uma pesquisa por "chuvoso"); além disso, verificar a disponibilidade do inventário em um banco de dados vetorial separado cria riscos de latência e consistência de dados durante eventos de alto tráfego
  • Solução: a plataforma adiciona uma coluna de vetor à tabela "Products" do Spanner e gera embeddings usando a Vertex AI via SQL. Ela usa a pesquisa de vetor do Spanner para executar uma consulta híbrida que encontra produtos semanticamente semelhantes e, ao mesmo tempo, aplica uma verificação de inventário rigorosa (InventoryCount > 0).
  • Resultado: os clientes recebem recomendações de produtos precisas e personalizadas, com garantia de disponibilidade em estoque e entrega com a baixa latência e consistência global necessárias para uma transação em tempo real

BigQuery

O BigQuery permite realizar análises vetoriais em conjuntos de dados massivos sem mover os dados do data warehouse. Com a função VECTOR_SEARCH, você pode executar pesquisas de similaridade usando o SQL padrão. Isso é particularmente útil para casos de uso analíticos, como agrupar clientes com base no comportamento ou identificar tendências de produtos semelhantes em bilhões de linhas de dados.

Exemplo: detecção de ameaças de cibersegurança em escala

Uma equipe de segurança precisa analisar petabytes de registros de servidor para identificar atividades maliciosas. Os invasores costumam modificar um pouco o código para evitar pesquisas de palavras-chave de correspondência exata.

  • Desafio: as pesquisas por palavras-chave não detectam variações sutis de ataques conhecidos (por exemplo, a mudança do nome de uma variável em um script malicioso)
  • Solução: a equipe usa o BigQuery para gerar embeddings de bilhões de entradas de registro e, em seguida, executa uma consulta VECTOR_SEARCH para encontrar todos os registros semanticamente semelhantes a uma assinatura de exploit conhecida, identificando novas variantes do ataque
  • Resultado: eles podem detectar e agrupar ameaças de dia zero em anos de dados históricos usando SQL simples, sem precisar mover dados para um banco de dados vetorial especializado

Resolva seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
Fale com um especialista em vendas do Google Cloud para discutir seu desafio exclusivo em mais detalhes.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud