🚀 Prova Zilliz Cloud, la versione completamente gestita di Milvus, gratuitamente—sperimenta prestazioni 10 volte più veloci! Prova Ora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Svelate le 10 parole chiave che domineranno la comunità Milvus nel 2023

Svelate le 10 parole chiave che domineranno la comunità Milvus nel 2023

  • Engineering
January 21, 2024
Jack Li, Fendy Feng

Mentre concludiamo il 2023, rivediamo il notevole percorso della comunità Milvus: 25.000 stelle GitHub, il lancio di Milvus 2.3.0 e il superamento di 10 milioni di download di immagini Docker. Questo post esplora il cuore della comunità analizzando la cronologia delle chat e rivelando le 10 principali parole chiave delle discussioni.

#1 Version - L'ascesa dell'AIGC guida la rapida iterazione di Milvus

Sorprendentemente, "Versione" è emersa come la parola chiave più discussa nel 2023. Questa rivelazione è radicata nell'ondata di AI dell'anno, con i database vettoriali come infrastruttura critica per affrontare i problemi di allucinazione delle applicazioni AIGC.

L'entusiasmo per i database vettoriali spinge Milvus a una fase di rapida iterazione. La comunità ha assistito al rilascio di venti versioni solo nel 2023, soddisfacendo le richieste degli sviluppatori AIGC che inondano la comunità di domande sulla scelta della versione ottimale di Milvus per le varie applicazioni. Agli utenti che si trovano ad affrontare questi aggiornamenti, consigliamo di adottare l'ultima versione per ottenere funzionalità e prestazioni migliori.

Se siete interessati alla pianificazione dei rilasci di Milvus, consultate la pagina della roadmap di Milvus sul sito ufficiale.

La "ricerca" occupa il secondo posto, riflettendo il suo ruolo fondamentale nelle operazioni di database. Milvus supporta diverse funzionalità di ricerca, dalla ricerca Top-K ANN alla ricerca filtrata scalare e alla ricerca per intervallo. L'imminente rilascio di Milvus 3.0 (Beta) promette la ricerca per parole chiave (sparse embeddings), che molti sviluppatori di app RAG attendono con ansia.

Le discussioni della comunità sulla ricerca si concentrano sulle prestazioni, sulle capacità e sui principi. Gli utenti pongono spesso domande sul filtraggio degli attributi, sull'impostazione dei valori di soglia degli indici e sulla risoluzione dei problemi di latenza. Risorse come la documentazione sulle query e le ricerche, le proposte di miglioramento di Milvus (MEP) e le discussioni su Discord sono diventate i riferimenti di riferimento per districarsi tra le complessità della ricerca in Milvus.

#3 Memoria - compromessi tra prestazioni e accuratezza per ridurre al minimo l'overhead di memoria

Anche la "memoria" è stata al centro delle discussioni della comunità nell'ultimo anno. Come tipo di dati caratteristici, i vettori hanno intrinsecamente dimensioni elevate. Memorizzare i vettori in memoria è una pratica comune per ottenere prestazioni ottimali, ma il volume crescente di dati limita la memoria disponibile. Milvus ottimizza l'uso della memoria adottando tecniche come MMap e DiskANN.

Tuttavia, ottenere contemporaneamente un basso utilizzo di memoria, prestazioni eccellenti e un'elevata accuratezza in un sistema di database rimane complesso e richiede compromessi tra prestazioni e accuratezza per ridurre al minimo l'overhead di memoria.

Nel caso dei contenuti generati dall'intelligenza artificiale (Artificial Intelligence Generated Content, AIGC), gli sviluppatori di solito danno la priorità a risposte rapide e all'accuratezza dei risultati rispetto a requisiti di prestazioni rigorosi. L'aggiunta di Milvus a MMap e DiskANN riduce al minimo l'uso della memoria, massimizzando l'elaborazione dei dati e l'accuratezza dei risultati, raggiungendo un equilibrio che si allinea alle esigenze pratiche delle applicazioni AIGC.

#4 Insert - inserimento dei dati senza problemi

