Esplorando le meraviglie di Knowhere 2.0
Appena sfornato, Milvus 2.3 è arrivato con molti aggiornamenti rivoluzionari. In prima linea tra questi miglioramenti c’è Knowhere 2.0, un aggiornamento trasformativo che promette di portare Milvus a nuovi livelli.
Unisciti a noi in questo post del blog mentre approfondiamo Knowhere 2.0, esplorando le sue funzionalità rivoluzionarie, le ottimizzazioni delle prestazioni e i principi di progettazione che lo rendono una forza distintiva nei database vettoriali.
Che cos’è Knowhere?
Knowhere è il motore di ricerca vettoriale principale di Milvus. Immagina il database vettoriale come il vasto Universo Marvel; Knowhere è il suo quartier generale definitivo. La missione principale di Knowhere è eseguire ricerche approssimate dei vicini più prossimi (ANNS) costruendo indici a bassa latenza.
Knowhere 2.0 e le sue nuove capacità
Abbiamo lavorato alla ristrutturazione e all’aggiornamento di Knowhere da luglio 2022. Dopo discussioni, progettazione, sviluppo e test incessanti, Knowhere 2.0 ha debuttato con Milvus 2.3 alla fine di agosto 2023. Questa nuova versione apporta molti miglioramenti, tra cui il supporto per l’indice GPU, la similarità coseno, l’indice ScaNN e l’architettura Arm. Knowhere aggiornato avvantaggia utenti e sviluppatori, rendendolo una potenza all’interno di Milvus. Ora esploriamo le sue funzionalità principali.
Supporto per gli indici GPU
Nvidia ha contribuito con gli indici GPU_FLAT e GPU_IVFPQ dalla sua libreria di ricerca vettoriale, RAFT, a Knowhere 2.0. Questa aggiunta accelera significativamente le ricerche negli indici, con Milvus che ottiene notevoli miglioramenti del throughput su Nvidia A100, quasi 70 volte per SIFT1M.
Milvus QPS GPU vs. CPU
Per ulteriori informazioni sull’indice GPU, consulta la documentazione di Milvus.
Supporto per la similarità coseno
Nelle versioni precedenti di Knowhere, gli utenti dovevano utilizzare l’Inner Product e normalizzare i vettori prima dell’inserimento dei vettori per usare la similarità coseno. Questo processo era molto costoso, di difficile accesso e richiedeva agli utenti una maggiore conoscenza teorica.
Knowhere 2.0 supporta nativamente la distanza coseno, normalizza automaticamente i vettori in ingresso all’interno della libreria e abbina i tipi di indice corrispondenti, migliorando significativamente l’esperienza utente.
Supporto per l’indice ScaNN
ScaNN, o FastScan, è un indice open-source approximate nearest neighbor (ANN) implementato da FAISS. Utilizza una codifica PQ più piccola e i set di istruzioni corrispondenti per accedere ai registri della CPU, ottenendo eccellenti prestazioni di indicizzazione.
Knowhere 2.0 ora supporta nativamente l’indice ScaNN. Con Knowhere 2.0, Milvus 2.3 raggiunge sette volte il QPS di IVF_FLAT e 1,2 volte quello di HNSW, con un tasso di recall di circa il 95% sui dataset Cohere.
Supporto per l’architettura ARM
L’architettura ARM è nota per la sua convenienza in termini di costi rispetto all’architettura x86. Sebbene meno potente, ARM ha un design e set di istruzioni più semplici, che la rendono sempre più popolare. Ad esempio, le istanze ARM con le stesse specifiche CPU (ad esempio, 1 vCPU e 16GB di RAM) sono circa il 15% più economiche sulla piattaforma AWS rispetto alle istanze x86.
Con il supporto per l’architettura ARM in Knowhere 2.0, gli utenti possono ora eseguire e creare servizi di livello superiore su questa architettura.
Supporto per la ricerca per intervallo
Esistono due metodi per trovare i vicini più vicini: K Nearest Neighbor (KNN) e Range Search. KNN trova i "k" vettori più vicini a un vettore di query "q" all'interno di una raccolta di vettori "X." Nel frattempo, Range Search non ha un "k" specificato; invece, restituisce tutti i vettori entro una certa distanza (raggio) dal vettore di query "q" all'interno della raccolta di vettori "X."
Knowhere 2.0 supporta la range search per più indici nella libreria, come HNSW, DiskANN e gli indici IVF. Questa funzionalità consente agli utenti di specificare la distanza tra il vettore di input e i vettori archiviati in Milvus durante una query.
Query di filtro ottimizzate
Nelle query miste scalari e vettoriali, è possibile filtrare alcuni vettori. Knowhere 2.0 ha migliorato significativamente le query vettoriali con filtro per HNSW, ottenendo aumenti delle prestazioni fino a 6-80 volte rispetto alle versioni precedenti.
Struttura del codice e miglioramenti della compilazione
Knowhere 2.0 semplifica l'ereditarietà delle classi C++, utilizza pattern proxy per l'integrazione di nuovi indici, rifattorizza il modulo Config, adotta Conan come gestore di pacchetti per una compilazione semplificata e sfrutta il thread pool di Folly per un controllo preciso dei thread. Tutti questi miglioramenti rendono l'uso di Milvus più semplice.
Supporto MMap
In passato, alcuni utenti hanno affrontato vincoli di spazio di memoria a causa dei loro grandi dataset, che influivano sugli indici che potevano archiviare. Tuttavia, con l'introduzione di Knowhere 2.0, Milvus ora supporta il Memory Mapping (MMap), consentendo la mappatura automatica di file di grandi dimensioni in memoria. Questa nuova funzionalità consente agli utenti di accedere a dati di indice estesi nonostante una memoria insufficiente.
Supporto per il recupero dei vettori originali
Dopo aver completato una ricerca, gli utenti potrebbero richiedere l'accesso ai vettori originali in base agli ID restituiti per ulteriori calcoli o filtri personalizzati. Con Knowhere 2.0, gli utenti possono recuperare direttamente i vettori originali dall'indice, riducendo la latenza rispetto al recupero da archiviazione remota come S3.
Per maggiori dettagli sulle funzionalità e sui miglioramenti di Knowhere 2.0, vedere Note di rilascio di Knowhere 2.0.
Benvenuti a contribuire a Knowhere!
Knowhere è in continua evoluzione e il tuo feedback è importante. Se hai suggerimenti o idee preziosi, non esitare a contribuire al repository Knowhere.
Continua a leggere

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.



