Skip to content

Add TurboQuant (CPU)#5049

Open
Mistobaan wants to merge 4 commits intofacebookresearch:mainfrom
Mistobaan:turboquant
Open

Add TurboQuant (CPU)#5049
Mistobaan wants to merge 4 commits intofacebookresearch:mainfrom
Mistobaan:turboquant

Conversation

@Mistobaan
Copy link
Copy Markdown
Contributor

@Mistobaan Mistobaan commented Apr 7, 2026

Summary

This PR adds initial TurboQuant (see #4990) support to Faiss and integrates it into the main codepaths needed for local evaluation.

Changes in this PR:

  • add IndexTurboQuantMSE and the underlying TurboQuantizer implementation
  • add cloning and serialization support for TurboQuant indexes
  • expose TurboQuant through the Python SWIG bindings
  • extend quantizer benchmarking to cover TurboQuant and additional datasets
  • add unit tests for TurboQuant reconstruction behavior

Preliminary Benchmarks

These are preliminary local results from a macOS CPU-only run.

Command:

python bench_quantizer.py glove 100x4 turboquant pq rq
eval on glove 100x4 maxtrain=100000
No training set: training on database
===== PQ
        training time: 0.594 s
        encode time: 0.317 reconstruction error: 0.010 recall@1: 0.7036 recons_err_compat 0.100 code_size: 50 B/vector
===== RQ
        training time: 208.554 s
max_beam_size=1
        encode time: 2.977 reconstruction error: 0.027 recall@1: 0.6034 recons_err_compat 0.162 code_size: 50 B/vector
max_beam_size=2
        encode time: 5.774 reconstruction error: 0.023 recall@1: 0.6280 recons_err_compat 0.151 code_size: 50 B/vector
max_beam_size=4
        encode time: 12.271 reconstruction error: 0.020 recall@1: 0.6512 recons_err_compat 0.140 code_size: 50 B/vector
max_beam_size=8
        encode time: 25.617 reconstruction error: 0.018 recall@1: 0.6751 recons_err_compat 0.131 code_size: 50 B/vector
max_beam_size=16
        encode time: 50.257 reconstruction error: 0.016 recall@1: 0.6890 recons_err_compat 0.123 code_size: 50 B/vector
max_beam_size=32
        encode time: 105.272 reconstruction error: 0.014 recall@1: 0.7067 recons_err_compat 0.116 code_size: 50 B/vector
===== TurboQuant
        training time: 0.002 s
        encode time: 0.080 reconstruction error: 0.009 recall@1: 0.7189 recons_err_compat 0.095 code_size: 50 B/vector

Initial takeaway

On this macOS CPU-only benchmark, TurboQuant shows:

  • better recall@1 than PQ at the same code size
  • lower reconstruction error than PQ
  • higher recall@1 than the best RQ setting tested here
  • much lower training and encoding cost than RQ

TODO

  • add JQL support (only MSE at the moment)
  • reproduce the paper benchmarks with same datasets (need a beefy machine but script is ready)
  • add CUDA support (will be in another PR if this is accepted)

@meta-cla meta-cla bot added the CLA Signed label Apr 7, 2026
@Mistobaan Mistobaan marked this pull request as draft April 7, 2026 08:32
@Mistobaan Mistobaan changed the title Add TurboQuant index and benchmark support Add TurboQuant (WIP) Apr 7, 2026
@Mistobaan Mistobaan marked this pull request as ready for review April 8, 2026 07:13
@Mistobaan Mistobaan changed the title Add TurboQuant (WIP) Add TurboQuant (CPU) Apr 8, 2026
@mdouze
Copy link
Copy Markdown
Contributor

mdouze commented Apr 9, 2026

Thanks for the PR. We are busy evaluating turboquant.
Would you mind implementing it as a ScalarQuantizer type (QT_xxx) instead of creating a new Quantizer class?

@Mistobaan
Copy link
Copy Markdown
Contributor Author

@mdouze Update the PR to have Turboquant as ScalarQuantizer with simd optimizations. The tests seems to all pass except those on Rocm that just bailed out for some reasons.

I ran some benchmark on synthetic dataset (256, 100k, 100k, 1k) on my Macbook Pro M4 48GB:

SQtqmse1
SQtqmse1  1-recall@1: 0.726.  k-recall@1: 0.726.  Average speed: 21310.0ms.  Memory: 3.200MB
SQtqmse1  1-recall@10: 0.99.  k-recall@10: 0.7524.  Average speed: 21048.5ms.  Memory: 3.200MB
SQtqmse1  1-recall@100: 0.999.  k-recall@100: 0.74144.  Average speed: 21527.3ms.  Memory: 3.200MB
SQtqmse2
SQtqmse2  1-recall@1: 0.838.  k-recall@1: 0.838.  Average speed: 22468.8ms.  Memory: 6.400MB
SQtqmse2  1-recall@10: 1.0.  k-recall@10: 0.8449.  Average speed: 21780.5ms.  Memory: 6.400MB
SQtqmse2  1-recall@100: 1.0.  k-recall@100: 0.83434.  Average speed: 22435.8ms.  Memory: 6.400MB
SQtqmse3
SQtqmse3  1-recall@1: 0.892.  k-recall@1: 0.892.  Average speed: 22073.3ms.  Memory: 9.600MB
SQtqmse3  1-recall@10: 1.0.  k-recall@10: 0.8963.  Average speed: 22677.2ms.  Memory: 9.600MB
SQtqmse3  1-recall@100: 1.0.  k-recall@100: 0.89065.  Average speed: 22564.7ms.  Memory: 9.600MB
SQtqmse4
SQtqmse4  1-recall@1: 0.916.  k-recall@1: 0.916.  Average speed: 22571.0ms.  Memory: 12.800MB
SQtqmse4  1-recall@10: 1.0.  k-recall@10: 0.9139.  Average speed: 25337.9ms.  Memory: 12.800MB
SQtqmse4  1-recall@100: 1.0.  k-recall@100: 0.895.  Average speed: 30635.1ms.  Memory: 12.800MB
SQtqmse8
SQtqmse8  1-recall@1: 0.994.  k-recall@1: 0.994.  Average speed: 26847.8ms.  Memory: 25.600MB
SQtqmse8  1-recall@10: 1.0.  k-recall@10: 0.9951.  Average speed: 27586.8ms.  Memory: 25.600MB
SQtqmse8  1-recall@100: 1.0.  k-recall@100: 0.99495.  Average speed: 26639.6ms.  Memory: 25.600MB
IVF1000,SQtqmse1 nprobe=4:  1-recall@1: 0.568.  k-recall@1: 0.568.  Average speed: 934.9ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=16:  1-recall@1: 0.675.  k-recall@1: 0.675.  Average speed: 3761.7ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=32:  1-recall@1: 0.679.  k-recall@1: 0.679.  Average speed: 7474.7ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=4:  1-recall@10: 0.722.  k-recall@10: 0.5171.  Average speed: 933.9ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=16:  1-recall@10: 0.954.  k-recall@10: 0.6742.  Average speed: 3693.6ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=32:  1-recall@10: 0.98.  k-recall@10: 0.7.  Average speed: 7365.0ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.37097.  Average speed: 961.7ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.57486.  Average speed: 3721.0ms.  Memory: 3.200MB
IVF1000,SQtqmse1 nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.6266.  Average speed: 7399.1ms.  Memory: 3.200MB
IVF1000,SQtqmse2 nprobe=4:  1-recall@1: 0.628.  k-recall@1: 0.628.  Average speed: 946.2ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=16:  1-recall@1: 0.8.  k-recall@1: 0.8.  Average speed: 3761.9ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=32:  1-recall@1: 0.816.  k-recall@1: 0.816.  Average speed: 7414.3ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=4:  1-recall@10: 0.725.  k-recall@10: 0.5705.  Average speed: 942.6ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=16:  1-recall@10: 0.963.  k-recall@10: 0.7817.  Average speed: 3742.4ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=32:  1-recall@10: 0.99.  k-recall@10: 0.8166.  Average speed: 7452.2ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39742.  Average speed: 982.4ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.6919.  Average speed: 3757.6ms.  Memory: 6.400MB
IVF1000,SQtqmse2 nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.77136.  Average speed: 7495.3ms.  Memory: 6.400MB
IVF1000,SQtqmse3 nprobe=4:  1-recall@1: 0.667.  k-recall@1: 0.667.  Average speed: 958.5ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=16:  1-recall@1: 0.861.  k-recall@1: 0.861.  Average speed: 3779.0ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=32:  1-recall@1: 0.878.  k-recall@1: 0.878.  Average speed: 7509.3ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=4:  1-recall@10: 0.725.  k-recall@10: 0.5865.  Average speed: 960.0ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=16:  1-recall@10: 0.963.  k-recall@10: 0.8372.  Average speed: 3788.1ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=32:  1-recall@10: 0.99.  k-recall@10: 0.8826.  Average speed: 7508.3ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39868.  Average speed: 984.8ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.72581.  Average speed: 3826.2ms.  Memory: 9.600MB
IVF1000,SQtqmse3 nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.83206.  Average speed: 7591.4ms.  Memory: 9.600MB
IVF1000,SQtqmse4 nprobe=4:  1-recall@1: 0.69.  k-recall@1: 0.69.  Average speed: 951.1ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=16:  1-recall@1: 0.907.  k-recall@1: 0.907.  Average speed: 3756.1ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=32:  1-recall@1: 0.931.  k-recall@1: 0.931.  Average speed: 7446.0ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=4:  1-recall@10: 0.725.  k-recall@10: 0.5914.  Average speed: 958.0ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=16:  1-recall@10: 0.963.  k-recall@10: 0.8634.  Average speed: 3772.7ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=32:  1-recall@10: 0.99.  k-recall@10: 0.9185.  Average speed: 7450.7ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39884.  Average speed: 972.5ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.73571.  Average speed: 3776.0ms.  Memory: 12.800MB
IVF1000,SQtqmse4 nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.86013.  Average speed: 7477.6ms.  Memory: 12.800MB
IVF1000,SQtqmse8 nprobe=4:  1-recall@1: 0.724.  k-recall@1: 0.724.  Average speed: 833.4ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=16:  1-recall@1: 0.959.  k-recall@1: 0.959.  Average speed: 3290.1ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=32:  1-recall@1: 0.986.  k-recall@1: 0.986.  Average speed: 6557.1ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=4:  1-recall@10: 0.725.  k-recall@10: 0.5944.  Average speed: 837.7ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=16:  1-recall@10: 0.963.  k-recall@10: 0.889.  Average speed: 3313.2ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=32:  1-recall@10: 0.99.  k-recall@10: 0.9598.  Average speed: 6576.9ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39886.  Average speed: 868.6ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.73801.  Average speed: 3345.9ms.  Memory: 25.600MB
IVF1000,SQtqmse8 nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.87232.  Average speed: 6606.3ms.  Memory: 25.600MB
IndexSQ4  1-recall@1: 0.954.  k-recall@1: 0.954.  Average speed: 37365.3ms.  Memory: 12.800MB
IndexSQ4  1-recall@10: 1.0.  k-recall@10: 0.9536.  Average speed: 28784.5ms.  Memory: 12.800MB
IndexSQ4  1-recall@100: 1.0.  k-recall@100: 0.9551.  Average speed: 35006.1ms.  Memory: 12.800MB
IndexSQ6  1-recall@1: 0.991.  k-recall@1: 0.991.  Average speed: 42934.6ms.  Memory: 19.200MB
IndexSQ6  1-recall@10: 1.0.  k-recall@10: 0.9865.  Average speed: 42502.5ms.  Memory: 19.200MB
IndexSQ6  1-recall@100: 1.0.  k-recall@100: 0.98868.  Average speed: 41101.6ms.  Memory: 19.200MB
IndexSQ8  1-recall@1: 0.998.  k-recall@1: 0.998.  Average speed: 34259.0ms.  Memory: 25.600MB
IndexSQ8  1-recall@10: 1.0.  k-recall@10: 0.9975.  Average speed: 33920.0ms.  Memory: 25.600MB
IndexSQ8  1-recall@100: 1.0.  k-recall@100: 0.99676.  Average speed: 34180.8ms.  Memory: 25.600MB
IVF1000,SQ4 nprobe=4:  1-recall@1: 0.692.  k-recall@1: 0.692.  Average speed: 1104.9ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=16:  1-recall@1: 0.909.  k-recall@1: 0.909.  Average speed: 4363.2ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=32:  1-recall@1: 0.93.  k-recall@1: 0.93.  Average speed: 8739.5ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=4:  1-recall@10: 0.725.  k-recall@10: 0.5911.  Average speed: 1114.1ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=16:  1-recall@10: 0.963.  k-recall@10: 0.8631.  Average speed: 4407.5ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=32:  1-recall@10: 0.99.  k-recall@10: 0.9179.  Average speed: 8769.8ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39884.  Average speed: 1139.7ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.73557.  Average speed: 4443.4ms.  Memory: 12.800MB
IVF1000,SQ4 nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.85953.  Average speed: 8793.2ms.  Memory: 12.800MB
IVF1000,SQ6 nprobe=4:  1-recall@1: 0.718.  k-recall@1: 0.718.  Average speed: 1309.7ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=16:  1-recall@1: 0.949.  k-recall@1: 0.949.  Average speed: 5144.8ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=32:  1-recall@1: 0.975.  k-recall@1: 0.975.  Average speed: 10213.4ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=4:  1-recall@10: 0.725.  k-recall@10: 0.5942.  Average speed: 1298.4ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=16:  1-recall@10: 0.963.  k-recall@10: 0.8853.  Average speed: 5137.0ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=32:  1-recall@10: 0.99.  k-recall@10: 0.9522.  Average speed: 10357.7ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39886.  Average speed: 1359.1ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.73792.  Average speed: 5242.5ms.  Memory: 19.200MB
IVF1000,SQ6 nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.87164.  Average speed: 10356.0ms.  Memory: 19.200MB
PQ32x4fs  1-recall@1: 0.447.  k-recall@1: 0.447.  Average speed: 1112.2ms.  Memory: 1.600MB
PQ32x4fs  1-recall@10: 0.902.  k-recall@10: 0.4999.  Average speed: 1152.8ms.  Memory: 1.600MB
PQ32x4fs  1-recall@100: 0.986.  k-recall@100: 0.4724.  Average speed: 1176.2ms.  Memory: 1.600MB
PQ64x4fs  1-recall@1: 0.713.  k-recall@1: 0.713.  Average speed: 2258.1ms.  Memory: 3.200MB
PQ64x4fs  1-recall@10: 0.995.  k-recall@10: 0.7531.  Average speed: 2349.4ms.  Memory: 3.200MB
PQ64x4fs  1-recall@100: 1.0.  k-recall@100: 0.74138.  Average speed: 2270.8ms.  Memory: 3.200MB
PQ128x4fs  1-recall@1: 0.879.  k-recall@1: 0.879.  Average speed: 4299.1ms.  Memory: 6.400MB
PQ128x4fs  1-recall@10: 1.0.  k-recall@10: 0.8674.  Average speed: 4346.2ms.  Memory: 6.400MB
PQ128x4fs  1-recall@100: 1.0.  k-recall@100: 0.86114.  Average speed: 4333.2ms.  Memory: 6.400MB
IVF1000,PQ32x4fs nprobe=4:  1-recall@1: 0.41.  k-recall@1: 0.41.  Average speed: 14.9ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=16:  1-recall@1: 0.458.  k-recall@1: 0.458.  Average speed: 34.6ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=32:  1-recall@1: 0.453.  k-recall@1: 0.453.  Average speed: 57.4ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=4:  1-recall@10: 0.705.  k-recall@10: 0.426.  Average speed: 13.4ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=16:  1-recall@10: 0.894.  k-recall@10: 0.5086.  Average speed: 34.4ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=32:  1-recall@10: 0.91.  k-recall@10: 0.5124.  Average speed: 59.5ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.35343.  Average speed: 20.7ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=16:  1-recall@100: 0.959.  k-recall@100: 0.48604.  Average speed: 46.2ms.  Memory: 1.600MB
IVF1000,PQ32x4fs nprobe=32:  1-recall@100: 0.982.  k-recall@100: 0.50092.  Average speed: 68.8ms.  Memory: 1.600MB
IVF1000,PQ64x4fs nprobe=4:  1-recall@1: 0.59.  k-recall@1: 0.59.  Average speed: 20.6ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=16:  1-recall@1: 0.709.  k-recall@1: 0.709.  Average speed: 61.2ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=32:  1-recall@1: 0.716.  k-recall@1: 0.716.  Average speed: 98.9ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=4:  1-recall@10: 0.724.  k-recall@10: 0.5409.  Average speed: 21.8ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=16:  1-recall@10: 0.958.  k-recall@10: 0.7162.  Average speed: 61.8ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=32:  1-recall@10: 0.985.  k-recall@10: 0.7445.  Average speed: 108.2ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39348.  Average speed: 27.3ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.64925.  Average speed: 61.5ms.  Memory: 3.200MB
IVF1000,PQ64x4fs nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.71067.  Average speed: 120.0ms.  Memory: 3.200MB
IVF1000,PQ128x4fs nprobe=4:  1-recall@1: 0.671.  k-recall@1: 0.671.  Average speed: 35.4ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=16:  1-recall@1: 0.858.  k-recall@1: 0.858.  Average speed: 103.0ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=32:  1-recall@1: 0.877.  k-recall@1: 0.877.  Average speed: 195.1ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=4:  1-recall@10: 0.725.  k-recall@10: 0.5792.  Average speed: 37.3ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=16:  1-recall@10: 0.963.  k-recall@10: 0.811.  Average speed: 108.5ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=32:  1-recall@10: 0.99.  k-recall@10: 0.8524.  Average speed: 199.9ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=4:  1-recall@100: 0.725.  k-recall@100: 0.39842.  Average speed: 43.2ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=16:  1-recall@100: 0.963.  k-recall@100: 0.71356.  Average speed: 114.4ms.  Memory: 6.400MB
IVF1000,PQ128x4fs nprobe=32:  1-recall@100: 0.99.  k-recall@100: 0.805.  Average speed: 212.7ms.  Memory: 6.400MB
HNSW8  1-recall@1: 0.828.  k-recall@1: 0.828.  Average speed: 14.4ms.  Memory: 110.059MB
HNSW8  1-recall@10: 0.828.  k-recall@10: 0.7769.  Average speed: 14.3ms.  Memory: 110.059MB
HNSW8  1-recall@100: 0.828.  k-recall@100: 0.50506.  Average speed: 19.0ms.  Memory: 110.059MB
HNSW16  1-recall@1: 0.918.  k-recall@1: 0.918.  Average speed: 16.8ms.  Memory: 116.433MB
HNSW16  1-recall@10: 0.918.  k-recall@10: 0.8665.  Average speed: 19.9ms.  Memory: 116.433MB
HNSW16  1-recall@100: 0.918.  k-recall@100: 0.60739.  Average speed: 24.4ms.  Memory: 116.433MB
HNSW32  1-recall@1: 0.974.  k-recall@1: 0.974.  Average speed: 26.7ms.  Memory: 129.221MB
HNSW32  1-recall@10: 0.974.  k-recall@10: 0.9615.  Average speed: 27.1ms.  Memory: 129.221MB
HNSW32  1-recall@100: 0.974.  k-recall@100: 0.79534.  Average speed: 32.2ms.  Memory: 129.221MB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants