Che cos'è Milvus?

Primo piano di un dito che tocca uno schermo

Autori

Matthew Kosinski

Staff Editor

IBM Think

Che cos'è Milvus?

Milvus è un database vettoriale open source sviluppato da Zilliz. Milvus è una celebre soluzione di storage scalabile per grandi quantità di incorporamenti vettoriali e supporta le ricerche per similarità di dati vettoriali con prestazioni elevate.

Zilliz ha sviluppato Milvus nel 2017 e ha contribuito con il progetto alla Linux Foundation nel 2020. Milvus è ora disponibile sia come software open source con la licenza Apache 2.0 sia come cloud service completamente gestito da Zilliz.

Cosa sono i database vettoriali e perché sono importanti?

I database vettoriali memorizzano e gestiscono set di dati sotto forma di vettori. Possono aiutare le organizzazioni a gestire dati non strutturati e rivestono un'importanza critica nelle attività avanzate di intelligenza artificiale (AI) e machine learning(ML) .

I vettori sono array di numeri che rappresentano concetti e oggetti complessi, come parole e immagini.  

I dati non strutturati, come testo, video e audio, costituiscono oggi una parte significativa dei dati aziendali, tuttavia i database tradizionali sono spesso inadeguati per organizzare e gestire questi dati.  

Le organizzazioni possono inviare questi dati a modelli di incorporamento specializzati nel deep learning, che producono come output rappresentazioni vettoriali chiamate "incorporamenti". Ad esempio, la parola "gatto" potrebbe essere rappresentata dal vettore [0,2, -0,4, 0,7], mentre la parola "cane" potrebbe essere rappresentata da [0,6, 0,1, 0,5].

La trasformazione dei dati in vettori consente alle organizzazioni di memorizzare diversi tipi di dati non strutturati in un formato condiviso in un unico database vettoriale.  

I vettori aiutano anche le organizzazioni a sbloccare il valore di questi dati per l'AI e il machine learning (ML). I vettori catturano le relazioni semantiche tra gli elementi, consentendo un'elaborazione efficace da parte di modelli linguistici di grandi dimensioni (LLM) e strumenti di AI generativa (gen AI). La maggior parte delle applicazioni avanzate di AI e ML si basa attualmente su vettori per l'addestramento e la generazione di contenuti.

Come altri database vettoriali, Milvus offre alle organizzazioni un modo per gestire e organizzare i vettori di incorporazione. Il database vettoriale Milvus offre uno storage altamente scalabile e funzionalità di ricerca vettoriale efficienti, che lo hanno reso una scelta popolare per retrieval-augmented generation (RAG), sistemi di raccomandazione e altre applicazioni di AI.  

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. 

L'architettura di Milvus

Milvus è un database vettoriale cloud-native con un'architettura multilivello basata su microservizi. Milvus separa storage e risorse di elaborazione, il che consente alle organizzazioni di scalare ogni livello in modo indipendente e orizzontale.

Milvus è compatibile con diversi modelli di incorporamento. Le organizzazioni possono collegare i propri modelli a Milvus, il quale inserisce gli incorporamenti insieme ai metadati e ad altre informazioni pertinenti. Milvus supporta i caricamenti degli incorporamenti in streaming e in batch

Milvus consiste di 4 livelli:

  • Livello di accesso: questo è il livello rivolto all'esterno, che accetta gli input dagli utenti e dai servizi e restituisce gli output.   

  • Servizio di coordinamento: Zilliz si riferisce a questo livello come al "cervello" del sistema perché orchestra il bilanciamento del carico, la gestione dei dati, l'esecuzione delle query e altre attività importanti.  

  • Nodi di lavoro: questo livello esegue query, aggiorna i dati e crea indici.  

  • Livello di object storage: questo livello include un archivio di metadati, un log broker che registra le modifiche ai dati in tempo reale e un object storage che contiene snapshot dei log, file di indice e risultati di calcolo intermedi.

Tipi di implementazioni Milvus

 

  • Milvus Lite: una libreria Python che consente agli utenti di eseguire Milvus in ambienti locali. Milvus Lite supporta attualmente Ubuntu e macOS, ma non Microsoft Windows.

  • Milvus Standalone: un database Milvus completo confezionato in un'unica immagine Docker ed eseguito su una sola macchina. 

  • Milvus Cluster: un database vettoriale distribuito che distribuisce i servizi tra gruppi di nodi in un cluster Kubernetes.  

  • Zilliz Cloud: la versione completamente gestita di Milvus.
Mixture of Experts | 12 dicembre, episodio 85

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.

Caratteristiche e funzionalità chiave di Milvus

Funzionalità di ricerca avanzate 

Milvus supporta le ricerche per similarità vettoriale ad alte prestazioni, un tipo di ricerca vettoriale che restituisce risultati semanticamente simili a una query. Il beneficio della ricerca per similarità è che non si limita alle corrispondenze esatte, come farebbe invece una ricerca tradizionale per parola chiave.  

Ad esempio, una ricerca per parola chiave "migliore pizzeria" restituirebbe solo risultati contenenti le parole "migliore" e "pizzeria", mentre una ricerca per similarità utilizzando le stesse parole chiave troverebbe tutti i risultati relativi a pizzerie altamente consigliate, anche se le parole esatte "migliore pizzeria" non sono utilizzate nei contenuti.

Milvus supporta diversi tipi di ricerca per similarità, tra cui il top-k approximate nearest neighbor (RNA) e l'intervallo RNA.  

