Che cos'è un database vettoriale?
Le informazioni si presentano sotto molte forme. Alcune non sono strutturate, come documenti di testo, contenuti multimediali e audio, mentre altre sono strutturate, come log di applicazioni, tabelle e grafici. Le innovazioni nell'intelligenza artificiale e nel machine learning (IA/ML) ci hanno permesso di creare un nuovo tipo di modelli di ML: i modelli di embedding. Le integrazioni codificano tutti i tipi di dati in vettori che acquisiscono il significato e il contesto di una risorsa. Questo ci consente di trovare risorse simili cercando punti dati vicini. I metodi di ricerca vettoriale aprono la strada a esperienze uniche, come scattare una fotografia con lo smartphone e cercare immagini simili.
I database vettoriali offrono la possibilità di archiviare e recuperare vettori come punti ad alta dimensione. Aggiungono ulteriori funzionalità per la ricerca efficiente e veloce dei vicini più prossimi nello spazio N-dimensionale. In genere sono basati su indici k-nearest neighbor (k-NN) e creati con algoritmi come Hierarchical Navigable Small World (HNSW) e Inverted File Index (IVF). I database vettoriali offrono funzionalità aggiuntive come la gestione dei dati, la tolleranza agli errori, l'autenticazione e il controllo degli accessi e un motore di query.
Come vengono utilizzati i database vettoriali?
I database vettoriali vengono generalmente utilizzati per casi d'uso della ricerca vettoriale come la ricerca visiva, semantica e multimodale. In tempi più recenti, sono stati abbinati a modelli di testo di intelligenza artificiale (IA) generativa per creare agenti intelligenti in grado di fornire esperienze di ricerca conversazionale. Possono inoltre impedire ai modelli di IA generativa di avere allucinazioni, che potrebbero indurre i chatbot a fornire risposte non reali ma credibili.
Il processo di sviluppo inizia con la creazione di un modello di integrazione progettato per codificare un corpus come immagini di prodotti in vettori. Il processo di importazione dei dati viene anche chiamato idratazione dei dati. Lo sviluppatore dell'applicazione può ora utilizzare il database per cercare prodotti simili codificando un'immagine del prodotto e utilizzando il vettore per ricercare immagini simili.
All'interno del modello, gli indici k-nearest neighbor (k-NN) forniscono un recupero efficiente dei vettori e applicano una funzione di distanza come il coseno per classificare i risultati in base alla similarità.
Perché i database vettoriali sono importanti?
Gli sviluppatori possono indicizzare i vettori generati mediante integrazioni in un database vettoriale. Ciò consente loro di trovare risorse simili interrogando i vettori vicini.
I database vettoriali forniscono un metodo per rendere operativi i modelli di integrazione. Lo sviluppo di applicazioni è più produttivo, grazie a funzionalità di database come la gestione delle risorse, i controlli di sicurezza, la scalabilità, la tolleranza agli errori e il recupero efficiente delle informazioni attraverso linguaggi di interrogazione elaborati.
I database vettoriali consentono infine agli sviluppatori di creare esperienze applicative uniche. Ad esempio, gli utenti potrebbero scattare fotografie sui propri smartphone per cercare immagini simili.
Gli sviluppatori possono utilizzare altri tipi di modelli di machine learning per automatizzare l'estrazione di metadati da contenuti come immagini e documenti scansionati. Possono indicizzare i metadati insieme ai vettori per consentire la ricerca ibrida sia su parole chiave che su vettori. Possono inoltre fondere la comprensione semantica nella classifica di pertinenza per migliorare i risultati di ricerca.
Le innovazioni nell'intelligenza artificiale (IA) generativa hanno introdotto nuovi tipi di modelli, come ChatGPT, in grado di generare testo e gestire conversazioni complesse con gli esseri umani. Alcuni possono funzionare in più modalità: ad esempio, consentendo agli utenti di descrivere un paesaggio e generare un'immagine compatibile con la descrizione.
I modelli generativi sono tuttavia soggetti ad allucinazioni, che potrebbero, ad esempio, indurre un chatbot a fuorviare gli utenti. I database vettoriali possono integrare i modelli di IA generativa. Possono fornire una base di conoscenze esterna per i chatbot basati su IA generativa e garantire che forniscano informazioni affidabili.
Chi utilizza i database vettoriali?
I database vettoriali sono destinati agli sviluppatori che desiderano creare esperienze basate sulla ricerca vettoriale. Uno sviluppatore di applicazioni può utilizzare modelli open source, strumenti di machine learning (ML) automatizzati e servizi di modelli di base per generare integrazioni e idratare un database vettoriale. Ciò richiede una competenza di ML minima.
Un team di data scientist e ingegneri può creare integrazioni ottimizzate sapientemente e renderle operative attraverso un database vettoriale. Ciò può aiutarli a fornire più velocemente una soluzione di intelligenza artificiale (IA).
I team operativi traggono vantaggio dalla gestione delle soluzioni come carichi di lavoro di database noti. Possono utilizzare strumenti e playbook esistenti.
Quali sono i vantaggi dei database vettoriali?
I database vettoriali consentono agli sviluppatori di innovare e creare esperienze uniche basate sulla ricerca vettoriale. Possono accelerare lo sviluppo di applicazioni di intelligenza artificiale (IA) e semplificare l'operatività dei carichi di lavoro delle applicazioni basate su IA.
I database vettoriali forniscono un'alternativa alla creazione a partire dai semplici indici k-Nearest Neighbor (k-NN). L'uso, l'ottimizzazione e l'operatività di questo tipo di indice richiedono una grande quantità di competenze e conoscenze ingegneristiche in più.
Un buon database vettoriale fornisce alle applicazioni una base attraverso funzionalità come gestione dei dati, tolleranza agli errori, funzioni di sicurezza critiche e un motore di query. Queste funzionalità consentono agli utenti di rendere operativi i carichi di lavoro per semplificare il dimensionamento, mantenere una scalabilità elevata e supportare i requisiti di sicurezza.
Funzionalità come il motore di query e gli SDK semplificano lo sviluppo delle applicazioni. Inoltre, consentono agli sviluppatori di eseguire query più avanzate (come la ricerca e il filtraggio) sui metadati nell'ambito di una ricerca k-NN. Offrono anche la possibilità di utilizzare modelli ibridi per l'assegnazione del punteggio di pertinenza che combinano modelli di frequenza dei termini tradizionali come BM25 con punteggi vettoriali per migliorare il recupero delle informazioni.
In che modo AWS può supportare i requisiti inerenti ai database vettoriali?
Amazon Web Services (AWS) offre molti servizi per i requisiti inerenti ai database vettoriali:
- Il servizio OpenSearch di Amazon semplifica l'esecuzione di analisi di log interattive, monitoraggio delle applicazioni in tempo reale, ricerca Web e altro ancora. Per i database vettoriali, sono disponibili informazioni sulla ricerca k-nearest neighbor (k-NN) nel servizio OpenSearch.
- L'edizione di Amazon Aurora compatibile con PostgreSQL e Amazon Relational Database Service (Amazon RDS) per PostgreSQL supportano l'estensione pgvector per archiviare integrazioni da modelli di machine learning (ML) nei database ed eseguire efficienti ricerche di similarità.
- Amazon Neptune ML è una nuova funzionalità di Neptune che utilizza reti neurali a grafico (GNN), una tecnica di ML costruita appositamente per i grafici, per rendere le previsioni semplici, facili e più precise utilizzando i dati a grafo.
- La ricerca vettoriale per Amazon MemoryDB supporta l'archiviazione di milioni di vettori, con tempi di risposta delle query e degli aggiornamenti espressi in millisecondi con una singola cifra e decine di migliaia di query al secondo (QPS) con un richiamo superiore al 99%.
- Amazon DocumentDB (compatibile con MongoDB) supporta la ricerca vettoriale, una nuova funzionalità che consente di archiviare, indicizzare e cercare milioni di vettori con tempi di risposta espressi in millisecondi. Con la ricerca vettoriale per Amazon DocumentDB, è possibile configurare, gestire e scalare in maniera semplice i database per le applicazioni ML.
Comincia a utilizzare i database vettoriali su AWS creando un account oggi stesso.
Quali sono le sfide dei database vettoriali?
I database vettoriali condividono molte difficoltà comuni ad altre tecnologie di database. Ci sarà una spinta costante a migliorare la scalabilità, la precisione di approssimazione, le prestazioni di latenza e l'aspetto economico.
Trattandosi di una tecnologia relativamente emergente, molti database vettoriali devono migliorare le competenze di database fondamentali come sicurezza, resilienza, supporto operativo e diversificazione del supporto dei carichi di lavoro. Con il maturare delle applicazioni di intelligenza artificiale (IA) e la conseguente necessità di qualcosa di più della semplice ricerca vettoriale, questo sarà un aspetto importante.
Fasi successive con AWS
Ottieni accesso istantaneo al Piano gratuito di AWS.