[FEA] Explore potential for incremental/online PCA to improve performance of layer0 (often brute-force) index
Nobody has claimed this yet.
- Dominant language
- Cuda
- Stars
- 854
- Forks
- 236
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 62
Description
This could use online PCA or a set of centroids could be trained up front to make online pq possible. The idea here is to reduce the time between vectors being received in a vector database and being fully searchable.
In most cases, we should not have to wait for enough vectors to train a full ANN index and brute-force should be able to satisfy searching in the meantime. As brute-force is exhaustive, we have 2 basic options for being able to improve the performance:
-
We prune distances using an IVF method. Random ball cover could also be a great drop-in replacement for bfknn.
-
We reduce the number of dimensions. Incremental/online PCA could help reduce the concept drift over time while still providing a very fast mechanism for reducing the dimensionality significantly. Since these newly inserted vectors are often shoved in smaller segment files until merged together into a larger index, we could investigate something like random projections or rp-trees, which are great for smaller chunks of data (usually on the order of 1M-10M) and can maintain distance error within a provable epsilon (which is based only on the number of vectors).
The primary goal here is to reduce the time between a vector being sent to a vector db and it being fully searchable. We also need to do this at scale.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Begin by mapping the layer0 brute-force index and its segment-merge path, then compare the proposed IVF, random-ball-cover, online PCA, random-projection, and RP-tree directions. Done means demonstrating a scalable reduction in the time from vector insertion to full searchability while preserving an acceptable distance error.
Written by the indexing model from the issue text.
Assessment
- Domain
- databases, machine-learning, performance, search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100