Ivf

IVF (Inverted File Index)

Overview
IVF (Inverted File Index) is one of the most common indexing algorithms used in Vector Databases to speed up similarity search. It allows for "Approximate Nearest Neighbor" (ANN) search, trading a tiny bit of accuracy for massive speed gains.

How it works

1. Training (Clustering)
- Look at all your vectors (e.g., 1 million points).
- Use K-Means clustering to find $N$ "centroids" (center points).
- Partition the space into "Voronoi cells" around these centroids.

2. Indexing
- Assign every vector to its nearest centroid.
- Store them in an "inverted list" bucket for that centroid.

3. Usage (Search)
- When a query vector comes in, find the *closest centroid*.
- ONLY search the vectors inside that centroid's bucket (and maybe a few neighbors: `nprobe`).
- Result: You search 1% of the data instead of 100%.

Trade-offs
- nprobe: How many buckets to check.
- Low nprobe: Fast, but might miss the answer.
- High nprobe: Slower, higher accuracy (Recall).
- Training time: Building the index takes time (running K-Means).

IVF is often combined with Product Quantization (IVF-PQ) for maximum speed and compression in tools like FAISS and Milvus.

Take ivf further

Ask the copilot about this term, or have our engineers assess it against your process.