Roadmap di Milvus

Milvus 3.0 riunisce il recupero multivettoriale, le query in stile SQL, schemi flessibili e l'accesso ai dati nell'archivio di tipo "data lake". Le fasi successive si basano su queste fondamenta con query più ricche, modelli di dati più ampi e miglioramenti in termini di prestazioni e scalabilità. Questa roadmap delinea tali priorità per Milvus open source.

Milvus 3.0 è disponibile al pubblico a partire dalla versione 3.0.1. Le funzionalità rilasciate riportate di seguito sono state introdotte nella versione 3.0.0; le funzionalità in anteprima e quelle attivabili su richiesta sono indicate dove compaiono. La serie 3.0.x estende queste funzionalità, mentre la versione 3.1 è prevista per dicembre 2026. Le funzionalità pianificate e le date previste potrebbero subire variazioni man mano che lo sviluppo procede.

Ricerca e recupero

La roadmap relativa al recupero si concentra sulla combinazione di un maggior numero di segnali di rilevanza all’interno di Milvus, dalla corrispondenza testuale e dalle rappresentazioni multivettoriali al riordino dei risultati e ai filtri dei risultati di ricerca.

Disponibile nella versione 3.0

  • Recupero multivettoriale: la ricerca StructArray supporta Muvera e Lemur, con l’ element_filter per il filtraggio a livello di elemento. Le politiche di corrispondenza includono MATCH_ANY, MATCH_ALL, MATCH_LEAST, MATCH_MOST e MATCH_EXACT.
  • Corrispondenza e somiglianza del testo: i dizionari personalizzati e i sinonimi adattano il recupero del testo alle esigenze dell’applicazione. Il filtraggio Regex supporta la corrispondenza dei pattern, mentre MinHash supporta il rilevamento dei quasi-duplicati.
  • Riorganizzazione dei risultati e inferenza: Milvus 3.0 introduce una serie iniziale di funzionalità di riorganizzazione dei risultati tramite Function Chain, insieme all’Hugging Face Inference Provider. Le restanti funzionalità di Function Chain sono previste per la versione 3.0.x.
  • Aggregazione dei risultati di ricerca: l’aggregazione dei risultati di ricerca fornisce filtri (facets) sui risultati della ricerca.

Previsto per la versione 3.0.x

La serie 3.0.x prevede l’aggiunta della corrispondenza approssimativa e delle statistiche globali, oltre al supporto completo della Function Chain.

Previsto per la versione 3.1

I piani includono il recupero basato su Grep, una più stretta integrazione della ricerca del vicino più prossimo approssimativo (ANN) e il filtraggio tramite fusione ANN-filtro, oltre a miglioramenti al recupero sparsa.

Analisi e query in stile SQL

Milvus sta ampliando il proprio motore di query in modo che le applicazioni possano ordinare e aggregare i dati parallelamente al recupero. La fase successiva prevede l’aggiunta di join, viste materializzate e calcoli personalizzati.

Disponibile nella versione 3.0

Le query e la ricerca supportano l’ordinamento con ORDER BY. L’aggregazione delle query aggiunge GROUP BY per il calcolo di statistiche raggruppate.

In programma per la versione 3.1

  • Query più avanzate: introduzione dei join, a partire dai semi-join, e delle Materialized View Collections.
  • Aggiornamenti dei dati e integrità: supporto per gli aggiornamenti in loco e la deduplicazione della chiave primaria durante l’acquisizione.
  • Iterazione delle query e semantica JSON: aggiunta di un iteratore di query con stato, JSON GROUP BY e semantica NULL per SQL e JSON.
  • Calcoli personalizzati: supporto delle funzioni definite dall’utente (UDF) in Python.

Schema e tipi di dati flessibili

Il lavoro sullo schema si concentra sull’evoluzione delle collezioni esistenti e sulla rappresentazione di una gamma più ampia di dati. Copre le modifiche ai campi, le strutture multivettoriali, il testo lungo e la scadenza delle entità.

Disponibile nella versione 3.0

  • Modifiche allo schema online: le collezioni esistenti supportano l’aggiunta di campi online, inclusi campi vettoriali e di tipo Array<Struct>. L’eliminazione dei campi è disponibile in anteprima e potrebbe presentare alcune limitazioni.
  • Backfill per i dati esistenti: il backfill esterno utilizza lo Spark Connector. Il backfill interno associa una funzione BM25 o MinHash a una collezione e ne calcola l’output sui dati esistenti.
  • Dati di testo e multivettoriali: il tipo ` TEXT ` memorizza testo lungo, mentre `StructArray` supporta il recupero in fase di interazione tardiva tramite ` MAX_SIM`. ` TEXT ` richiede l’attivazione di Storage V3.
  • Valori NULL e scadenza: i campi vettoriali accettano valori NULL e il tempo di vita (TTL) a livello di entità controlla la scadenza.