L'efficienza dell'inserimento dei dati è una preoccupazione cruciale per gli sviluppatori, tanto che la comunità Milvus discute spesso sull'ottimizzazione della velocità di inserimento. Milvus eccelle nell'inserimento efficiente di dati in streaming e nella creazione di indici, grazie alla sua abile separazione di dati in streaming e batch. Questa capacità lo distingue come soluzione altamente performante rispetto ad altri fornitori di database vettoriali, come Pinecone.

Ecco alcune preziose informazioni e raccomandazioni sull'inserimento dei dati:

  • Inserimento in batch: Optate per l'inserimento in batch rispetto a quello su singola riga per una maggiore efficienza. In particolare, l'inserimento da file supera in velocità l'inserimento in batch. Quando si gestiscono grandi insiemi di dati che superano i dieci milioni di record, si consiglia di utilizzare l'interfaccia bulk_insert per semplificare e accelerare il processo di importazione.

  • Uso strategico di flush(): Piuttosto che invocare l'interfaccia flush() dopo ogni batch, effettuare una singola chiamata dopo aver completato l'inserimento di tutti i dati. Un uso eccessivo dell'interfaccia flush() tra un batch e l'altro può portare alla generazione di file di segmento frammentati, con un notevole onere di compattazione per il sistema.

  • Deduplicazione delle chiavi primarie: Milvus non esegue la deduplicazione delle chiavi primarie quando si utilizza l'interfaccia insert per l'inserimento dei dati. Se avete bisogno di deduplicare le chiavi primarie, vi consigliamo di usare l'interfaccia upsert. Tuttavia, le prestazioni di inserimento di upsertsono inferiori a quelle di insert, a causa di un'operazione di interrogazione interna aggiuntiva.

#5 Configurazione - decodificare il labirinto dei parametri

Milvus è un database vettoriale distribuito che integra molti componenti di terze parti, come l'archiviazione di oggetti, le code di messaggi e l'Etcd. Gli utenti sono alle prese con la regolazione dei parametri e la comprensione del loro impatto sulle prestazioni di Milvus, rendendo la "configurazione" un argomento frequentemente discusso.

Tra tutte le domande sulle configurazioni, "quali parametri regolare" è probabilmente l'aspetto più impegnativo, poiché i parametri variano in situazioni diverse. Ad esempio, l'ottimizzazione dei parametri delle prestazioni di ricerca è diversa dall'ottimizzazione dei parametri delle prestazioni di inserimento e si basa molto sull'esperienza pratica.

Una volta individuati "quali parametri regolare", le successive domande su "come regolare" diventano più gestibili. Per le procedure specifiche, consultare la nostra documentazione Configurare Milvus. La grande novità è che Milvus supporta le regolazioni dinamiche dei parametri dalla versione 2.3.0, eliminando la necessità di riavviare il sistema per rendere effettive le modifiche. Per le procedure specifiche, consultare Configurare Milvus al volo.

#6 Registri - navigare nella bussola della risoluzione dei problemi

I "registri" servono come bussola per la risoluzione dei problemi. Gli utenti hanno cercato nella comunità indicazioni sull'esportazione dei log di Milvus, sulla regolazione dei livelli di log e sull'integrazione con sistemi come Loki di Grafana. Ecco alcuni suggerimenti sui log di Milvus.

  • Come visualizzare ed esportare i log di Milvus: È possibile esportare facilmente i log di Milvus con lo script export-milvus-log.sh, disponibile sul repository GitHub.

  • Livello di log: Milvus ha diversi livelli di log per adattarsi a diversi casi d'uso. Il livello info è sufficiente per la maggior parte dei casi, mentre il livello debug è per il debug. Un eccesso di log di Milvus può segnalare livelli di log non configurati correttamente.

  • Si consiglia di integrare i registri di Milvus con un sistema di raccolta dei registri come Loki per semplificare il recupero dei registri nella risoluzione dei problemi futuri.

Cluster #7 - scalare per gli ambienti di produzione

