Nesta página, descrevemos a pesquisa vetorial e como ela funciona no Spanner.
A pesquisa vetorial é um recurso integrado de alto desempenho que permite a pesquisa semântica e a correspondência de similaridade em dados vetoriais de alta dimensão. Ao armazenar e indexar embeddings vetoriais diretamente no banco de dados transacional, o Spanner elimina a necessidade de bancos de dados vetoriais separados e pipelines de ETL complexos.
Principais conceitos
Esta seção apresenta os seguintes conceitos principais da pesquisa vetorial:
- Embeddings de vetor
- Métodos de pesquisa (KNN e ANN)
- Funções de distância
Embeddings de vetor
Os embeddings de vetor são representações numéricas de alta dimensão de dados não estruturados. Eles são gerados com base em dados não estruturados usando modelos de machine learning. Por exemplo, é possível usar a API de embedding de texto da Vertex AI para gerar, armazenar e atualizar embeddings de texto para dados armazenados no Spanner.
Métodos de pesquisa
O Spanner oferece suporte a dois métodos para encontrar vetores semelhantes:
Vizinho k-mais próximo (KNN): realiza uma pesquisa exata calculando a distância entre a consulta e todos os vetores no conjunto de dados. Ele oferece um recall mais preciso, mas é caro do ponto de vista computacional para conjuntos de dados muito grandes.
Vizinho mais próximo aproximado (ANN): usa um índice de vetor (baseado no algoritmo ScaNN do Google) para encontrar correspondências rapidamente em um grande número de vetores. Ele troca uma pequena quantidade de acurácia (recall) por ganhos em velocidade e escalonabilidade.
Principais recursos
Escalabilidade: oferece suporte a bilhões de vetores para pesquisa ANN não particionada ou trilhões de vetores para cargas de trabalho KNN particionadas.
Banco de dados e mecanismo de IA unificados: use a função GoogleSQL
ML.PREDICTou PostgreSQLspanner.ML_PREDICT_ROWpara gerar embeddings de modelos da Vertex AI diretamente no fluxo de consultas.Filtragem inline: combine de maneira eficiente a pesquisa vetorial com filtros de metadados estruturados (por exemplo, "Encontrar imagens semelhantes em que categoria = 'sapatos' e preço < 100") sem perder desempenho.
Integração com o LangChain: o suporte integrado ao LangChain permite criar aplicativos de geração aumentada de recuperação (RAG) usando o Spanner como o repositório de vetores.
Recursos de pesquisa híbrida
A pesquisa vetorial é mais eficiente quando combinada com outros recursos de dados do Spanner:
| Combinação | Benefício |
|---|---|
| Pesquisa vetorial com filtragem SQL | Combine de maneira eficiente a pesquisa vetorial com filtros (por exemplo, "Encontrar imagens semelhantes em que categoria = 'sapatos' e preço < 100"). |
| Pesquisa vetorial + pesquisa de texto completo | Combine a similaridade semântica com a precisão das palavras-chave usando a fusão de classificação recíproca (RRF) para uma relevância de pesquisa superior. |
| Vetor + gráfico | Use a pesquisa vetorial para encontrar pontos de entrada (nós) relevantes em um grafo de propriedades e percorrer relacionamentos complexos. |
A seguir
- Saiba mais sobre a IA do Spanner.
- Saiba como receber embeddings de texto da Vertex AI.
- Saiba como fazer uma pesquisa de vizinhos k-mais próximos (KNN).
- Saiba mais sobre como fazer uma pesquisa de vizinhos aproximados mais próximos (ANN).