In programma per la versione 3.0.x

I miglioramenti previsti allo schema ampliano il supporto di StructArray per i tipi, i valori NULL e l’aggiunta e la rimozione di campi. Aggiungono inoltre il supporto per le formule molecolari e i filtri " IS NULL " e " IS NOT NULL " per i campi vettoriali.

In programma per la versione 3.1

Le prossime estensioni del modello di dati includono JSON e Struct annidati, chiavi primarie composite, collezioni senza campi vettoriali e vettori sparsi in StructList.

Integrazione con i data lake e controllo delle versioni dei dati

Milvus sta sviluppando una più stretta integrazione con lo storage Lake e l’elaborazione in batch. Le collezioni esterne consentono di accedere ai dati nel luogo in cui risiedono, mentre gli snapshot costituiscono la base per il versioning dei dati.

Disponibile nella versione 3.0

  • Accesso ai dati esterni: External Collection supporta dati in formato Lance, Parquet e Iceberg.
  • Snapshot e integrazione batch: lo snapshot acquisisce una versione dei dati della collezione e lo Spark Connector supporta i flussi di lavoro batch.
  • Base di archiviazione: Storage V3 (Loon) offre il supporto opzionale per Vortex e Lance. È disabilitato per impostazione predefinita e si abilita tramite common.storage.useLoonFFI. Sia gli snapshot che l’ TEXT e dipendono da esso.

In programma per la versione 3.0.x

I miglioramenti previsti consentiranno a uno snapshot di raccolta Milvus di fungere da raccolta esterna. Il supporto per le tabelle esterne si estenderà inoltre allo shredding JSON, all’aggiunta di campi funzione e alla rimozione di campi.

In programma per la versione 3.1

I piani includono indici sparsi e scalari basati su S3, insieme alla cancellazione tramite importazione.

Prestazioni, indicizzazione e scalabilità

La roadmap delle prestazioni riguarda gli indici di recupero, l’esecuzione delle query e la crescita del cluster. Affronta inoltre il ripristino e le query che richiedono la lettura dei dati dall’object storage.

Disponibile nella versione 3.0

  • Indicizzazione sparsa: la revisione degli indici sparsi introduce SINDI.
  • Scelta dell’indice: l’indice passthrough di FAISS accetta stringhe di index-factory Faiss, con opzioni che includono SVS, Panorama, PQ, IVFPQ e ScaNN. L’indicizzazione DiskANN è disponibile anche per le liste incorporate (EmbList).
  • Compattazione: Force Merge offre un controllo esplicito sulla fusione dei segmenti.

In programma per la versione 3.1

  • Query sensibili allo storage: Aggiunta la propagazione dei predicati per Vortex, inclusi il pruning a livello di pagina e gli indici di salto.
  • Crescita del cluster e multi-tenant: supporto alla suddivisione degli shard, alle chiavi di sharding personalizzate e alle ottimizzazioni multi-tenant.
  • Esecuzione delle query e indicizzazione: sviluppo di QueryView, miglioramento del supporto per le collezioni di grandi dimensioni, riduzione dei risultati in streaming e supporto di più indici.
  • Affidabilità delle scritture: supporto delle scritture idempotenti.
  • Caching su storage a oggetti: utilizzo di Talon come cache S3 per migliorare il ripristino in caso di guasto e le prestazioni delle query inattive.

Oltre la versione 3.1

Il lavoro a lungo termine include il "time-travel" e il rollback degli snapshot. La loro portata e i tempi di rilascio devono ancora essere confermati.

Contribuisci a definire la roadmap

Condividi i carichi di lavoro, i limiti e le richieste di funzionalità rilevanti per le tue applicazioni nelle Discussioni su GitHub. Segnala i bug tramite le Issue di GitHub.

Per contribuire con codice o documentazione, inizia dalla Guida per i contributori.

Tradotto daDeepL

Prova Milvus gestito gratuitamente

Zilliz Cloud è senza problemi, basato su Milvus e 10 volte più veloce.

Inizia
Feedback

Questa pagina è stata utile?