Data l'identità di Milvus come database vettoriale distribuito, il termine "cluster" è un argomento di discussione frequente nella comunità. Le conversazioni vertono sulla scalabilità dei dati in un cluster, sulla migrazione dei dati e sul backup e la sincronizzazione dei dati.

Negli ambienti di produzione, una robusta scalabilità e un'elevata disponibilità sono requisiti standard per i sistemi di database distribuiti. L'architettura di separazione storage-computazione di Milvus consente una scalabilità dei dati senza soluzione di continuità, espandendo le risorse per i nodi di calcolo e di storage, in modo da poter gestire una scala di dati illimitata. Milvus offre inoltre un'elevata disponibilità grazie a un'architettura multi-replica e a solide funzionalità di backup e sincronizzazione. Per ulteriori informazioni, consultare Coordinator HA.

#8 Documentazione - la porta d'accesso alla comprensione di Milvus

"Documentazione" è un'altra parola chiave frequentemente sollevata nelle discussioni della comunità, spesso legata a domande sull'esistenza di una pagina di documentazione per una specifica funzionalità e su dove trovarla.

Come porta d'accesso alla comprensione di Milvus, circa l'80% delle richieste della comunità trova risposta nella documentazione ufficiale. Vi consigliamo di leggere la documentazione prima di utilizzare Milvus o di incontrare problemi. Inoltre, è possibile esplorare gli esempi di codice nei vari repository dell'SDK per capire come utilizzare Milvus.

#9 Deployment - semplificare il viaggio in Milvus

La semplicità di distribuzione rimane l'obiettivo costante del team Milvus. Per rispettare questo impegno, abbiamo introdotto Milvus Lite, un'alternativa leggera a Milvus che è completamente funzionale ma non ha dipendenze da K8s o Docker.

Abbiamo ulteriormente semplificato la distribuzione introducendo la soluzione di messaggistica NATS, più leggera, e consolidando i componenti dei nodi. In risposta al feedback degli utenti, ci stiamo preparando a rilasciare una versione standalone senza dipendenze, con continui sforzi per migliorare le funzionalità e semplificare le operazioni di distribuzione. La rapida iterazione di Milvus dimostra il continuo impegno della comunità nel perfezionamento del processo di distribuzione.

#10 Cancellazione - svelare l'impatto

Le discussioni prevalenti sulla "cancellazione" ruotano intorno al conteggio dei dati invariati dopo la cancellazione, alla continua recuperabilità dei dati cancellati e al fallimento del recupero dello spazio su disco dopo la cancellazione.

Milvus 2.3 introduce l'espressione count(*) per affrontare gli aggiornamenti ritardati del conteggio delle entità. La persistenza dei dati cancellati nelle query è probabilmente dovuta all'uso inappropriato dei modelli di consistenza dei dati. I problemi legati al recupero dello spazio su disco hanno portato a ridisegnare il meccanismo di garbage collection di Milvus, che stabilisce un periodo di attesa prima della completa cancellazione dei dati. Questo approccio consente una finestra temporale per un potenziale recupero.

Conclusione

Le prime 10 parole chiave offrono uno sguardo alle vivaci discussioni all'interno della comunità Milvus. Mentre Milvus continua a evolversi, la comunità rimane una risorsa inestimabile per gli sviluppatori che cercano soluzioni, condividono esperienze e contribuiscono a far progredire i database vettoriali nell'era dell'intelligenza artificiale.

Unitevi a questo entusiasmante viaggio unendovi al nostro canale Discord nel 2024. Lì potrete confrontarvi con i nostri brillanti ingegneri e connettervi con gli appassionati di Milvus che la pensano allo stesso modo. Inoltre, partecipate al Milvus Community Lunch and Learn ogni martedì dalle 12:00 alle 12:30 PST. Condividete i vostri pensieri, le vostre domande e i vostri feedback, perché ogni contributo contribuisce allo spirito collaborativo che spinge Milvus in avanti. La vostra partecipazione attiva non è solo gradita, è apprezzata. Innoviamo insieme!

Like the article? Spread the word

Continua a Leggere