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

milvus-logo
LFAI
  • Home
  • Blog
  • Cosa c'è di nuovo in Milvus 2.1 - Verso la semplicità e la velocità

Cosa c'è di nuovo in Milvus 2.1 - Verso la semplicità e la velocità

  • News
August 05, 2022
Xiaofan Luan

What's new in Milvus 2.1 - Towards simplicity and speed Cosa c'è di nuovo in Milvus 2.1 - Verso la semplicità e la velocità

Siamo molto lieti di annunciare che ilrilascio di Milvus 2.1 è ora disponibile dopo sei mesi di duro lavoro da parte di tutti i collaboratori della comunità Milvus. Questa importante iterazione del popolare database vettoriale enfatizza le prestazioni e l'usabilità, due parole chiave fondamentali del nostro obiettivo. Abbiamo aggiunto il supporto per le stringhe, la coda di messaggi Kafka e Milvus incorporato, oltre a una serie di miglioramenti in termini di prestazioni, scalabilità, sicurezza e osservabilità. Milvus 2.1 è un aggiornamento entusiasmante che colmerà l'"ultimo miglio" dal laptop dell'ingegnere algoritmico ai servizi di ricerca di similarità vettoriale a livello di produzione.

Latenza di 5 ms

Milvus supporta già la ricerca approssimativa dei vicini (ANN), un salto sostanziale rispetto al metodo KNN tradizionale. Tuttavia, i problemi di throughput e latenza continuano a sfidare gli utenti che devono gestire scenari di recupero di dati vettoriali su scala miliardaria.

In Milvus 2.1 è stato introdotto un nuovo protocollo di routing che non si affida più alle code di messaggi nel collegamento di recupero, riducendo in modo significativo la latenza di recupero per piccoli insiemi di dati. I risultati dei nostri test dimostrano che Milvus ha abbassato il livello di latenza a 5 ms, soddisfacendo i requisiti dei collegamenti online critici come la ricerca di similarità e la raccomandazione.

Controllo della concorrenza

Milvus 2.1 perfeziona il suo modello di concorrenza introducendo un nuovo modello di valutazione dei costi e uno scheduler di concorrenza. Ora offre un controllo della concorrenza che garantisce che non ci sia un gran numero di richieste simultanee in competizione per le risorse della CPU e della cache, né che la CPU sia sottoutilizzata perché non ci sono abbastanza richieste. Il nuovo livello di scheduler intelligente di Milvus 2.1 unisce anche le query di piccole dimensioni che hanno parametri di richiesta coerenti, offrendo un incredibile aumento delle prestazioni di 3,2 volte in scenari con query di piccole dimensioni e alta concurrency.

Repliche in memoria

Milvus 2.1 introduce repliche in-memory che migliorano la scalabilità e la disponibilità per i piccoli insiemi di dati. Simili alle repliche di sola lettura dei database tradizionali, le repliche in-memory possono scalare orizzontalmente aggiungendo macchine quando il QPS di lettura è elevato. Nel recupero vettoriale di piccoli insiemi di dati, un sistema di raccomandazione deve spesso fornire QPS che superano il limite di prestazioni di una singola macchina. In questi scenari, il throughput del sistema può essere notevolmente migliorato caricando più repliche in memoria. In futuro, introdurremo anche un meccanismo di hedged read basato su repliche in-memory, che richiederà rapidamente altre copie funzionali nel caso in cui il sistema debba riprendersi da guasti e sfrutterà appieno la ridondanza della memoria per migliorare la disponibilità complessiva del sistema.

In-memory replicas allow query services to be based on separate
copies of the same data. Le repliche in-memory consentono ai servizi di interrogazione di basarsi su copie separate degli stessi dati.

Caricamento dei dati più veloce

L'ultimo incremento di prestazioni viene dal caricamento dei dati. Milvus 2.1 ora comprime i log binari con Zstandard (zstd), riducendo in modo significativo le dimensioni dei dati nei magazzini di oggetti e messaggi e l'overhead di rete durante il caricamento dei dati. Inoltre, sono stati introdotti i pool di goroutine, in modo che Milvus possa caricare i segmenti in modo simultaneo con un footprint di memoria controllato e ridurre al minimo il tempo necessario per il ripristino dai guasti e per il caricamento dei dati.

I risultati completi dei benchmark di Milvus 2.1 saranno presto pubblicati sul nostro sito web. Restate sintonizzati.

Supporto per indici stringa e scalari

