BLOGAnnounced at MongoDB.local NYC 2024: A recap of all announcements and updates — Learn more >

Cosa sono i database vettoriali?

Sommario

Grande clamore attorno all'IA generativa (nota anche come intelligenza artificiale). In tutti i settori dell'economia, dalla sanità alla finanza, dal commercio al dettaglio alla PA, le organizzazioni cercano di capire come servirsene. Sembra che tutti i CEO vogliano implementare le applicazioni il più velocemente possibile.

E non si tratta solo di clamore. Secondo un rapporto di McKinsey, l'IA generativa potrebbe portare all'economia globale un'iniezione di fondi dell'ordine di migliaia di miliardi.

Al centro di questa tecnologia di trasformazione c’è il concetto matematico di vettore. Attraverso la vettorizzazione e le prodezze degli LLM, l'IA generativa raggiunge il suo potenziale rivoluzionario. Nell’era dell'IA generativa, gli incorporamenti vettoriali gettano le basi; i database vettoriali ne amplificano l'impatto.

Che cos'è un database vettoriale? Come funziona? Quali sono alcuni casi d'uso comuni? E perché MongoDB Atlas Vector Search svolge un ruolo importante nel dibattito sull'IA generativa?

Che cosa sono i database vettoriali?

Per comprendere i database vettoriali, occorre innanzitutto capire cos'è un vettore.

In matematica e fisica, un vettore è una quantità che ha sia una grandezza (o dimensione) che una direzione. Un vettore può essere scomposto in componenti. Ad esempio, in uno spazio bidimensionale, un vettore ha una componente X (orizzontale) e una componente Y (verticale).

Nella scienza dei dati e nell'apprendimento automatico, un vettore è un elenco ordinato o una sequenza di numeri che rappresenta i dati. Un vettore può rappresentare qualsiasi tipo di dati, inclusi i dati non strutturati (o dati senza un modello dati o uno schema predefinito), dal testo alle immagini, dall'audio al video. Un vettore è generalmente rappresentato come matrici o elenchi di numeri in cui ogni numero nell'elenco rappresenta una caratteristica o un attributo specifico di quei dati.

Si immagini, ad esempio, di avere una vasta raccolta di foto di gatti. Ogni immagine è un dato non strutturato. Ma si può rappresentare ogni immagine come un vettore estraendo caratteristiche come:

  • Colore medio
  • Istogramma del colore
  • Istogramma della texture
  • La presenza o l'assenza di orecchie, baffi e coda

Gli incorporamenti vettoriali (o vettorizzazione) indicano il processo di conversione di queste parole e altri dati in numeri, in cui ciascun punto dati è rappresentato da un vettore nello spazio ad alta dimensione.

Un database vettoriale, noto anche come database di ricerca vettoriale o motore di ricerca per somiglianza vettoriale, archivia, recupera e cerca vettori.

Invece delle righe e delle colonne tipiche dei relational database, i database vettoriali rappresentano i dati come punti in uno spazio multidimensionale. I database vettoriali sono ideali per le applicazioni che richiedono una corrispondenza rapida e accurata dei dati basata sulla somiglianza anziché su valori esatti.

“Possiamo immaginare un database vettoriale come un vasto magazzino e l’intelligenza artificiale come un abile responsabile di magazzino. In questo magazzino, ogni articolo (dati) è immagazzinato in una scatola (vettore), ordinatamente organizzata su scaffali in uno spazio multidimensionale", scrive Mark Hinkle in The New Stack.

Se si stanno creando applicazioni di IA generativa, un database vettoriale viene adattato per elaborare in modo efficiente grandi volumi di dati vettoriali, garantendo query e velocità di elaborazione più veloci.

Immagine di database vettoriali con incorporamento vettoriale e modello di incorporamento.

Fonte: Dev.to

Come funzionano i database vettoriali?

Essenziale per la funzionalità di un database vettoriale è il principio degli incorporamenti. In sostanza, un modello vettoriale o di incorporamento traduce i dati in un formato coerente: i vettori.

