Visão geral da pesquisa vetorial do AlloyDB AI

O AlloyDB AI é uma extensão avançada do AlloyDB para PostgreSQL, projetada para integrar o processamento de vetores de alta performance diretamente no banco de dados relacional de nível empresarial. Ele permite que os desenvolvedores criem aplicativos sofisticados e inteligentes que entendem o significado semântico dos dados em formatos estruturados e não estruturados. Ao unificar os recursos do SQL com a tecnologia de pesquisa vetorial de ponta, a AlloyDB AI oferece uma plataforma única e pronta para IA para gerenciamento de dados e fluxos de trabalho de geração aumentada de recuperação (RAG, na sigla em inglês), eliminando a necessidade de implantar e gerenciar um banco de dados vetorial separado.

Arquitetura e performance principais

O AlloyDB usa a extensão pgvector do PostgreSQL para funcionalidade de vetor. Ele é compatível com o índice HNSW, além do índice Scalable Nearest Neighbors (ScaNN), um algoritmo de pesquisa vetorial de última geração derivado de anos de pesquisa da Pesquisa Google. Essa integração profunda no ambiente PostgreSQL permite operações de alta velocidade compatíveis com pgvector e consultas semânticas avançadas.

Desempenho do índice ScaNN

O índice ScaNN oferece vantagens significativas de velocidade em relação ao índice HNSW (Hierarchical Navigable Small Worlds) padrão do PostgreSQL, fornecendo operações vetoriais rápidas necessárias para cargas de trabalho de IA exigentes:

Operação Aumento de performance (em comparação com o índice HNSW padrão do PostgreSQL) Recursos
Criação de índice Até 10 vezes mais rápido Criação de índice paralela
Consultas de pesquisa vetorial Até 4 vezes mais rápido Manutenção automática de índice
Consultas de pesquisa vetorial filtradas Até 10 vezes mais rápido Observabilidade de nível empresarial

Filtragem adaptativa e otimização de consultas

O índice ScaNN está totalmente integrado ao planejador de consultas do PostgreSQL para garantir o desempenho ideal em consultas híbridas que envolvem similaridade vetorial e filtros de metadados estruturados padrão.

  • Filtragem adaptativa:esse mecanismo garante o desempenho ideal quando filtros, junções e índices de vetores são usados simultaneamente. Ele funciona observando as estatísticas de execução de consultas em tempo de execução, aprendendo a seletividade dos filtros e ajustando de forma adaptativa o plano de execução para determinar a ordenação mais eficiente da aplicação de filtros e da pesquisa vetorial.
  • Filtragem inline:específica do algoritmo ScaNN, a filtragem inline é uma estratégia de otimização que executa a pesquisa vetorial e a avaliação de filtros de metadados em conjunto. Ele usa índices secundários do PostgreSQL (como B-trees, GIN ou GiST) para criar uma lista abreviada (bitmap) de linhas que atendem aos critérios de filtro. A verificação de vetor subsequente calcula apenas as distâncias dos vetores contidos nesse conjunto pré-filtrado, reduzindo drasticamente a sobrecarga computacional, principalmente quando os filtros são moderadamente seletivos.

Integração perfeita com a Vertex AI

A IA do AlloyDB foi projetada para integração com o ecossistema da Vertex AI, permitindo a transformação e o enriquecimento de dados diretamente no banco de dados usando SQL.

Geração automatizada de embeddings

A plataforma é compatível com a geração automática de incorporações usando a extensão google_ml_integration. Com esse recurso, os dados operacionais (texto, imagens e vídeo) podem ser convertidos em embeddings vetoriais usando modelos da Vertex AI, como o text-embedding-005.

  • Registro de modelo:os modelos da Vertex AI (de embedding e generativos) são registrados no banco de dados usando o procedimento google_ml.create_model.
  • Colunas virtuais:os embeddings podem ser gerados e mantidos automaticamente em uma coluna gerada usando a função embedding(), garantindo que os dados de vetor permaneçam sincronizados com os dados da coluna de origem:
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;

Consultas e enriquecimento de IA generativa

Com os embeddings de vetor armazenados, os desenvolvedores podem realizar pesquisas semânticas sofisticadas usando o operador de similaridade de vetor (<=>) no SQL padrão. Além disso, os resultados dessas pesquisas podem ser transmitidos diretamente para modelos de IA generativa, como o gemini-2.0-flash-001, usando funções como google_ml.generate_content para o enriquecimento de consultas com base em RAG e a geração de resultados fáceis de usar.