Condividi tramite


Database vettoriali open source

Quando gli sviluppatori selezionano i database vettoriali, le opzioni open source offrono numerosi vantaggi. "Open source" significa che il codice sorgente del software è disponibile liberamente, consentendo agli utenti di personalizzare il database in base alle proprie esigenze specifiche. Questa flessibilità è vantaggiosa per le organizzazioni che sono soggette a requisiti normativi univoci sui dati, ad esempio le aziende nel settore dei servizi finanziari.

Un altro vantaggio dei database vettoriali open source è il forte supporto della community che godono. Le community di utenti attivi spesso contribuiscono allo sviluppo di questi database, forniscono supporto e condividono procedure consigliate, promuovendo l'innovazione.

Alcuni utenti optano per i database vettoriali open source perché sono "gratuiti", ovvero non c'è alcun costo per acquisire o usare il software. Un'alternativa consiste nell'usare i livelli gratuiti offerti dai servizi di database vettoriali gestiti. Questi servizi gestiti offrono non solo l'accesso gratuito a costi fino a un determinato limite di utilizzo, ma semplificano anche il carico operativo gestendo la manutenzione, gli aggiornamenti e la scalabilità. Pertanto, usando il livello gratuito dei servizi di database vettoriali gestiti, gli utenti possono ottenere risparmi sui costi riducendo al contempo il sovraccarico di gestione. Questo approccio consente agli utenti di concentrarsi maggiormente sulle attività principali anziché sull'amministrazione del database.

Meccanismo di lavoro dei database vettoriali

I database vettoriali sono progettati per archiviare e gestire incorporamenti vettoriali, ovvero rappresentazioni matematiche dei dati in uno spazio ad alta dimensione. In tale spazio, ogni dimensione corrisponde a una caratteristica dei dati. Per rappresentare dati sofisticati, potrebbero essere usate decine di migliaia di dimensioni. La posizione di un vettore in questo spazio rappresenta le sue caratteristiche. È possibile vettorizzare parole, frasi o interi documenti, immagini, audio e altri tipi di dati. Gli incorporamenti vettoriali vengono usati nelle ricerche di somiglianza e multi modale, nei motori di elementi consigliati, nei modelli di linguaggi di grandi dimensioni (LLM) e così via.

L'architettura di questi database include in genere un motore di archiviazione e un meccanismo di indicizzazione. Il motore di archiviazione ottimizza l'archiviazione dei dati vettoriali per un recupero e una manipolazione efficienti, mentre il meccanismo di indicizzazione organizza i dati per operazioni di ricerca e recupero veloci.

In un database vettoriale, gli incorporamenti sono indicizzati e sottoposti a query tramite algoritmi di ricerca vettoriale, in base alla distanza vettoriale o alla somiglianza. Occorre un solido meccanismo per identificare i dati più rilevanti. Alcuni algoritmi di ricerca vettoriale noti includono Gerarchica Navigable Small World (HNSW), Inverted File (IVF) e così via.

I database vettoriali sono usati in numerosi domini e situazioni di IA analitica e generativa, tra cui elaborazione del linguaggio naturale, riconoscimento di video e immagini, sistema di elementi consigliati, ricerca e così via. Per fare alcuni esempi, un database vettoriale è utilizzabile per:

  • Identificare immagini, documenti e canzoni simili in base al contenuto, ai temi, ai sentimenti e agli stili
  • Identificare prodotti simili in base alle caratteristiche, alle funzionalità e ai gruppi di utenti
  • Consigliare contenuti, prodotti o servizi in base alle preferenze degli utenti
  • Consigliare contenuti, prodotti o servizi in base alle analogie dei gruppi di utenti
  • Identificare le opzioni potenziali più adatte da un ampio pool di scelte per soddisfare requisiti complessi
  • Identificare le anomalie dei dati o le attività fraudolente che sono diverse da modelli predominanti o normali
  • Implementare la memoria persistente per gli agenti di intelligenza artificiale
  • Abilitare la generazione aumentata del recupero (RAG)

Database vettoriale integrato vs database vettoriale puro

Esistono due tipi comuni di implementazioni di database vettoriali: database vettoriale puro e database vettoriale integrato in un database NoSQL o relazionale.

Un database vettoriale puro è progettato per archiviare e gestire in modo efficiente gli incorporamenti vettoriali, insieme a una piccola quantità di metadati; è separato dall'origine dati da cui derivano tali incorporamenti.