Mentre un vettore è fondamentalmente un insieme ordinato di numeri, un incorporamento lo trasforma in una rappresentazione di vari tipi di dati, tra cui testo, immagini e audio.

Le trasformazioni, il processo di conversione dei dati da un formato all'altro, collocano i vettori in uno spazio vettoriale multidimensionale. Una delle funzionalità più straordinarie di questa disposizione spaziale è che i punti dati con attributi o caratteristiche simili gravitano naturalmente l'uno verso l'altro, formando dei cluster.

Gli incorporamenti vettoriali non sono solo traduzioni numeriche; incapsulano l'essenza semantica più profonda e le sfumature contestuali dei dati originali. Ciò li rende preziosi per una serie di applicazioni di IA, dall'elaborazione del linguaggio naturale (NLP) all'analisi del sentiment, fino alla categorizzazione dei testi.

L'esecuzione di query su un database vettoriale è diversa dall'esecuzione di query su un database convenzionale. Invece di cercare corrispondenze precise tra vettori identici, un database vettoriale utilizza la ricerca per analogia per individuare i vettori che risiedono in prossimità del vettore di query dato, all'interno dello spazio multidimensionale. Questo approccio non solo si allinea maggiormente alla natura intrinseca dei dati, ma offre anche una velocità e un'efficienza che la ricerca tradizionale non può eguagliare.

Parole, frasi e persino interi documenti possono essere trasformati in vettori che ne catturano l'essenza. Ad esempio, un metodo di incorporamento di parole standard è Word2Vec. Con Word2Vec, le parole con significati simili sono rappresentate da vettori che sono vicini in uno spazio multidimensionale. L'esempio più famoso è: re - uomo + donna = regina. L'aggiunta dei vettori associati alle parole "re" e "donna" sottraendo nello stesso tempo la parola "uomo" è uguale al vettore associato a "regina".

Un'immagine che descrive come funziona la ricerca nei database vettoriali, con pallini rosa, un gatto, una banana, ecc.

Fonte: Medium

Anche le immagini, nonostante presentino modelli e colori complessi, possono essere tradotte in vettori. Ad esempio, in un dataset pieno di immagini di animali, una rete neurale convoluzionale (CNN) addestrata raggrupperebbe tutte le immagini di cani vicine tra loro, nettamente separate, ad esempio, da gruppi di gatti o uccelli.

Acquisendo la struttura dei dati intrinseca e i modelli all'interno dei dati, gli incorporamenti vettoriali offrono ritratti arricchiti semanticamente. Questa ricchezza non solo facilita una comprensione più profonda dei dati, ma accelera anche i calcoli relativi alla determinazione delle relazioni e alla misurazione delle somiglianze tra entità diverse.

Perché la ricerca vettoriale è fondamentale?

La ricerca vettoriale è fondamentale per i database vettoriali a causa del suo peculiare metodo di reperimento dei dati.

A differenza dei database tradizionali, che si basano su corrispondenze esatte, in un database vettoriale la ricerca vettoriale opera in base alla somiglianza. Questa comprensione semantica significa che anche se due dati non sono identici ma sono contestualmente o semanticamente simili, possono essere abbinati.

Le tradizionali ricerche di parole chiave eccellono nell'individuare termini specifici all'interno di documenti o tabelle. Tuttavia, non sono in grado di agire sui dati non strutturati, come video, libri, post sui social media, PDF e file audio.

La ricerca vettoriale colma questo divario abilitando le ricerche all'interno di dati non strutturati. Non cerca solo corrispondenze esatte, ma identifica i contenuti in base alla somiglianza semantica, comprendendo le relazioni intrinseche tra i termini della ricerca.

Un'immagine di un diagramma di Voronoi che descrive il concetto di "nearest neighbor"

Fonte: TowardsDataScience

