Che cos'è un vero database vettoriale?
Questo articolo è stato originariamente pubblicato su The New Stack e viene ripubblicato qui con autorizzazione.
L’emergere di ChatGPT segna l’inizio di una nuova era dell’intelligenza artificiale (AI). L’AI sta rivoluzionando tutto, con i database vettoriali che diventano un’infrastruttura essenziale nella nuova era. Questa tendenza non sorprende, data la crescente domanda di applicazioni basate sull’AI.
Nel post precedente, abbiamo introdotto i dati non strutturati e la loro elaborazione, analisi e interrogazione. Questo post approfondirà i database vettoriali, le loro differenze rispetto ai metodi tradizionali di recupero vettoriale e come selezionare il database vettoriale ottimale per il tuo progetto.
Che cos’è un database vettoriale?
Per rispondere alla domanda: che cos’è un database vettoriale, devi conoscere il ruolo di un database relazionale tradizionale, che archivia ed elabora dati con formati predefiniti in tabelle e di solito esegue ricerche accurate.
Al contrario, i database vettoriali archiviano e recuperano dati non strutturati come immagini, audio, video e testo tramite valori ad alta dimensionalità chiamati embedding. I database vettoriali sono spesso utilizzati per ricerche di similarità usando l’algoritmo Approximate Nearest Neighbor (ANN). Questo algoritmo organizza i dati in base alle relazioni spaziali e consente di trovare il vicino più prossimo di un determinato punto di query in un grande dataset di punti.
Con l’ascesa di ChatGPT, i database vettoriali sono diventati ancora più essenziali per affrontare i problemi dei large language model (LLM).
Database vettoriali vs. librerie di ricerca vettoriale
I database vettoriali specializzati non sono l’unico stack per le ricerche di similarità. Prima dell’avvento dei database vettoriali, esistevano molte librerie di ricerca vettoriale, come FAISS, ScaNN e HNSW, per il recupero vettoriale. Entrambi gli stack possono interrogare vettori, ma quali sono le differenze?
Le librerie di ricerca vettoriale hanno funzionalità limitate. Possono gestire solo una piccola quantità di dati e faticano a scalare con dataset più grandi e una maggiore domanda da parte degli utenti. Non consentono modifiche ai loro dati di indice e non possono essere interrogate durante l’importazione dei dati.
Al contrario, i database vettoriali come Milvus e Zilliz Cloud sono una soluzione più ottimale per l’archiviazione e il recupero di dati non strutturati. Possono archiviare e interrogare milioni o persino miliardi di vettori fornendo al contempo risposte in tempo reale; sono altamente scalabili per soddisfare le crescenti esigenze aziendali degli utenti.
I database vettoriali specializzati offrono molte funzionalità intuitive, tra cui supporto CRUD (create, read, update, and delete), disaster recovery, controllo degli accessi basato sui ruoli e multi-tenancy. Molti fornitori di database vettoriali, come Zilliz, offrono anche servizi cloud completamente gestiti per aiutare gli utenti a eliminare il peso delle attività di manutenzione e a concentrarsi sul proprio business.
Inoltre, i database vettoriali operano su un livello di astrazione diverso rispetto alle librerie di ricerca vettoriale, fungendo da servizi completi anziché da componenti per l’integrazione. Per illustrare l’importanza di questa astrazione, esaminiamo il processo di aggiunta di un elemento di dati non strutturati a un database vettoriale come Milvus.
from pymilvus import Collectioncollection = Collection('book')mr = collection.insert(data)
Come puoi vedere, inserire dati non strutturati in Milvus è facilissimo con appena tre righe di codice. Tuttavia, è complicato quando si usano librerie come FAISS o ScaNN. Queste librerie richiedono di ricreare manualmente l’intero indice ai checkpoint.
Database vettoriali vs. plugin di ricerca vettoriale
Poiché i database vettoriali stanno attirando attenzione, molti database e sistemi di ricerca convenzionali come Clickhouse, Elasticsearch, MongoDB e Databricks si stanno affrettando a integrare plugin di ricerca vettoriale integrati. Elasticsearch 8.0, ad esempio, ha aggiornato funzionalità come l'inserimento di vettori e la ricerca ANN a cui è possibile accedere tramite endpoint API RESTful.
Tuttavia, è importante notare che i plugin di ricerca vettoriale non offrono un approccio completo alla gestione degli embedding e alla ricerca vettoriale. Sono semplicemente componenti aggiuntivi per sistemi esistenti, il che può limitarne le prestazioni in termini di latenza, capacità e throughput. Cercare di creare applicazioni per dati non strutturati sopra un database tradizionale è come inserire batterie al litio e motori elettrici all'interno del telaio di un'auto a benzina, il che non è una grande idea.
I database vettoriali sono essenziali per l'aumento degli LLM
Con il prosperare degli LLM e delle applicazioni AI, i database vettoriali stanno diventando un'infrastruttura vitale per gli stack tecnologici relativi all'AI.
Sebbene gli LLM siano impressionanti nella generazione di contenuti, hanno molte limitazioni. Ad esempio, sono suscettibili ad allucinazioni a causa della mancanza di conoscenze aggiornate e specifiche del dominio. Quel che è peggio, il limite di token degli LLM impedisce di aggiungere ampie informazioni contestuali ai prompt quando si effettuano query.
Un database vettoriale può fungere da memoria a lungo termine degli LLM ed espandere la base di conoscenza degli LLM. Archivia dati privati o informazioni specifiche del dominio al di fuori dell'LLM sotto forma di embedding. Quando un utente fa una domanda, il database vettoriale cerca i risultati topk più rilevanti per quella domanda. Quindi, i risultati vengono combinati con la query originale per creare un prompt che fornisca un contesto completo affinché l'LLM generi risposte più accurate. Questa soluzione è anche nota come stack CVP (ChatGPT/LLMs + database vettoriale + prompt-as-code).
Gli LLM addebitano costi per ogni token nelle query. Quindi, se gli utenti fanno domande simili o ripetitive, verrebbero addebitati più volte, con conseguenti costi elevati. Durante le ore di punta, le risposte possono essere molto lente. Per risparmiare tempo e fatica, gli sviluppatori possono integrare un database vettoriale con GPTCache, una cache semantica open-source che archivia le risposte degli LLM. In questo modo, quando l'utente pone una domanda a cui l'LLM ha già risposto in precedenza, il database vettoriale recupera le risposte da GPTCache e le restituisce rapidamente agli utenti senza chiamare l'LLM.
Architettura OSS Chat
Il grafico sopra mostra l'architettura di OSS Chat, un Chatbot AI che sfrutta Zilliz Cloud e GPTCache.
Oltre all'aumento degli LLM, i database vettoriali sono preziosi per molti casi d'uso, inclusi sistemi di raccomandazione, ricerche di similarità tra immagini/audio/video/testo, rilevamento di anomalie, sistemi di risposta alle domande e ricerche di similarità molecolare.
Come scegliere il database vettoriale più adatto al tuo progetto?
Stai faticando a scegliere un database vettoriale adatto ai tuoi progetti? Con numerose opzioni disponibili, può essere opprimente. Fortunatamente, c'è una soluzione per aiutarti a prendere una decisione informata.
VectorDBBench è uno strumento di benchmarking open-source per database vettoriali. Valuta vari sistemi di database vettoriali in termini di QPS, latenza, capacità e altre metriche. È scritto in Python e concesso in licenza sotto la licenza open-source MIT, quindi chiunque può usarlo, modificarlo e distribuirlo liberamente.
Con VectorDBBench, puoi selezionare il miglior database vettoriale in base alle prestazioni effettive anziché alle affermazioni di marketing. Per iniziare, consulta questo tutorial.
Riepilogo
Questo post offre una panoramica dei database vettoriali, spiegando in che modo differiscono dalle librerie di recupero vettoriale e dai plugin di ricerca vettoriale basati sui tradizionali database relazionali. Soprattutto, presentiamo VectorDBBench, uno strumento di benchmarking open-source per aiutare gli utenti a fare scelte informate.
Nel seguente post, presenteremo Milvus, il primo e più utilizzato database vettoriale open-source al mondo, e ti guideremo su come iniziare con Milvus.
Continua a leggere
Stop Building AI Data Infra for the Wrong Stage
Learn how AI data infrastructure should evolve from prototype to enterprise scale, and when Vector Lakebase becomes the right architecture for AI apps.

Introducing Functions and Model Inference on Zilliz Cloud: Automatic Embedding and Reranking with Hosted Models
Zilliz Cloud Functions auto-generate embeddings via OpenAI, Voyage AI, Cohere, or Zilliz Hosted Models. Built-in reranking — just insert text and search.

Zilliz Cloud Update: Tiered Storage, Business Critical Plan, Cross-Region Backup, and Pricing Changes
This release offers a rebuilt tiered storage with lower costs, a new Business Critical plan for enhanced security, and pricing updates, among other features.



