Introdução à pesquisa de vetor

Neste documento, apresentamos uma visão geral da pesquisa de vetor no BigQuery. A pesquisa de vetor permite pesquisar embeddings para identificar entidades semanticamente parecidas.

Os embeddings são vetores numéricos de alta dimensão que representam uma determinada entidade, como um texto ou um arquivo de áudio. Os modelos de machine learning (ML) usam embeddings para codificar semântica sobre essas entidades, facilitando o entendimento delas e sua comparação. Por exemplo, uma operação comum em modelos de clustering, classificação e recomendação é medir a distância entre vetores em um espaço de embedding para encontrar os itens semanticamente mais parecidos.

Para executar uma pesquisa de vetor, use a função VECTOR_SEARCH e, se preferir, um índice vetorial. Quando um índice vetorial é usado, VECTOR_SEARCH usa a técnica de pesquisa do Vizinho aproximado mais perto para melhorar o desempenho da pesquisa de vetor, mas reduzindo o recall e, portanto, retornando resultados mais aproximados. A força bruta é usada para retornar resultados exatos quando um índice vetorial não está disponível. É possível usar a força bruta para encontrar resultados exatos mesmo quando um índice vetorial está disponível.

Casos de uso

Com a combinação de geração de embeddings e pesquisa de vetor, temos muitos casos de uso interessantes, com a geração aumentada de recuperação (RAG) sendo a canônica. Confira alguns outros casos de uso possíveis:

  • Considerando um lote de novos casos de suporte, encontre vários casos semelhantes resolvidos para cada um. Transmitir informações sobre os casos resolvidos para um modelo de linguagem grande (LLM) para uso como contexto ao resumir e sugerir resoluções para os novos casos de suporte.
  • Encontre as entradas que mais correspondem a uma determinada entrada de registro de auditoria nos últimos 30 dias.
  • Gere embeddings de dados do perfil de paciente e, em seguida, use a pesquisa de vetor para encontrar pacientes com perfis semelhantes e explorar planos de tratamento bem-sucedidos prescritos a essa coorte de pacientes.
  • Considerando os embeddings que representam momentos pré-acidente de todos os sensores e câmeras em uma frota de ônibus escolares, encontre momentos semelhantes de todos os outros veículos da frota para análise adicional, ajuste e retreinamento do que regem as interações dos recursos de segurança.
  • Dada uma imagem, encontre as imagens mais relacionadas em uma tabela de objetos do BigQuery e transmita-as a um modelo para gerar legendas.

Preços

A instrução CREATE VECTOR INDEX e a função VECTOR_SEARCH usam os preços de computação do BigQuery. Na instrução CREATE VECTOR INDEX, somente a coluna indexada é considerada nos bytes processados.

Não há cobrança pelo processamento necessário para criar e atualizar índices vetoriais quando o tamanho total dos dados da tabela indexada é menor do que o limite por organização. Para oferecer suporte à indexação além desse limite, é preciso fornecer sua própria reserva para processar os jobs de gerenciamento de índice. Os índices vetoriais geram custos de armazenamento quando estão ativos. Você pode encontrar o tamanho de armazenamento do índice na visualização INFORMATION_SCHEMA.VECTOR_INDEXES. Se o índice vetorial ainda não tiver 100% de cobertura, ainda será cobrada uma cobrança por todo o armazenamento de índice informado na visualização INFORMATION_SCHEMA.VECTOR_INDEXES.

Cotas e limites

Para mais informações, consulte Limites de índice vetorial.

Limitações

  • As consultas que contêm a função VECTOR_SEARCH não são aceleradas pelo BigQuery BI Engine.
  • As regras de segurança e governança de dados do BigQuery se aplicam ao uso de VECTOR_SEARCH. Para mais informações, consulte a seção Limitações em VECTOR_SEARCH. Essas regras não se aplicam à geração de índices vetoriais.

A seguir