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. É possível 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á haverá cobrança por todo o armazenamento de índice reportado 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 emVECTOR_SEARCH
. Essas regras não se aplicam à geração de índices vetoriais.
A seguir
- Saiba mais sobre como criar um índice vetorial.
- Siga o tutorial Pesquisar embeddings com pesquisa de vetor para aprender a criar um índice de vetor e, em seguida, faça uma pesquisa de vetor para embeddings com e sem o índice.
Faça o tutorial Gerar e usar embeddings de texto para aprender a realizar as seguintes tarefas:
- Gere embeddings de texto.
- Crie um índice de vetor nos embeddings.
- Realize uma pesquisa vetorial com os embeddings para procurar textos semelhantes.
- Realize a geração aumentada de recuperação (RAG, na sigla em inglês) usando resultados da pesquisa de vetor para aumentar a entrada do comando e melhorar os resultados.