Support reusing a training result across multiple vector index writers
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia tracciando VectorIndexTrainer::train, il punto di ingresso proposto training.create_writer() e il percorso from_trained esistente di IVF-PQ tra tutti i tipi di indice supportati. Poi esamina l’API unificata e i relativi binding C, C++, Java/JNI e Python. Il lavoro è completo quando writer indipendenti riutilizzano un unico risultato di training completato, mantenendo i payload vuoti, le API consumer esistenti e il formato attuale su disco.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Motivation
Callers that build one vector index file per segment currently need a separate training pass for every writer. The trained centroids, quantizers, and rotations can often be shared when those segments come from the same table or data distribution, but the unified API consumes VectorIndexTraining when it creates a writer.
For N segments, this makes the lifecycle effectively:
train -> writer 1
train -> writer 2
...
train -> writer N
IVF-PQ already has an internal from_trained path, but this capability is not available through the unified API or consistently across the supported index types and language bindings.
Proposed API
Allow a completed training result to create multiple independent writers:
let training = VectorIndexTrainer::train(config, training_vectors, training_count)?;
let first = training.create_writer();
let second = training.create_writer();
Each writer should start with the same trained model and an empty vector/ID payload. The existing consuming APIs should remain unchanged for one-shot callers.
Equivalent opt-in entry points should be exposed through C, C++, Java/JNI, and Python.
Expected benefit
In a release-mode synthetic build with 128-dimensional vectors, 8,192 training rows, and eight segments of 2,048 vectors each, training once reduced writer preparation time by 84-87% across IVF-Flat, IVF-SQ, IVF-PQ, IVF-RQ, and DiskANN. Including vector insertion and serialization, elapsed time fell by 73-84%.
The benefit comes from reducing N training passes to one; it does not change the index algorithms themselves.
Compatibility and scope
- No default behavior change: callers opt in to reusable training explicitly.
- Existing consuming APIs remain available.
- No on-disk format change.
- No cross-process training-model serialization or index merging in this issue.
- Lingua principale
- Rust
- Stelle
- 25
- Fork
- 24
- Merge medio
- 2g 4h
- PR unite (30g)
- 11
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/paimon-vector-index
-
Add optional GPU acceleration for IVF-SQ training and constructionForse già presa @TheR1sing3un l’ha presa 36 giorni fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
apache/paimon-vector-index#100 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
apache/paimon-vector-index#97 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
[Feature] Add CI benchmarks to compare vector index PRs with their baseForse già presa @wangzhigang1999 l’ha presa 40 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
apache/paimon-vector-index#96 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di apache/paimon-vector-index
Issue simili
-
agent duplicate providers tool triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Text overflow in import boxAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
founders_reward panics on a configured Testnet when the slow-start subsidy is not a multiple of 5Apertaexternal-contribution
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ZcashFoundation/zebra#11792 ·
I maintainer di solito rispondono entro 1 giorno
-
content:edit documentation effort:high
Difficoltà 1/5 1-3 ore Idoneità per principianti 67/100
cloudflare/cloudflare-docs#34428 ·
I maintainer di solito rispondono entro 1 giorno
-
area/cli bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100