Data di aggiornamento: 29 luglio 2024
Autori: Jim Holdsworth, Matthew Kosinski
Un database vettoriale memorizza, gestisce e indicizza dati vettoriali altamente dimensionali. I punti dati sono memorizzati come array di numeri chiamati “vettori,” che vengono raggruppati in base alla similarità. Questo tipo di progettazione consente query a bassa latenza, l'ideale per le applicazioni AI.
I database vettoriali sono sempre più popolari perché offrono la velocità e le prestazioni necessarie per promuovere casi d'uso e applicazioni di intelligenza artificiale (AI) generativa. Secondo Gartner®, entro il 2026 oltre il 30% delle imprese adotterà database vettoriali per creare i propri foundation model con dati aziendali rilevanti.1
A differenza dei database relazionali tradizionali con righe e colonne, i punti di dati in un database vettoriale sono rappresentati da vettori con un numero fisso di dimensioni. Poiché utilizzano incorporamenti vettoriali ad alta dimensionalità, i database vettoriali sono in grado di gestire meglio i set di dati non strutturati.
La natura dei dati ha subito una profonda trasformazione. Non si tratta più di informazioni strutturate facilmente memorizzabili nei database tradizionali. I dati non strutturati, tra cui post sui social media, immagini, video, clip audio e altro ancora, stanno crescendo dal 30% al 60% anno dopo anno.2
I database relazionali eccellono nella gestione di set di dati strutturati e semistrutturati in formati specifici. Caricare origini di dati non strutturati in un database relazionale tradizionale per memorizzare, gestire e preparare i dati per l'intelligenza artificiale (AI) è un processo molto laborioso, soprattutto quando si tratta di nuovi casi d'uso generativi come la ricerca per similarità.
La ricerca tradizionale rappresenta tipicamente i dati utilizzando caratteristiche o token discreti, come parole chiave, tag o metadati. Le ricerche tradizionali si basano sulle corrispondenze esatte per recuperare i risultati rilevanti. Ad esempio, la ricerca di "smartphone" restituirà risultati contenenti la parola "smartphone".
Al contrario, la ricerca vettoriale rappresenta i dati come vettori densi, ovvero vettori in cui la maggior parte o tutti gli elementi sono diversi da zero. I vettori sono rappresentati in uno spazio vettoriale continuo, lo spazio matematico in cui i dati sono rappresentati come vettori.
Le rappresentazioni vettoriali consentono la ricerca per similarità. Ad esempio, una ricerca vettoriale per "smartphone" potrebbe restituire risultati anche per "cellulare" e "dispositivi mobili".
Ogni dimensione del vettore denso corrisponde a una caratteristica latente o a un aspetto dei dati. Una caratteristica latente è una caratteristica o un attributo sottostante che non viene osservato direttamente, ma che viene dedotto dai dati attraverso modelli matematici o algoritmi.
Le caratteristiche latenti acquisiscono i pattern e le relazioni nascoste nei dati, consentendo rappresentazioni più significative e accurate degli elementi come vettori in uno spazio ad alta dimensionalità.
Utilizza questo framework di selezione del modello per scegliere il modello più appropriato bilanciando i requisiti di prestazioni con costi, rischi ed esigenze di implementazione.
Registrati per ricevere l'ebook sugli storage dei dati AI
I vettori sono un sottoinsieme dei tensori, che in machine learning (ML) indicano genericamente un gruppo di numeri, o un raggruppamento di gruppi di numeri, in uno spazio n-dimensionale. I tensori funzionano come uno strumento matematico per la registrazione e l'organizzazione dei dati. Partendo dall'elemento più piccolo:
I numeri vettoriali possono rappresentare oggetti complessi come parole, immagini, video e audio generati da un modello ML. Questi dati vettoriali ad alta dimensionalità, contenenti molteplici caratteristiche, sono essenziali per il machine learning, l'elaborazione del linguaggio naturale (NLP) e altre attività di AI. Alcuni esempi di utilizzo di dati vettoriali comprendono:
Gli incorporamenti vettoriali sono rappresentazioni numeriche di punti dati che convertono vari tipi di dati, inclusi dati non matematici come parole, audio o immagini, in array di numeri che i modelli ML possono elaborare.
I modelli di intelligenza artificiale (AI), dai semplici algoritmi di regressione lineare alle intricate reti neurali utilizzate nel deep learning, operano attraverso la logica matematica.
Tutti i dati che un modello AI utilizza, compresi i dati non strutturati, devono essere registrati numericamente. L'incorporamento vettoriale è un modo per convertire un punto dati non strutturato in un array di numeri che esprime il significato originale di quel dato.
Ecco un esempio semplificato di incorporamenti di parole per un corpus molto piccolo (2 parole), dove ogni parola è rappresentata come vettore tridimensionale:
In questo esempio, ogni parola ("gatto") è associata a un vettore univoco ([0,2, -0,4, 0,7]). I valori nel vettore rappresentano la posizione della parola in uno spazio vettoriale tridimensionale continuo.
Si prevede che le parole con significati o contesti simili abbiano rappresentazioni vettoriali simili. Ad esempio, i vettori per "gatto" e "cane" sono vicini tra loro, riflettendo la loro relazione semantica.
I modelli di incorporamento sono addestrati per convertire i punti dati in vettori. I database vettoriali memorizzano e indicizzano gli output di questi modelli di incorporamento. All'interno del database, i vettori possono essere raggruppati o identificati come opposti in base al significato semantico o alle caratteristiche di praticamente qualsiasi tipo di dati.
Gli incorporamenti vettoriali sono la spina dorsale di raccomandazioni, chatbot e app generative come ChatGPT.
Prendiamo ad esempio le parole "auto" e "veicolo". Hanno significati simili, ma sono scritte in modo diverso. Affinché un'applicazione AI consenta una ricerca semantica efficace, le rappresentazioni vettoriali di "auto" e "veicolo" devono acquisire la loro similarità semantica. Nel machine learning, gli incorporamenti rappresentano vettori altamente dimensionali che codificano queste informazioni semantiche.
I database vettoriali svolgono tre funzioni chiave nelle applicazioni di AI e ML:
In pratica, i database vettoriali funzionano utilizzando più algoritmi per condurre una ricerca di prossimità ANN (Approximate Nearest Neighbor). Gli algoritmi vengono quindi raccolti in una pipeline per recuperare e fornire in modo rapido e preciso i dati vicini al vettore interrogato.
Ad esempio, una ricerca ANN potrebbe cercare prodotti visivamente simili in un catalogo di e-commerce. Altri usi includono il rilevamento delle anomalie, la classificazione e la ricerca semantica. Poiché un set di dati viene esaminato da un modello una sola volta, i risultati vengono restituiti entro alcuni millisecondi.
I database vettoriali memorizzano l'output di un algoritmo di modello di incorporamento, gli incorporamenti vettoriali. Inoltre, memorizzano i metadati di ciascun vettore, tra cui titolo, descrizione e tipo di dati, che possono essere interrogati utilizzando i filtri dei metadati.
Inserendo e memorizzando questi incorporamenti, il database può quindi facilitare il recupero rapido di una ricerca per similarità, abbinando il prompt dell'utente a un incorporamento vettoriale simile.
I vettori devono essere indicizzati per accelerare le ricerche all'interno di spazi di dati altamente dimensionali. I database vettoriali creano indici su incorporamenti vettoriali per le funzioni di ricerca.
Il database vettoriale indicizza i vettori utilizzando un algoritmo ML. L'indicizzazione mappa i vettori su nuove strutture dati che consentono ricerche per similarità o distanza più rapide, come la ricerca di prossimità tra vettori.
I vettori possono essere indicizzati utilizzando algoritmi come HNSW (Hierarchical Navigable Small World), LSH (Locality-Sensitive Hashing) o quantizzazione del prodotto (PQ).
I vettori di query sono rappresentazioni vettoriali delle query di ricerca. Quando un utente esegue query o prompt su un modello AI, il modello calcola un incorporamento della query o del prompt. Il database calcola quindi le distanze tra i vettori di query e i vettori memorizzati nell'indice per restituire risultati simili.
I database possono misurare la distanza tra vettori con vari algoritmi, come la ricerca di prossimità. Le misurazioni possono anche basarsi su varie metriche di similarità, come la similarità del coseno.
Il database restituisce i vettori più simili o i vicini più prossimi al vettore di query in base alla classifica di similarità. Questi calcoli supportano varie attività di machine learning come i sistemi di raccomandazione, la ricerca semantica, il riconoscimento delle immagini e altre attività di elaborazione del linguaggio naturale.
I database vettoriali sono alla base di molte applicazioni AI aziendali, perché possono offrire molti vantaggi:
I database vettoriali utilizzano diverse tecniche di indicizzazione per consentire una ricerca più rapida. Gli algoritmi di indicizzazione vettoriale e calcolo della distanza, come la ricerca per prossimità, possono aiutare a ottimizzare le prestazioni nella ricerca di risultati pertinenti in set di dati di grandi dimensioni con milioni, se non miliardi, di punti dati.
Un aspetto da considerare è che i database vettoriali forniscono risultati approssimativi. Le applicazioni che richiedono una maggiore precisione potrebbero dover utilizzare un tipo di database diverso, al costo di una velocità di elaborazione inferiore.
I database vettoriali possono archiviare e gestire enormi quantità di dati non strutturati, scalando orizzontalmente con nodi aggiuntivi, mantenendo le prestazioni man mano che le richieste di query e i volumi di dati aumentano.
Poiché consentono un recupero più rapido dei dati, i database vettoriali velocizzano l'addestramento dei foundation model.
I database vettoriali in genere forniscono funzioni integrate per aggiornare e inserire facilmente nuovi dati non strutturati.
I database vettoriali sono progettati per gestire la complessità aggiuntiva dell'utilizzo di immagini, video o altri dati multidimensionali.
Dati i molteplici casi d'uso che vanno dalla ricerca semantica alle applicazioni di AI conversazionale, i database vettoriali possono essere personalizzati per soddisfare i requisiti aziendali e di AI. Le organizzazioni possono iniziare con un modello generico come i modelli della serie IBM® Granite, i modelli Llama-2 di Meta o Google Flan, quindi fornire i propri dati in un database vettoriale per migliorare l'output dei modelli e delle applicazioni AI.
Le organizzazioni hanno un'ampia gamma di opzioni nella scelta di un database vettoriale. Per trovarne uno che soddisfi le loro esigenze in materia di dati e AI, molte organizzazioni considerano diversi aspetti:
Sono disponibili alcune alternative tra cui scegliere.
I database vettoriali non devono essere considerati come funzionalità autonome, ma piuttosto come parte integrante di un più ampio ecosistema di dati e AI.
Molti offrono API, estensioni native o possono essere integrati con i database. Poiché i database vettoriali sono creati per utilizzare i dati aziendali al fine di migliorare i modelli, le organizzazioni devono anche disporre di una governance e una sicurezza dei dati adeguate per garantire che i dati utilizzati per addestrare i modelli linguistici di grandi dimensioni (LLM) siano affidabili.
Oltre alle API, molti database vettoriali utilizzano kit di sviluppo software (SDK) specifici per i linguaggi di programmazione, in grado di integrare le API. Utilizzando gli SDK, gli sviluppatori trovano spesso più facile lavorare con i dati nelle loro app.
L'utilizzo di un archivio vettoriale e di un indice è particolarmente adatto per le applicazioni basate su fatti o query basate sui fatti, ad esempio l'estrazione di informazioni specifiche da documenti complessi.
Tuttavia, la richiesta di un riepilogo degli argomenti non si presta bene a un indice vettoriale. In questo caso, un LLM esaminerebbe tutti i diversi contesti possibili su quell'argomento all'interno dei dati.
Un'opzione più rapida consiste nell'utilizzare un tipo diverso di indice, ad esempio un indice di elenco anziché un indice vettoriale, perché un indice di elenco recupererebbe immediatamente il primo elemento di ogni elenco.
Per ottimizzare lo sviluppo di un database vettoriale, LangChain è un framework di orchestrazione open source per lo sviluppo di applicazioni che utilizzano LLM.
Disponibili sia in librerie basate su Python che in librerie basate su JavaScript, gli strumenti e le API di LangChain semplificano il processo di creazione di app basate su LLM come chatbot e agenti virtuali.LangChain fornisce integrazioni per oltre 25 metodi di incorporamento diversi e per più di 50 archivi vettoriali diversi (su cloud e locali).
Per potenziare l'AI di livello aziendale, si potrebbe abbinare un data lakehouse con un database vettoriale integrato. Le organizzazioni possono unificare, curare e preparare incorporamenti vettoriali per le loro applicazioni di AI generativa su larga scala attraverso dati attendibili e governati. Ciò migliora la pertinenza e la precisione dei workload di intelligenza artificiale, inclusi chatbot, sistemi di raccomandazione personalizzati e applicazioni di ricerca per similarità delle immagini.
Le applicazioni dei database vettoriali sono numerose e in crescita. Alcuni dei principali casi d'uso includono:
La retrieval-augmented generation (RAG) è un framework di AI che consente ai modelli linguistici di grandi dimensioni (LLM) di recuperare fatti da una base di conoscenza esterna. I database vettoriali sono fondamentali per supportare le implementazioni RAG.
Le aziende preferiscono sempre più l'approccio RAG nei workflow di AI generativa per il suo time-to-market più rapido, l'inferenza efficiente e l'output affidabile. Il framework è particolarmente utile in casi d'uso come l'assistenza clienti, la gestione delle risorse umane e dei talenti.
La RAG aiuta a garantire che un modello sia collegato ai fatti più recenti e affidabili e che gli utenti abbiano accesso alle fonti del modello, in modo che le sue affermazioni possano essere verificate. Ancorare il LLM a dati attendibili può aiutare a ridurre le allucinazioni del modello.
La RAG utilizza dati vettoriali altamente dimensionali per arricchire i prompt con informazioni semanticamente rilevanti ai fini dell'apprendimento contestuale da parte dei foundation model. La RAG richiede storage e recupero efficaci durante la fase di inferenza, che gestisce il volume più elevato di dati.
I database vettoriali eccellono nell'indicizzare, memorizzare e recuperare in modo efficiente questi vettori altamente dimensionali, fornendo la velocità, la precisione e la scalabilità necessarie per applicazioni come motori di raccomandazione e chatbot.
I database vettoriali, in particolare se utilizzati per implementare framework RAG, possono aiutare a migliorare le interazioni con gli agenti virtuali migliorando la capacità degli agenti di analizzare le basi di conoscenza pertinenti in modo efficiente e accurato. Gli agenti possono fornire risposte contestuali in tempo reale alle query degli utenti, insieme ai documenti di origine e ai numeri di pagina di riferimento.
Ad esempio, i siti di e-commerce possono utilizzare i vettori per rappresentare le preferenze dei clienti e gli attributi dei prodotti. In questo modo possono suggerire articoli simili agli acquisti precedenti in base alla similarità vettoriale, migliorando l'esperienza dell'utente e aumentando la fidelizzazione.
Questa tecnica di ricerca viene utilizzata per individuare elementi o punti dati simili, in genere rappresentati come vettori, in raccolte di grandi dimensioni. La ricerca vettoriale può acquisire le relazioni semantiche tra gli elementi, consentendo un'elaborazione efficace mediante modelli di machine learning e applicazioni di intelligenza artificiale.
Queste ricerche possono assumere diverse forme.
IBM watsonx è una piattaforma di dati e AI pensata per le imprese. Crea rapidamente applicazioni AI personalizzate, gestisci tutte le fonti di dati e accelera i workflow di AI responsabile, il tutto su un'unica piattaforma.
IBM Cloud Databases for Elasticsearch coniuga la flessibilità di un motore di ricerca di testo completo con la potenza dell'indicizzazione di un database di documenti JSON. Combinando modelli di machine learning (ML) integrati con nodi ML specializzati, tipi di dati e algoritmi di ricerca, IBM Cloud Databases for Elasticsearch è lo strumento ideale per potenziare la tua azienda.
IBM Cloud Databases for PostgreSQL, un'offerta database as a service di PostgreSQL, consente ai team di dedicare più tempo alla creazione con elevata disponibilità, orchestrazione del backup, ripristino a orari prestabiliti (PITR) e replica di lettura con facilità.
Le organizzazioni che utilizzano correttamente i modelli di AI generativa possono riscontrare una miriade di benefici: dall'aumento dell'efficienza operativa e dal miglioramento del processo decisionale alla rapida creazione di contenuti di marketing.
Usa questa guida per scoprire quali sono le funzioni degli assistenti di AI generativa IBM più adatte per ogni esigenza, come confrontarli con gli altri modelli sul mercato e come iniziare a usarli.
Il RAG è un framework di AI per recuperare dati da una knowledge base esterna per basare gli LLM sugli insight più accurati e aggiornati possibile e per fornire agli utenti informazioni sul processo generativo dei LLM.
Tutti i link sono esterni a ibm.com.
1 Gartner Innovation Insight: Vector Databases, Gartner, 4 settembre 2023.
2 2024 Strategic Roadmap for Storage, Gartner, 27 maggio 2024.