Se integrato in un database NoSQL o relazionale ad alte prestazioni, un database vettoriale offre funzionalità aggiuntive: ad esempio può archiviare, indicizzare ed eseguire query sugli incorporamenti insieme ai dati originali corrispondenti. Questo approccio elimina il costo aggiuntivo della replica dei dati in un database vettoriale puro separato. Inoltre, mantenere insieme gli incorporamenti vettoriali e i dati originali facilita le operazioni con dati multimodali e consente una maggiore coerenza, scalabilità e prestazioni dei dati.

Selezione del database vettoriale open source migliore

Per scegliere il database vettoriale open source migliore è necessario prendere in considerazione diversi fattori. Le prestazioni e la scalabilità del database sono fondamentali, poiché influiscono sul fatto che il database possa gestire i requisiti specifici del carico di lavoro. I database con funzionalità efficienti di indicizzazione e query offrono in genere prestazioni ottimali. Un altro fattore è il supporto e la documentazione della community disponibili per il database. Una solida community e un'ampia documentazione può fornire assistenza preziosa. Ecco alcuni database vettoriali open source più diffusi:

  • Chroma
  • Milvus
  • Qdrant
  • Weaviate

Tuttavia, l'opzione più popolare potrebbe non essere l'opzione migliore per te. È quindi consigliabile confrontare opzioni diverse in base a funzionalità, tipi di dati supportati, compatibilità con gli strumenti e i framework esistenti usati. È anche consigliabile tenere presenti le sfide dei database vettoriali open source (di seguito).

Sfide dei database vettoriali open source

La maggior parte dei database vettoriali open source, inclusi quelli elencati in precedenza, sono database vettoriali puri. In altre parole, sono progettati per archiviare e gestire solo incorporamenti vettoriali, insieme a una piccola quantità di metadati. Poiché sono indipendenti dall'origine dati da cui derivano gli incorporamenti, l'uso richiede l'invio dei dati tra le integrazioni del servizio, che aggiunge costi aggiuntivi, complessità e colli di bottiglia per i carichi di lavoro di produzione.

Rappresentano anche le sfide tipiche dei database open source:

  • Installazione: gli utenti devono conoscere in modo approfondito l'installazione, la configurazione e il funzionamento, soprattutto per distribuzioni complesse. L'ottimizzazione delle risorse e della configurazione durante l'operazione di scalabilità verticale richiede la chiusura del monitoraggio e delle modifiche.
  • Manutenzione: gli utenti devono gestire i propri aggiornamenti, patch e manutenzione. Così, le competenze di ML non sarebbero sufficienti; gli utenti devono anche avere un'esperienza completa nell'amministrazione del database.
  • Supporto: il supporto ufficiale può essere limitato rispetto ai servizi gestiti, affidandosi maggiormente all'assistenza della community.

Pertanto, mentre i database vettoriali open source gratuiti comportano costi significativi durante l'aumento delle prestazioni. L'espansione delle operazioni richiede più hardware, personale IT qualificato e gestione avanzata dell'infrastruttura, causando costi più elevati in hardware, personale e costi operativi. La scalabilità di database vettoriali open source può essere finanziariamente impegnativa nonostante la mancanza di tariffe di licenza.

Affrontare le sfide dei database vettoriali open source

Un database vettoriale completamente gestito integrato in un database NoSQL o relazionale ad alte prestazioni evita costi aggiuntivi e complessità dei database vettoriali open source. Tali archivi di database, indici e query incorporano insieme ai dati originali corrispondenti. Questo approccio elimina il costo aggiuntivo della replica dei dati in un database vettoriale puro separato. Inoltre, mantenere insieme gli incorporamenti vettoriali e i dati originali facilita le operazioni con dati multimodali e consente una maggiore coerenza, scalabilità e prestazioni dei dati. Nel frattempo, il servizio completamente gestito consente agli sviluppatori di evitare problemi di configurazione, manutenzione e affidamento sull'assistenza della community per un database vettoriale open source. Inoltre, alcuni servizi di database vettoriali gestiti offrono un livello gratuito di durata.

Un esempio è il database vettoriale integrato in Azure Cosmos DB per MongoDB. Consente agli sviluppatori di usufruire dello stesso vantaggio finanziario associato ai database vettoriali open source, mentre il provider di servizi gestisce la manutenzione, gli aggiornamenti e la scalabilità. Quando è il momento di aumentare le prestazioni delle operazioni, l'aggiornamento è rapido e semplice mantenendo al tempo stesso un costo totale di proprietà (TCO) basso. Questo servizio può essere usato anche per ridimensionare facilmente le applicazioni MongoDB già in produzione.

Passaggio successivo