Cos'è un database vettoriale?

Un database vettoriale archivia e indicizza vettori di embedding ad alta dimensionalità provenienti da modelli di ML, consentendo una ricerca per similarità rapida per applicazioni di intelligenza artificiale come RAG e ricerca semantica.

Un database vettoriale è un sistema di archiviazione specializzato, progettato per gestire vettori ad alta dimensionalità, ovvero array numerici composti in genere da centinaia o migliaia di numeri in virgola mobile che i modelli di machine learning utilizzano per rappresentare il significato. Parole, frasi, immagini, clip audio e comportamenti degli utenti possono essere tutti codificati come vettori, e un database vettoriale rende possibile archiviare miliardi di questi embedding e trovare le corrispondenze più vicine a una nuova query nel giro di millisecondi.

Come funziona un database vettoriale

Quando un modello di ML, come un modello linguistico di grandi dimensioni o un encoder visivo, produce un embedding, quel vettore viene inviato al database insieme a un riferimento all'elemento originale, un frammento di testo, un file immagine, un record di prodotto e così via. Il database costruisce un indice utilizzando un algoritmo di nearest neighbor approssimato (ANN), come HNSW (Hierarchical Navigable Small World) o IVF (Inverted File Index): strutture che sacrificano una piccola parte di precisione in cambio di query decisamente più veloci su grandi set di dati. Al momento della ricerca, l'applicazione invia un nuovo embedding come query, e l'indice restituisce i top-k vettori classificati in base a una metrica di similarità, comunemente la similarità coseno, il prodotto scalare o la distanza euclidea.

Perché è importante

La ricerca tradizionale per parole chiave non è in grado di riconoscere che "feline companion" e "house cat" significano quasi la stessa cosa, ma i loro embedding si trovano vicini nello spazio vettoriale, quindi un database vettoriale li individua come corrispondenze. Questa capacità è ciò che sostiene la moderna ricerca semantica, i motori di raccomandazione, il recupero di immagini e audio, il rilevamento di anomalie e la fase di recupero nella Retrieval-Augmented Generation (RAG), in cui un LLM viene ancorato a documenti recuperati da un vector store. Senza un'indicizzazione progettata ad hoc, confrontare una query con milioni di vettori uno alla volta sarebbe troppo lento per il traffico in produzione.

Tipologie principali ed esempi

  • Database vettoriali dedicati: engine progettati ad hoc come Milvus, Qdrant, Weaviate e Pinecone, costruiti da zero attorno agli indici ANN.
  • Librerie di ricerca vettoriale: engine leggeri come FAISS e Annoy che vengono eseguiti all'interno di un'applicazione anziché come servizio autonomo.
  • Database ibridi: archivi tradizionali come PostgreSQL (tramite pgvector), Elasticsearch e MongoDB che aggiungono l'indicizzazione vettoriale a funzionalità documentali o relazionali già esistenti.
  • Servizi cloud gestiti: offerte hosted dei principali cloud provider che integrano la ricerca vettoriale con piattaforme dati più ampie.

La scelta tra queste opzioni dipende di solito dalla scala, dai requisiti di latenza, dal fatto che i dati convivano o meno con record strutturati e da quanto overhead operativo un team è disposto a sostenere. I sistemi più performanti nel settore vengono valutati su benchmark come la classifica di ANN-Benchmarks, che mette a confronto il recall con le query al secondo su set di dati rappresentativi.

You might also like

Articoli correlati