Milvus supporta anche le ricerche ibride, che combinano le ricerche semantiche vettoriali con altri criteri, come il filtro dei metadati o la ricerca per parole chiave.

Le ricerche ibride possono rendere le ricerche più efficienti e più pertinenti. Prendiamo come esempio una ricerca che combina parole chiave e ricerca vettoriale; la ricerca può prima utilizzare parole chiave specifiche per filtrare i risultati in base alle corrispondenze esatte, quindi utilizzare la ricerca per similarità vettoriale per cercare nei risultati filtrati i contenuti semanticamente più rilevanti.  

Indicizzazione 

Milvus supporta diversi tipi di indicizzazione, tra cui hierarchical navigable small world (HNSW), inverted file (IVF) e indici basati su GPU.

I vettori di indicizzazione possono aiutare a velocizzare le ricerche. Ad esempio, HNSW raggruppa vettori simili durante il processo di creazione dell'indice, facilitando la ricerca più rapida dei risultati pertinenti

.
Scalabilità 

I livelli di Milvus possono scalare indipendentemente l'uno dall'altro, il che può offrire alle organizzazioni un modo efficace in termini di costi e risorse per gestire enormi quantità di dati vettoriali e ricerche intensive.

Integrazioni e compatibilità 

Milvus offre numerosi kit di sviluppo software (SDK) per supportare lo sviluppo in vari linguaggi, tra cui Python (pymilvus), Java e Go.

Milvus può anche integrarsi con strumenti di analytics come Apache Spark, framework come LangChain e modelli AI come IBM watsonx, Llama e modelli GPT di OpenAI. 

Open source

Una vasta community open source contribuisce alla correzione di bug, agli aggiornamenti e ad altri miglioramenti ai repository GitHub di Milvus.

Milvus e altri database vettoriali a confronto

Milvus e Pinecone

Pinecone e Milvus offrono entrambi ricerca a bassa latenza e storage scalabile, tuttavia Pinecone è un database vettoriale proprietario ed è disponibile solo come servizio gestito.

Milvus e Weaviate

Come Milvus, anche Weaviate è open source e supporta le ricerche ibride. Una differenza fondamentale è che Milvus offre più tipi di indicizzazione rispetto a Weaviate.

Milvus e Qdrant

Qdrant, un altro database vettoriale open source, è noto per le sue forti funzionalità di filtro dei metadati. Sebbene Qdrant sia adatto per usi su scala moderata, Milvus può generalmente gestire volumi più elevati di dati vettoriali.

Milvus e Chroma

Chroma si concentra sulla facilità d'uso e sulle distribuzioni locali rapide. Chroma non ha un'architettura distribuita, il che la rende meno scalabile. Sebbene Chroma sia comunemente usato per la prototipazione e il test, Milvus può supportare una gamma più ampia di casi d'uso.

Casi d'uso comuni di Milvus

Le organizzazioni utilizzano Milvus per supportare numerose applicazioni di AI, tra cui:

  • Retrieval Augmented Generation (RAG)

  • Sistemi di raccomandazione

  • Ricerche sui media 

  • Rilevamento delle anomalie e delle frodi

.

Retrieval Augmented Generation (RAG)

RAG è un'architettura che collega i modelli AI a knowledge base esterne per aiutarli a fornire risultati più pertinenti e accurati.  

Milvus è comune nelle implementazioni RAG a causa del suo supporto per ricerche ibride efficienti. Combinando la comprensione contestuale della ricerca semantica con la precisione della ricerca per parole chiave e i filtri dei metadati, Milvus può aiutare a trovare documenti pertinenti, frammenti di codice e altre informazioni dalle fonti RAG.

CacheGPT, una cache semantica open source per LLM sviluppata da Zilliz, aiuta Milvus a supportare le implementazioni RAG. CacheGPT memorizza le risposte delle app di AI generativa come incorporamenti vettoriali.

I servizi connessi, come le interfacce RAG, non devono effettuare una chiamata API all'AI per ogni ricerca. Possono invece prima controllare la cache e chiamare l'AI solo se non hanno trovato una risposta.

Sistemi di raccomandazione

Milvus è popolare tra i sistemi di raccomandazione che abbinano contenuti, prodotti e annunci agli utenti in base ai comportamenti passati. 

Le preferenze dell'utente possono essere rappresentate come vettori e una ricerca per similarità può fare emergere le rappresentazioni vettoriali di prodotti, annunci e contenuti vicini alle preferenze dell'utente.

Ricerche sui media

Le funzionalità di ricerca per similarità di Milvus possono aiutare a semplificare la ricerca di immagini, audio, video e altri supporti.

Rilevamento di frodi e anomalie

Milvus può essere utilizzato per aiutare a individuare i difetti nei prodotti, confrontando i vettori delle immagini dei prodotti con i vettori che rappresentano le forme corrette di tali prodotti. Le differenze tra i vettori potrebbero indicare la presenza di difetti

.

Milvus può anche aiutare a individuare anomalie in altri contesti. Nella cybersecurity, i vettori che rappresentano l'attività di rete autorizzata possono essere confrontati con i vettori che rappresentano le attività dannose note. Allo stesso modo, in campo finanziario, i vettori che rappresentano le transazioni possono essere analizzati per identificare le deviazioni che potrebbero indicare una frode.

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.

Esplora 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 per l'intelligenza artificiale (AI)

I servizi di AI di IBM Consulting aiutano a reinventare il modo in cui le aziende lavorano con l'AI per la trasformazione.

Esplora i servizi AI
Fasi successive

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