Visão geral da assistência de vetor

O Vector Assist é uma extensão do AlloyDB para PostgreSQL que fornece um framework SQL declarativo para implantar e gerenciar cargas de trabalho de pesquisa vetorial. Em vez de configurar manualmente a geração de embeddings, os parâmetros de índice e o ajuste de consultas, você declara os requisitos da carga de trabalho, como a tabela de destino, a coluna de texto de origem e a meta de recall, usando funções SQL.

Com base na sua especificação de vetor, o Vector Assist usa um algoritmo de ajuste automático para gerar recomendações de SQL otimizadas com explicações que você pode revisar, modificar e aplicar. Esse fluxo de trabalho ajuda a criar protótipos e implantar aplicativos de pesquisa semântica prontos para produção com o mínimo de configuração manual.

Como funciona o assistente de vetor

O Vector Assist exige que você defina as especificações do vetor. O framework usa essas especificações de vetor, também conhecidas como especificação de vetor, para gerar as etapas necessárias para criar um índice vetorial. O Vector Assist gera as etapas necessárias para implantar sua carga de trabalho vetorial como recomendações. Sempre que você modifica sua especificação de vetor, o Vector Assist gera novamente as recomendações.

Depois de gerar o índice de vetor usando as etapas recomendadas, use o assistente de vetor para gerar consultas de pesquisa otimizadas.

Especificação do Vector Assist

Configurar a especificação do índice de vetores, ou especificação do vetor, é a primeira etapa para usar o assistente de vetor. Uma especificação do vetor é um objeto em que você define a intent e os requisitos para sua carga de trabalho de vetor. Ele inclui todas as informações necessárias, incluindo:

  • Tabelas e colunas relevantes (texto ou vetor)
  • Preferências do modelo de embedding (se estiver usando a geração de embeddings)
  • Tipo de índice preferencial: HNSW ou IVFFlat. ScaNN não é compatível.
  • Recall desejado para consultas de pesquisa
  • Limitações de memória

Você define a especificação do vetor usando a função vector_assist.define_spec, que pode ser modificada a qualquer momento. O sistema atribui a cada especificação um ID exclusivo e o armazena em uma tabela chamada vector_assist.VECTOR_SPECS.

O Vector Assist infere as entradas de especificação e um algoritmo de ajuste automático otimizado que calcula a configuração ideal do índice. Embora o Vector Assist use esses valores para simplificar o processo de desenvolvimento, é possível personalizá-los de acordo com suas preferências.

Recomendações do Vector Assist

Depois que você define a especificação do vetor, o Vector Assist processa sua entrada e gera recomendações. Essas recomendações são uma lista ordenada de etapas úteis, geralmente comandos SQL, que você precisa executar para implantar sua carga de trabalho vetorial de acordo com suas especificações. Cada recomendação inclui o seguinte:

  • A consulta SQL a ser executada.
  • Uma explicação detalhada do que a consulta faz e por que ela é recomendada.
  • Informações sobre possíveis compensações ou custos, como o tamanho estimado do índice ou o tempo de criação.

O Vector Assist armazena recomendações em uma tabela chamada vector_assist.RECOMMENDATIONS, e você pode analisá-las, modificá-las e aplicá-las individualmente ou como um todo.

Sempre que você modifica a especificação do vetor para sua carga de trabalho, o Vector Assist gera novamente as recomendações para obedecer às especificações atualizadas.

Limitações

Ao usar o Vector Assist com as instâncias do AlloyDB, considere as seguintes limitações:

  • A assistência vetorial só é compatível com as versões 17 e mais recentes do PostgreSQL.
  • Embora o Vector Assist seja compatível com todas as versões do pgvector, recomendamos usar a versão mais recente para ter o melhor desempenho e suporte a recursos. Para mais informações, consulte o registro de alterações do pgvector.
  • Se a instância usar a extensão google_ml_integration para gerar embeddings, as restrições dela também serão aplicadas quando você usar o Vector Assist. Para mais informações, consulte Visão geral do registro e da chamada de modelos de IA remotos no AlloyDB.
  • A assistência vetorial só é compatível com os tipos de índice HNSW e IVFFlat. Os tipos de índice ScaNN não são compatíveis.
  • A assistência vetorial só aceita modelos de embedding de texto para gerar embeddings automaticamente e usa text_column_name como parâmetro de entrada. Se a carga de trabalho vetorial exigir um modelo de embedding multimodal, use a extensão google_ml_integration ou outra extensão para gerar manualmente esses embeddings antes de usar o assistente vetorial para ativar a pesquisa semântica neles.

A seguir