Vertex AI Vector Search consente agli utenti di cercare elementi semanticamente simili utilizzando gli embedding vettoriali. Utilizzando il flusso di lavoro Spanner to Vertex AI Vector Search, puoi integrare il tuo database Spanner con Vector Search per eseguire una ricerca di somiglianza vettoriale sui tuoi dati Spanner.
Il seguente diagramma mostra il flusso di lavoro dell'applicazione end-to-end di come puoi abilitare e usare la ricerca vettoriale su Spanner dati:
Il flusso di lavoro generale è il seguente:
Genera e archivia incorporamenti vettoriali.
Puoi generare incorporamenti vettoriali dei tuoi dati, quindi archiviarli e gestirli in Spanner con i tuoi dati operativi. Puoi generare embedding con la funzione SQL
ML.PREDICT
di Spanner per accedere al modellotextembedding-gecko
di Vertex AI o utilizzare altri modelli di embedding di cui è stato eseguito il deployment in Vertex AI.Sincronizza gli incorporamenti con Vector Search.
Utilizza il flusso di lavoro Spanner to Vertex AI Vector Search, che viene eseguito utilizzando Workflows per esportare e caricare gli incorporamenti in un indice di ricerca vettoriale. Puoi utilizzare Cloud Scheduler per pianificare periodicamente questo flusso di lavoro in modo da mantenere aggiornato l'indice di Vector Search con le ultime modifiche agli embedding in Spanner.
Esegui la ricerca di somiglianze vettoriali utilizzando il tuo indice di Vector Search.
Esegui query sull'indice di Vector Search per cercare e trovare risultati per elementi semanticamente simili. Puoi eseguire query utilizzando un endpoint pubblico o tramite il peering VPC.
Caso d'uso di esempio
Un caso d'uso illustrativo di Ricerca vettoriale è un rivenditore online con un inventario di centinaia di migliaia di articoli. In questo scenario, sei uno sviluppatore per un rivenditore online e vorresti utilizzare la ricerca di somiglianza di vettori nel tuo catalogo di prodotti in Spanner per aiutare i tuoi clienti a trovare prodotti pertinenti in base alle loro query di ricerca.
Segui i passaggi 1 e 2 descritti nel flusso di lavoro generale per generare gli incorporamenti vettoriali per il tuo catalogo di prodotti e sincronizzarli con la ricerca vettoriale.
Ora immagina che un cliente che naviga nella tua applicazione esegua una ricerca come "i migliori pantaloncini sportivi ad asciugatura rapida che posso indossare in acqua". Quando la tua applicazione riceve questa query, devi generare un embedding della richiesta per questa richiesta di ricerca utilizzando la funzione SQL ML.PREDICT
di Spanner. Assicurati di utilizzare lo stesso modello di incorporamento usato per generare
per il catalogo dei prodotti.
A questo punto, esegui una query sull'indice di ricerca vettoriale per trovare gli ID prodotto i cui incorporamenti corrispondenti sono simili all'incorporamento della richiesta generato dalla richiesta di ricerca del tuo cliente. L'indice di ricerca potrebbe consigliare ID prodotto per articoli semanticamente simili, come pantaloncini da wakeboard, abbigliamento da surf e slip da bagno.
Quando Vector Search ha restituito questi ID prodotto simili, puoi eseguire query Spanner per i prodotti descrizioni, numero di inventario, prezzo e altri metadati pertinenti e mostrali al cliente.
Puoi anche usare l'IA generativa per elaborare i risultati restituiti da Spanner prima di visualizzare al cliente. Ad esempio, potresti utilizzare i grandi modelli di IA generativa di Google per generare un riepilogo conciso dei prodotti consigliati. Per saperne di più, consulta questo tutorial su come utilizzare l'IA generativa per ricevere consigli personalizzati in un'applicazione di e-commerce.
Passaggi successivi
- Scopri come generare incorporamenti usando Spanner.
- Scopri di più sul multistrumento di IA: incorporamenti vettoriali
- Scopri di più sul machine learning e sugli incorporamenti nel nostro corso sugli arresti anomali degli incorporamenti.
- Per scoprire di più sul flusso di lavoro Spanner to Vertex AI Vector Search, consulta il repository GitHub.
- Scopri di più sul pacchetto open source Spanner-analytics che facilita le comuni operazioni di analisi dei dati in Python e include con i blocchi note Jupyter.