Embedded vector libraries
Infino with turbovec and FAISS, all in one process: the same queries, exact ground truth, and each library through its own public API.
How it is measured
- engines
- Infino, turbovec and FAISS, each through its own public API
- process
- all in one process, so no network or serialization in the timings
- ground truth
- brute-force exact search, so recall is measured, not estimated
- Infino mode
- the shipped flat_ivf mode: a table built by the normal append, commit and optimize lifecycle, serving its resident 4-bit plane
- datasets
- dbpedia-1536 (OpenAI embeddings) and Cohere 768, 100K vectors each, top-10
- FAISS build
- compiled from the source faiss-rs bundles, with -march=native so FastScan uses SIMD
- provenance
- each run commits a run.json with the host, the engine commit and the exact command
Results
The tables and the chart are published in retrievalbench, with every result file and the run that produced it. Results are CC BY 4.0, so they can be quoted anywhere, including in a comparison that disagrees with ours.
- The comparison table and chart, at dbpedia-1536, 100K vectors, top-10.
- The result files, one folder per dataset, each with its run.json.
- If you maintain a library measured there and think it is configured unfairly, open an issue.
Reproduce it
Plain cargo bench in retrievalbench. The corpus downloads once. Add --features faiss, after running scripts/build_faiss.sh, for the FAISS rows. Remove infino.yaml before running anything else, since every other benchmark measures shipped defaults.
git clone https://github.com/infino-ai/retrievalbench && cd retrievalbench printf 'vector:\n search_mode: flat_ivf\n' > infino.yaml INFINO_BENCH_SUPERTABLE_DOCS=100000 \ cargo bench -- vector-codec \ corpus=hf:KShivendu/dbpedia-entities-openai-1M corpus-dir=./corpora
Common questions
Why compare with libraries rather than vector databases?
An embedded engine runs inside your application, the same place a library like FAISS does, so libraries are the fair comparison for that use. Vector databases are measured separately, through VectorDBBench, on its own page.
Which Infino settings does this use?
One configuration line selects the flat_ivf search mode, and everything else is the shipped default. The table is built the normal way, by appending, committing and optimizing, not by a special benchmark path.
Vector search that lives next to your keyword index. Try it on your own data.
Free tier · No credit card to start
or run it yourself: pip install infino · Apache-2.0 · quickstart →