L'efficienza della ricerca vettoriale diventa evidente quando si tratta di dati ad alta dimensione. I database vettoriali sono abili nel gestire punti dati che si estendono su centinaia o addirittura migliaia di dimensioni. Gli algoritmi ottimizzati per la ricerca vettoriale di vettori ad alta dimensione, come la ricerca approximate nearest neighbor (ANN), possono identificare rapidamente i vettori più simili in questo ampio spazio senza la necessità di analizzare ogni vettore. Questa efficienza si traduce in ricerche più rapide ed efficienti in termini di risorse.

Dal punto di vista dell'esperienza utente, i vantaggi della ricerca vettoriale sono molteplici. Applicazioni come i sistemi di suggerimento o il riconoscimento delle immagini possono fornire risultati basati sulla somiglianza piuttosto che sulle corrispondenze esatte. Ad esempio, in ambito e-commerce, mostrare prodotti simili alla query di ricerca di un utente può migliorare la soddisfazione dei clienti e aumentare le vendite. Con l'espansione dei dataset, la scalabilità della ricerca vettoriale diventa evidente. Mentre le ricerche di corrispondenze esatte possono diventare progressivamente più lente con l'aumentare dei dati, la ricerca vettoriale mantiene prestazioni di query costanti durante tutto il processo, garantendo risultati tempestivi anche con dataset di grandi dimensioni.

La flessibilità offerta dalla ricerca vettoriale è un altro notevole vantaggio. È compatibile con nuovi tipi di dati, strutture di dati in evoluzione e requisiti di ricerca mutevoli con modifiche minime.

Inoltre, la flessibilità ha un valore inestimabile nel panorama della gestione dei dati in rapida evoluzione, soprattutto perché molti degli odierni modelli di IA e apprendimento automatico, in particolare quelli radicati nel deep learning, producono dati in formato vettoriale. Un database che può eseguire una ricerca nativa attraverso i dati vettoriali diventa indispensabile per applicazioni avanzate come il riconoscimento facciale o il riconoscimento vocale.

Un'immagine che descrive la ricerca vettoriale con dati non strutturati, un codificatore e un archivio vettoriale.
Casi d'uso dei database vettoriali

Il panorama economico globale è complesso e competitivo e i dati conservano una posizione di centralità. In passato, molti hanno definito i dati il “nuovo petrolio”. Nell’era dell'IA generativa, gli incorporamenti vettoriali sono il petrolio e i database vettoriali si sono affermati come raffinerie sofisticate, abili nell’elaborazione di dati ad alta dimensione e nell’esecuzione di ricerche per analogia.

Per i dirigenti, l’IA generativa non è solo un termine in voga, è una strategia. Per gli sviluppatori, la principale attrattiva dei database vettoriali è l'efficienza. I database tradizionali possono richiedere strutture di query complesse per recuperare dati pertinenti, soprattutto quando si tratta di dataset di grandi dimensioni. I database vettoriali semplificano questo processo, consentendo agli sviluppatori di reperire i dati in base all'analogia, riducendo sia la complessità del codice che il tempo necessario per il reperimento dei dati.

Esempi di casi d'uso dei database vettoriali
Un'immagine che descrive la ricerca vettoriale con dati non strutturati, un codificatore e un archivio vettoriale.

Fonte: Medium

Riconoscimento di immagini e video: I contenuti visivi dominano la nostra cultura visiva e in quest'ultima risplendono i database vettoriali. Sono abili nel setacciare vasti archivi di immagini e video per individuare quelli che presentano forti analogie con un determinato input. Non è tanto questione di abbinare pixel per pixel, ma piuttosto di comprendere i modelli e le caratteristiche sottostanti. Tali caratteristiche sono fondamentali per applicazioni come il riconoscimento facciale, il rilevamento di oggetti e persino il rilevamento di violazioni del copyright nelle piattaforme multimediali.

Elaborazione del linguaggio naturale e ricerca testuale: sinonimi, parafrasi e contesto possono rendere particolarmente difficoltosa la corrispondenza esatta del testo. Tuttavia, i database vettoriali possono discernere l'essenza semantica di frasi o periodi e sono quindi in grado di identificare corrispondenze che, anche se non identiche in termini di formulazione, sono contestualmente simili. Questa abilità rappresenta un punto di svolta per i chatbot, e fa in modo che rispondano in modo adeguato alle domande degli utenti. Allo stesso modo, i motori di ricerca possono fornire risultati più pertinenti, migliorando l’esperienza dell’utente.

