Introdução às incorporações e à pesquisa vetorial
Este documento oferece uma vista geral das incorporações e da pesquisa vetorial no BigQuery. A pesquisa vetorial é uma técnica para comparar objetos semelhantes através de incorporações e é usada para potenciar os produtos Google, incluindo a Pesquisa Google, o YouTube e o Google Play. Pode usar a pesquisa vetorial para fazer pesquisas em grande escala. Quando usa índices vetoriais com a pesquisa vetorial, pode tirar partido de tecnologias fundamentais, como a indexação de ficheiros invertidos (IVF) e o algoritmo ScaNN.
A pesquisa vetorial baseia-se em incorporações. As incorporações são vetores numéricos de alta dimensão que representam uma determinada entidade, como um fragmento de texto ou um ficheiro de áudio. Os modelos de aprendizagem automática usam incorporações para codificar a semântica sobre essas entidades, o que facilita o raciocínio e a comparação das mesmas. Por exemplo, uma operação comum nos modelos de clustering, classificação e recomendação é medir a distância entre vetores num espaço de incorporação para encontrar itens semanticamente mais semelhantes.
Este conceito de semelhança semântica e distância num espaço de incorporação é demonstrado visualmente quando considera como diferentes itens podem ser representados graficamente. Por exemplo, termos como gato, cão e leão, que representam tipos de animais, estão agrupados próximos neste espaço devido às suas características semânticas partilhadas. Da mesma forma, termos como carro, camião e o termo mais genérico veículo formariam outro cluster. Isto é apresentado na imagem seguinte:
Pode ver que os grupos de animais e veículos estão posicionados muito distantes uns dos outros. A separação entre os grupos ilustra o princípio de que quanto mais próximos estiverem os objetos no espaço de incorporação, mais semelhantes são semanticamente, e as distâncias maiores indicam uma maior dissimilaridade semântica.
Exemplos de utilização
A combinação da geração de incorporações e da pesquisa vetorial permite muitos exemplos de utilização interessantes. Seguem-se alguns exemplos de utilização possíveis:
- Geração aumentada de recuperação (RAG): analise documentos, faça uma pesquisa vetorial sobre o conteúdo e gere respostas resumidas a perguntas em linguagem natural usando os modelos Gemini, tudo no BigQuery. Para ver um bloco de notas que ilustra este cenário, consulte o artigo Crie uma aplicação de pesquisa vetorial com DataFrames do BigQuery.
- Recomendar substitutos de produtos ou produtos correspondentes: melhore as aplicações de comércio eletrónico sugerindo alternativas de produtos com base no comportamento do cliente e na semelhança dos produtos.
- Análise de registos: ajude as equipas a triar proativamente anomalias nos registos e a acelerar as investigações. Também pode usar esta capacidade para enriquecer o contexto dos GMLs, de modo a melhorar a deteção de ameaças, a análise forense e os fluxos de trabalho de resolução de problemas. Para ver um bloco de notas que ilustra este cenário, consulte o artigo Deteção e investigação de anomalias de registo com incorporações de texto + pesquisa vetorial do BigQuery.
- Agrupamento e segmentação: segmente públicos-alvo com precisão. Por exemplo, uma cadeia de hospitais pode agrupar pacientes através de notas de linguagem natural e dados estruturados, ou um profissional de marketing pode segmentar anúncios com base na intenção da consulta. Para ver um bloco de notas que ilustra este cenário, consulte o artigo Create-Campaign-Customer-Segmentation.
- Resolução de entidades e remoção de duplicados: limpe e consolide os dados. Por exemplo, uma empresa de publicidade pode remover duplicados de registos de informações de identificação pessoal (IIP) ou uma empresa imobiliária pode identificar moradas correspondentes.
Gere incorporações
As secções seguintes descrevem as funções que o BigQuery oferece para ajudar a gerar ou trabalhar com incorporações.
Gere incorporações únicas
Pode usar a
função
com modelos de incorporação da Vertex AI para gerar uma única incorporação
da sua entrada.AI.EMBED
A função AI.EMBED suporta os seguintes tipos de entrada:
- Dados de texto.
- Dados de imagens representados por
ObjectRefvalores. (Pré-visualização) - Dados de imagens representados por valores
ObjectRefRuntime.
Gere uma tabela de incorporações
Pode usar a função
AI.GENERATE_EMBEDDING
para criar uma tabela com incorporações para todos os dados numa coluna da sua
tabela de entrada. Para todos os tipos de modelos suportados, o AI.GENERATE_EMBEDDING
funciona com dados estruturados em
tabelas padrão. Para modelos de incorporação multimodal, AI.GENERATE_EMBEDDING também funciona com conteúdo visual de colunas de tabelas padrão que contêm valores ObjectRef ou de tabelas de objetos.
Para modelos remotos, toda a inferência ocorre no Vertex AI. Para outros tipos de modelos, toda a inferência ocorre no BigQuery. Os resultados são armazenados no BigQuery.
Use os seguintes tópicos para tentar incorporar a geração no BigQuery ML:
- Gere texto,
imagens ou
vídeos com a função
AI.GENERATE_EMBEDDING. - Gere e pesquise incorporações multimodais
- Realize pesquisas semânticas e geração aumentada de recuperação
Geração autónoma de incorporações
Pode usar a geração autónoma de incorporações para simplificar o processo de criação, manutenção e consulta de incorporações. O BigQuery mantém uma coluna de incorporações na sua tabela com base numa coluna de origem. Quando adiciona ou modifica dados na coluna de origem, o BigQuery gera ou atualiza automaticamente a coluna de incorporação para esses dados através de um modelo de incorporação do Vertex AI. Isto é útil se quiser permitir que o BigQuery mantenha as suas incorporações quando os dados de origem são atualizados regularmente.
Pesquisar
Estão disponíveis as seguintes funções de pesquisa:
VECTOR_SEARCH: Faça uma pesquisa vetorial através de SQL.AI.SEARCH(Pré-visualização): pesquise resultados próximos de uma string que fornecer. Pode usar esta função se a sua tabela tiver a geração de incorporações autónoma ativada.AI.SIMILARITY(Pré-visualização): compare duas entradas calculando a semelhança de cossenos entre as respetivas incorporações. Esta função funciona bem se quiser fazer um pequeno número de comparações e não tiver pré-calculado incorporações. Deve usarVECTOR_SEARCHquando o desempenho for fundamental e estiver a trabalhar com um grande número de incorporações. Compare a respetiva funcionalidade para escolher a melhor função para o seu exemplo de utilização.
Opcionalmente, pode criar um índice vetorial usando a declaração CREATE VECTOR INDEX.
Quando é usado um índice vetorial, as funções VECTOR_SEARCH e AI.SEARCH usam a técnica de pesquisa Approximate Nearest Neighbor para melhorar o desempenho da pesquisa vetorial, com a contrapartida de reduzir a recolha e, assim, devolver resultados mais aproximados. Sem um índice vetorial, estas funções usam a pesquisa de força bruta para medir a distância de cada registo. Também pode optar por usar a força bruta para obter resultados exatos, mesmo quando um índice vetorial está disponível.
Preços
As funções VECTOR_SEARCH e AI.SEARCH e a declaração CREATE VECTOR INDEX
usam os
preços de computação do BigQuery.
Funções
VECTOR_SEARCHeAI.SEARCH: a pesquisa de semelhanças é cobrada através dos preços a pedido ou das edições.- A pedido: é-lhe cobrado o número de bytes analisados na tabela base, no índice e na consulta de pesquisa.
Preços das edições: é cobrado o número de espaços necessários para concluir a tarefa na edição da reserva. Os cálculos de semelhança maiores e mais complexos incorrem em mais cobranças.
CREATE VECTOR INDEX: Não existe qualquer custo para o processamento necessário para criar e atualizar os seus índices vetoriais, desde que o tamanho total dos dados da tabela indexada esteja abaixo do seu limite por organização. Para suportar a indexação além deste limite, tem de fornecer a sua própria reserva para processar as tarefas de gestão de índices.
O armazenamento também é uma consideração para incorporações e índices. A quantidade de bytes armazenados como incorporações e índices está sujeita a custos de armazenamento ativos.
- Os índices vetoriais incorrem em custos de armazenamento quando estão ativos.
- Pode encontrar o tamanho do armazenamento do índice através da vista
INFORMATION_SCHEMA.VECTOR_INDEXES. Se o índice vetorial ainda não tiver uma cobertura de 100%, continua a ser cobrado por tudo o que foi indexado. Pode verificar a cobertura do índice através da vistaINFORMATION_SCHEMA.VECTOR_INDEXES.
Quotas e limites
Para mais informações, consulte os limites do índice vetorial e os limites da função de IA generativa.
Limitações
As consultas que contêm a função VECTOR_SEARCH ou AI.SEARCH não são aceleradas pelo BigQuery BI Engine.
O que se segue?
- Saiba como criar um índice vetorial.
- Saiba como realizar uma pesquisa vetorial usando a
VECTOR_SEARCHfunção. - Saiba como fazer uma pesquisa semântica com a função
AI.SEARCH. - Saiba mais acerca da geração autónoma de incorporações.
- Experimente o tutorial Pesquisar incorporações com a pesquisa vetorial para saber como criar um índice vetorial e, em seguida, fazer uma pesquisa vetorial de incorporações com e sem o índice.
Experimente o tutorial Realizar pesquisa semântica e geração aumentada de recuperação para saber como realizar as seguintes tarefas:
- Gerar incorporações de texto.
- Crie um índice vetorial nas incorporações.
- Realizar uma pesquisa vetorial com as incorporações para pesquisar texto semelhante.
- Realizar a geração aumentada de recuperação (RAG) através dos resultados da pesquisa vetorial para aumentar a entrada de comandos e melhorar os resultados.
Experimente o tutorial Analise PDFs num pipeline de geração aumentada de recuperação para saber como criar um pipeline de RAG com base no conteúdo de PDFs analisados.
Também pode realizar pesquisas vetoriais usando DataFrames do BigQuery em Python. Para ver um bloco de notas que ilustra esta abordagem, consulte o artigo Crie uma aplicação de pesquisa vetorial com DataFrames do BigQuery.