Con la versione 2.1, Milvus supporta ora le stringhe di lunghezza variabile (VARCHAR) come tipo di dati scalari. VARCHAR può essere utilizzato come chiave primaria da restituire come output e può anche fungere da filtro per gli attributi. Il filtraggio degli attributi è una delle funzioni più richieste dagli utenti di Milvus. Se vi capita spesso di voler "trovare i prodotti più simili a un utente in una fascia di prezzo 200-200-", o "trovare gli articoli che hanno la parola chiave 'database vettoriale' e sono correlati ad argomenti cloud-native", Milvus 2.1 vi piacerà.

Milvus 2.1 supporta anche l'indice scalare invertito per migliorare la velocità di filtraggio basato suMARISA-Tries come struttura dati. Tutti i dati possono ora essere caricati in memoria con un ingombro molto ridotto, il che consente un confronto, un filtraggio e una corrispondenza di prefissi molto più rapidi sulle stringhe. I risultati dei nostri test mostrano che il requisito di memoria di MARISA-trie è solo il 10% di quello dei dizionari Python per caricare tutti i dati in memoria e fornire funzionalità di interrogazione.

Milvus 2.1 combines MARISA-Trie with inverted index to significantly improve filtering speed. Milvus 2.1 combina MARISA-trie con un indice invertito per migliorare significativamente la velocità di filtraggio.

In futuro, Milvus continuerà a concentrarsi sugli sviluppi relativi alle query scalari, a supportare altri tipi di indici scalari e operatori di query e a fornire funzionalità di query scalari basate su disco, il tutto nell'ambito di uno sforzo continuo per ridurre i costi di archiviazione e di utilizzo dei dati scalari.

Supporto Kafka

La nostra comunità ha richiesto da tempo il supporto di Apache Kafka come storage dei messaggi in Milvus. Milvus 2.1 offre ora la possibilità di utilizzarePulsar o Kafka come storage dei messaggi in base alle configurazioni dell'utente, grazie al design di astrazione e incapsulamento di Milvus e all'SDK Go Kafka fornito da Confluent.

SDK Java pronto per la produzione

Con Milvus 2.1, il nostro SDK Java è ora ufficialmente rilasciato. L'SDK Java ha le stesse funzionalità dell'SDK Python, con prestazioni di concorrenza ancora migliori. Nella prossima fase, i collaboratori della nostra comunità miglioreranno gradualmente la documentazione e i casi d'uso dell'SDK Java e contribuiranno a rendere pronti per la produzione anche gli SDK Go e RESTful.

Osservabilità e manutenibilità

Milvus 2.1 aggiunge importantimetriche di monitoraggio come il conteggio degli inserimenti di vettori, la latenza/throughput di ricerca, l'overhead della memoria del nodo e l'overhead della CPU. Inoltre, la nuova versione ottimizza in modo significativo la tenuta dei registri, regolandone i livelli e riducendo la stampa di registri inutili.

Milvus integrato

Milvus ha semplificato notevolmente l'implementazione di servizi di recupero di dati vettoriali massivi su larga scala, ma per gli scienziati che vogliono convalidare gli algoritmi su scala ridotta, Docker o K8s sono ancora troppo inutilmente complicati. Con l'introduzione di Milvus incorporato, è ora possibile installare Milvus utilizzando pip, proprio come con Pyrocksb e Pysqlite. Milvus integrato supporta tutte le funzionalità sia della versione cluster che di quella standalone, consentendo di passare facilmente dal proprio portatile a un ambiente di produzione distribuito senza modificare una sola riga di codice. I progettisti di algoritmi avranno un'esperienza molto migliore quando costruiranno un prototipo con Milvus.

Inoltre, Milvus 2.1 presenta anche alcuni grandi miglioramenti in termini di stabilità e scalabilità, e attendiamo il vostro utilizzo e i vostri feedback.

Il prossimo passo

  • Consultate le note di rilascio dettagliate per tutte le modifiche apportate a Milvus 2.1.
  • InstallateMilvus 2.1 e provate le nuove funzionalità.
  • Unitevi alla nostra comunità Slack e discutete delle nuove funzionalità con migliaia di utenti Milvus in tutto il mondo
  • Seguiteci su Twitter eLinkedIn per ricevere gli aggiornamenti quando i nostri blog sulle nuove funzionalità specifiche saranno pubblicati.

A cura di Songxian Jiang

Like the article? Spread the word

Continua a Leggere