Un database vettoriale Γ¨ un ==tipo di database pensato per memorizzare vettori ad alta dimensione, tipicamente degli Embeddings==.
Ogni vettore ha un certo numero di dimensioni, che possono variare da decine a migliaia, a seconda della complessitΓ e granularitΓ dei dati.
I vettori vengono generalmente generati applicando una sorta di ==funzione di embedding sui dati grezzi==, come testo, immagini, audio, video e altri.
Il vantaggio principale di un database vettoriale Γ¨ che consente una ricerca rapida e accurata della somiglianza e il recupero dei dati in base alla loro distanza vettoriale o somiglianza. CiΓ² significa che invece di utilizzare i metodi tradizionali di interrogazione dei database basati su corrispondenze esatte o criteri predefiniti, Γ¨ possibile utilizzare un database vettoriale per trovare i dati piΓΉ simili o pertinenti in base al loro significato semantico o contestuale.
==Per eseguire la ricerca e il recupero di similaritΓ in un database vettoriale, Γ¨ necessario utilizzare un vector query che rappresenti le informazioni o i criteri desiderati. Il vector query puΓ² essere derivato dallo stesso tipo di dati dei vettori memorizzati (ad esempio, utilizzando un'immagine come query per un database di immagini) o da diversi tipi di dati (ad esempio, utilizzando il testo come query per un database di immagini ). Quindi, Γ¨ necessario utilizzare una misura di similaritΓ che calcoli la vicinanza o la distanza di due vettori nello spazio vettoriale==. La misura della somiglianza puΓ² essere basata su varie metriche, come la Cosine Similarity, la distanza euclidea, la distanza di Hamming, lβindice di Jaccard.
Il risultato della ricerca e del recupero della somiglianza Γ¨ solitamente un elenco classificato di vettori che hanno i punteggi di somiglianza piΓΉ alti con il vettore della query. Γ quindi possibile accedere ai dati grezzi corrispondenti associati a ciascun vettore dallβorigine o dallβindice originale.
Indexing
Spesso viene aggiunto anche un Index per ogni Embedding che Γ¨ una struttura dati complessa che spesso include anche dei calcoli prefatti sulla distanza tra gli oggetti in modo che la ricerca possa poi essere veloce.
Casi dβuso per database vettoriali
Puoi utilizzare un database vettoriale per:
- Trovare immagini simili a una determinata immagine in base al contenuto visivo e allo stile
- Trovare documenti simili a un determinato documento in base allβargomento e al sentimento
- Trovare prodotti simili a un determinato prodotto in base alle loro caratteristiche e valutazioni
I database vettoriali hanno molti casi dβuso in diversi domini e applicazioni che coinvolgono:
- Clustering: raggruppamento di oggetti per somiglianza (es. immagini correlate in google immagini)
- Searching: reperimento di oggetti che sono rilevanti rispetto ad una query in ingresso
- Recommendations
- Classifications
Esempi
Il database vettoriale piΓΉ famoso e open source Γ¨ Qdrant: demo.
Semantic Kernel
In Semantic Kernel posso usare dei connectors per connettermi a database esterni, anche vettoriali. Esempi di connector giΓ pronti: