My IBM Accedi Iscriviti

Che cos'è un database vettoriale?

29 luglio 2024

Autori

Matthew Kosinski

Enterprise Technology Writer

Che cos'è un database vettoriale?

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 stanno crescendo di popolarità perché offrono la velocità e le prestazioni necessarie per guidare i casi d'uso e le applicazioni di intelligenza artificiale (AI) generativa. Secondo Gartner®, entro il 2026, oltre il 30% delle aziende adotterà i database vettoriali per costruire i propri foundation model con dati aziendali rilevanti.1

Confronto tra database vettoriali e database tradizionali

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à.

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, che sono vettori con la maggior parte o tutti gli elementi 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à.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI 


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Cosa sono i vettori?

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:

  • Uno scalare è un tensore a zero dimensioni, contenente un singolo numero. Ad esempio, un sistema che modella i dati meteorologici potrebbe rappresentare la temperatura elevata di un singolo giorno (in gradi Fahrenheit) in forma scalare come 85.

  • Quindi, un vettore è un tensore unidimensionale (o di primo grado o del primo ordine), contenente più scalari dello stesso tipo di dati. Ad esempio, un modello meteorologico potrebbe utilizzare le temperature minime, medie e massime per un singolo giorno in forma vettoriale: 62, 77, 85. Ogni componente scalare è una caratteristica, ovvero una dimensione, del vettore, che rappresenta una caratteristica del tempo di quel giorno.

I numeri vettoriali possono rappresentare oggetti complessi come parole, immagini, video e audio generati da un modello di Apprendimento automatico (ML). Questi dati vettoriali ad alta dimensionalità, contenenti più funzionalità, sono essenziali per il machine learning, l'elaborazione del linguaggio naturale e altre attività di AI. Alcuni esempi di utilizzo dei dati vettoriali includono:

  • Testo: i chatbot devono comprendere il linguaggio naturale affidandosi a vettori che rappresentano parole, paragrafi e interi documenti.

  • Immagini: i pixel delle immagini possono essere descritti da dati numerici e combinati per costituire un vettore altamente dimensionale per quell'immagine.

  • Voce o audio: come le immagini, anche le onde sonore possono essere suddivise in dati numerici e rappresentate come vettori, abilitando applicazioni di AI come il riconoscimento vocale.
Mixture of Experts | Podcast

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Cosa sono gli incorporamenti vettoriali?

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:

  • gatto [0,2, -0,4, 0,7]
  • cane [0.6, 0.1, 0.5]

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 colonna portante 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.

Come si utilizzano i database vettoriali?

I database vettoriali svolgono tre funzioni chiave nelle applicazioni di AI e ML:

  • Storage vettoriale
  • Indicizzazione vettoriale
  • Ricerca di similarità basata su query o prompt

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.

Storage vettoriale

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.

Indicizzazione vettoriale

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).

  • HNSW è popolare perché crea una struttura ad albero.Ogni nodo dell'albero mostra un insieme di vettori completi delle gerarchie in ciascuno di essi.Le similarità tra i vettori sono mostrate ai margini tra i nodi.

  • LSH indicizza i contenuti utilizzando una ricerca di prossimità. Per una maggiore velocità, l'indice può essere ottimizzato restituendo un risultato approssimativo ma non esaustivo.

  • PQ converte ogni set di dati in una rappresentazione breve ed efficiente in termini di memoria.Vengono memorizzate solo le rappresentazioni brevi, anziché tutti i vettori.

Ricerca di similarità basata su query o prompt

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.

Vantaggi dei database vettoriali

I database vettoriali sono alla base di molte applicazioni AI aziendali, perché possono offrire molti vantaggi:

  • Velocità e prestazioni
  • Scalabilità
  • Costo di proprietà inferiore
  • Gestione dei dati
  • Flessibilità
Velocità e prestazioni

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.

Scalabilità

I database vettoriali possono memorizzare 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.

Costo di proprietà inferiore

Poiché consentono un recupero più rapido dei dati, i database vettoriali velocizzano l'addestramento dei foundation model.

Gestione dei dati

I database vettoriali tipicamente forniscono funzionalità integrate per aggiornare e inserire facilmente nuovi dati non strutturati.

Flessibilità

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.

Considerazioni sui database vettoriali e sulle strategie di dati

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:

  • Tipi di database vettoriali
  • Integrazione con un ecosistema di dati
  • Quando l'indicizzazione vettoriale non è ottimale
  • Strumenti per la creazione e la distribuzione di database vettoriali

Tipi di database vettoriali

Sono disponibili alcune alternative tra cui scegliere.

  • Database autonomi, proprietari e completamente vettoriali, come Pinecone.

  • Soluzioni open source come Weaviate o Milvus, che forniscono API RESTful integrate e supportano i linguaggi di programmazione Python e Java.

  • I data lakehouse con funzionalità di database vettoriali integrate, come IBM watsonx.data.

  • Database vettoriali ed estensioni per la ricerca nei database come l'estensione open source pgvector di PostgreSQL, che fornisce funzionalità di ricerca per similarità vettoriale.Un database vettoriale SQL può combinare i vantaggi di un database SQL tradizionale con la potenza di un database vettoriale.

Integrazione con un ecosistema di dati

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.

Quando l'indicizzazione vettoriale non è ottimale

L'utilizzo di un database vettoriale e di un indice è particolarmente adatto per le applicazioni o le 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.

Strumenti per la creazione e la distribuzione di database vettoriali

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 database 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.

Casi d'uso dei database vettoriali

Le applicazioni dei database vettoriali sono numerose e in crescita. Alcuni dei principali casi d'uso includono:

  • Retrieval-augmented generation (RAG)
  • AI conversazionale
  • Motori di raccomandazione
  • Ricerca vettoriale

Retrieval-augmented generation (RAG)

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.

AI conversazionale

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.

Motori di raccomandazione

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.

Ricerca vettoriale

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.

  • Ricerca semantica: esegui le ricerche in base al significato o al contesto di una query, per risultati più precisi e rilevanti. Poiché sia le parole che le frasi possono essere rappresentate come vettori, le funzioni di ricerca vettoriale semantica comprendono meglio l'intenzione dell'utente rispetto a parole chiave generiche.

  • Ricerca per similarità e applicazioni: trova immagini, audio, video o dati di testo simili per supportare il riconoscimento avanzato di immagini e voce e l'elaborazione del linguaggio naturale. Immagini e video possono essere indicizzati e recuperati in base alla similarità.
Soluzioni correlate

Soluzioni correlate

IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda con l'esperienza leader di settore e il portfolio di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live
Note a piè di pagina

1 Gartner Innovation Insight: Vector DatabasesGartner, 4 settembre 2023..

2 2024 Strategic Roadmap for StorageGartner, 27 maggio 2024.