Sistemi di suggerimento: I database vettoriali svolgono un ruolo fondamentale nella personalizzazione. Attraverso la comprensione delle preferenze degli utenti e l'analisi dei modelli, questi database possono suggerire canzoni adeguate ai gusti di un ascoltatore o prodotti in linea con le preferenze di un acquirente. È questione di valutare l'analogia e di fornire contenuti o prodotti che colpiscano favorevolmente gli utenti.

Applicazioni emergenti: L'orizzonte dei database vettoriali è in continua espansione. Nel settore sanitario, agevolano la scoperta di nuovi farmaci analizzando le strutture molecolari alla ricerca di potenziali proprietà terapeutiche. Nel settore finanziario, i database vettoriali aiutano a rilevare le anomalie individuando modelli insoliti che potrebbero indicare attività fraudolente.

Con l’ascesa dell’IA generativa, i database vettoriali emergono come fattori essenziali e aiutano gli sviluppatori a trasformare intricati progetti di intelligenza artificiale in strumenti pratici e orientati al valore.

MongoDB Atlas Vector Search: un punto di svolta

MongoDB Atlas Vector Search è l'ultimo arrivato nella piattaforma dati per sviluppatori MongoDB. Consente ai clienti di creare applicazioni intelligenti basate sulla ricerca semantica e sull'IA generativa per qualsiasi tipo di dati.

Storicamente, i team di sviluppo alla ricerca di un database vettoriale per attività come la ricerca di immagini o di analogia efficiente si sono trovati di fronte a un dilemma: optare per un database vettoriale integrato, aggiungere un altro strumento allo stack tecnologico o destreggiarsi tra un mix di strumenti di ricerca e soluzioni open source. L'utilizzo di una ricerca full-text per le funzionalità semantiche spesso implicava per gli sviluppatori un'estesa mappatura dei sinonimi. I limiti erano chiari: se gli utenti non formulavano domande precise, i risultati erano tutt'altro che pertinenti.

Tali sfide implicavano:

  • Un ulteriore sistema di supervisione.
  • La necessità di competenze specialistiche.
  • Lo sforzo mentale derivante dall'aggiornamento costante delle mappature dei sinonimi.
  • Un'esperienza utente scadente nel caso di query imprecise.
  • Prezioso tempo del personale tecnico sottratto alle attività principali.

Atlas Vector Search semplifica la progettazione di applicazioni arricchite dalla ricerca semantica e dall'IA generativa, in grado di elaborare una vasta gamma di tipi di dati, dai video ai contenuti dei social media. Sfruttando la solidità di MongoDB Atlas, Vector Search consente agli sviluppatori di creare strumenti di ricerca all'avanguardia e basati sulla pertinenza su una piattaforma affidabile con un'interfaccia di query unificata.

La ricerca vettoriale fornisce a MongoDB Atlas le conoscenze necessarie per comprendere una query senza la necessità di definire sinonimi. Anche quando gli utenti non sanno cosa stanno cercando, Vector Search è in grado di restituire risultati pertinenti in base al significato della query. Ad esempio, la ricerca di "gelato" restituirebbe "sundae" anche se l'utente non sapesse dell'esistenza dei sundae.

Quando si usa Vector Search, gli incorporamenti vettoriali vengono memorizzati in Atlas insieme ai dati e ai metadati originali. Ciò garantisce che eventuali aggiornamenti o aggiunte ai dati vettoriali vengano sincronizzati istantaneamente, semplificando l'architettura e offrendo un'esperienza di sviluppo unificata.

Con Vector Search, l'indicizzazione e l'esecuzione di query sui dati avvengono utilizzando uno dei più potenti algoritmi di ricerca vettoriale: approximate k-nearest neighbors (o "k-NN", che utilizza grafici Hierarchical Navigable Small World, o HNSW, per trovare analogie vettoriali).

