Questa pagina descrive la ricerca vettoriale e il suo funzionamento in Spanner.
La ricerca vettoriale è una funzionalità integrata ad alte prestazioni che consente la ricerca semantica e la corrispondenza di similarità su dati vettoriali ad alta dimensione. Archiviando e indicizzando i vector embedding direttamente all'interno del database transazionale, Spanner elimina la necessità di database vettoriali separati e pipeline ETL complesse.
Concetti fondamentali
In questa sezione vengono presentati i seguenti concetti chiave della ricerca vettoriale:
- Vector embedding
- Metodi di ricerca (KNN e ANN)
- Funzioni di distanza
Vector embedding
I vector embedding sono rappresentazioni numeriche ad alta dimensione di dati non strutturati. Vengono generati dai dati non strutturati utilizzando modelli di machine learning. Ad esempio, puoi utilizzare l'API di embedding di testo di Gemini Enterprise Agent Platform per generare, archiviare e aggiornare gli embedding di testo per i dati archiviati in Spanner.
Metodi di ricerca
Spanner supporta due metodi per trovare vettori simili:
K-Nearest Neighbor (KNN): esegue una ricerca esatta calcolando la distanza tra la query e ogni vettore nel set di dati. Fornisce un richiamo più accurato, ma è costoso dal punto di vista computazionale per set di dati di grandi dimensioni.
Approximate Nearest Neighbor (ANN): utilizza un indice vettoriale (basato sull'algoritmo ScaNN di Google) per trovare rapidamente le corrispondenze in un numero elevato di vettori. Compromette una piccola quantità di accuratezza (richiamo) per ottenere vantaggi in termini di velocità e scalabilità.
Funzionalità chiave
Scalabilità: supporta miliardi di vettori per la ricerca ANN non partizionata, o trilioni di vettori per carichi di lavoro KNN partizionati.
Database e motore di AI unificati: utilizza la funzione GoogleSQL
ML.PREDICTo PostgreSQLspanner.ML_PREDICT_ROWper generare embedding dai modelli di Agent Platform direttamente nel flusso di query.Filtro in linea: combina in modo efficiente la ricerca vettoriale con i filtri di metadati strutturati (ad esempio, "Trova immagini simili in cui categoria = 'scarpe' e prezzo < 100") senza perdere prestazioni.
Integrazione di LangChain: il supporto integrato per LangChain ti consente di creare applicazioni Retrieval-Augmented Generation (RAG) utilizzando Spanner come archivio vettoriale.
Funzionalità di ricerca ibrida
La ricerca vettoriale è più efficace se combinata con le altre funzionalità dei dati di Spanner:
| Combinazione | Vantaggio |
|---|---|
| Ricerca vettoriale con filtro SQL | Combina in modo efficiente la ricerca vettoriale con i filtri (ad esempio, "Trova immagini simili in cui categoria = 'scarpe' e prezzo < 100"). |
| Ricerca vettoriale + ricerca a testo intero | Combina la similarità semantica con la precisione delle parole chiave utilizzando la fusione del rango reciproco (RRF) per una pertinenza di ricerca superiore. |
| Vettore + grafo | Utilizza la ricerca vettoriale per trovare punti di ingresso (nodi) pertinenti in un grafo di proprietà e poi attraversa relazioni complesse. |
Passaggi successivi
- Scopri di più su Spanner AI.
- Scopri di più su come ottenere gli embedding di testo di Agent Platform.
- Scopri di più su come eseguire la ricerca K-Nearest Neighbor (KNN).
- Scopri di più su come eseguire la ricerca Approximate Nearest Neighbor (ANN).