Modello a spirale

È possibile creare esperienze di ricerca notevolmente migliorate in grado di affrontare casi d'uso impossibili per gli strumenti di ricerca tradizionali, tra cui:

  • Ricerca semantica: consente ricerche basate sul contesto. Ad esempio, la ricerca di “gelato” potrebbe produrre risultati come “sundae” senza sinonimi preimpostati.
  • Suggerimenti migliorati: se un utente cerca un tosaerba, il sistema può anche suggerire articoli correlati per la cura del prato.
  • Ricerche su media diversi: che si tratti di cercare immagini che rappresentano "famiglie felici" o di vagliare i log audio alla ricerca di frasi specifiche, Vector Search è all'altezza del compito.
  • Ricerca ibrida: combina i punti di forza della ricerca vettoriale con la tradizionale ricerca full-text, arricchendo i risultati.
  • Memoria a lungo termine per LLM: fornisce agli LLM un contesto di dati aziendali proprietari, perfezionando l'accuratezza dell'output.

Atlas Vector Search è compatibile con i framework applicativi più diffusi, come LlamaIndex e LangChain. Inoltre, si integra perfettamente con i partner dell'ecosistema come Google Vertex AI, AWS, Azure e Databricks, facendo in modo che i dati aziendali proprietari migliorino le prestazioni e l'accuratezza delle applicazioni basate sull'IA.

Atlas Vector Search: per applicazioni intelligenti basate sulla ricerca semantica

I database vettoriali, con il loro approccio esclusivo all'archiviazione e al reperimento dei dati, stanno cambiando il modo in cui pensiamo ai database. La loro capacità di eseguire rapide ricerche per analogia li rende indispensabili nel mondo odierno basato sui dati. E se uniti alla potenza e alla flessibilità di MongoDB Atlas, offrono una soluzione difficile da battere.

Atlas Vector Search è alla base di casi d'uso avanzati, come la ricerca semantica, la ricerca di immagini e la ricerca per analogie, che non possono essere affrontati dalla tradizionale ricerca full-text. Gli sviluppatori possono archiviare i loro incorporamenti vettoriali in MongoDB, integrare le funzionalità di ricerca esistenti con modelli di apprendimento automatico e interrogarli per ottenere risultati pertinenti e contestuali. I responsabili degli ingegneri traggono vantaggio dalla tranquillità connessa all'esecuzione di Atlas: una piattaforma dati per sviluppatori multi-cloud completamente gestita e collaudata.

Che tu stia creando un sistema di suggerimenti, un motore di ricerca o qualsiasi altra applicazione che richieda una corrispondenza dei dati rapida e accurata, valuta la possibilità di sfruttare la potenza combinata dei database vettoriali e di MongoDB. Il futuro è vettorializzato e MongoDB è qui per aiutarti a esplorarlo.

Domande frequenti

Che cos'è MongoDB Atlas Vector Search?

MongoDB Atlas Vector Search è l'ultimo arrivato nella piattaforma dati per sviluppatori MongoDB. Consente ai clienti di creare applicazioni intelligenti basate sulla ricerca semantica e sull'IA generativa per qualsiasi tipo di dati.

Che cos'è la ricerca approximate nearest neighbor?
La ricerca approximate nearest neighbor avviene quando un algoritmo è autorizzato a restituire punti la cui distanza dalla query è al massimo c volte la distanza dalla query ai punti più vicini. In altre parole, i punti restituiti possono essere fino a c volte più lontani dal punto della query rispetto al punto più vicino. Ciò è utile perché consente all'algoritmo di trovare rapidamente punti vicini sufficientemente validi.
Che cos'è un indice vettoriale?
Un indice vettoriale è una struttura di dati progettata per archiviare e gestire incorporamenti vettoriali da un ampio dataset di oggetti dati.

Primi passi con MongoDB Atlas

Prova gratuita