1yefuwang1 / vectorlite

Fast, SQL powered, in-process vector search for any language with an SQLite driver
https://1yefuwang1.github.io/vectorlite/
Apache License 2.0
269 stars 5 forks source link

Add milvus lite benchmark #28

Closed Greedygre closed 2 months ago

Greedygre commented 2 months ago
Benchmarking using 3000 randomly vectors. 100 10-neariest neighbor queries will be performed on each case.
┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━┳━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┓
┃ product    ┃ distance ┃ vector    ┃ ef           ┃    ┃ ef     ┃ insert_time ┃ search_time ┃ recall ┃
┃ name       ┃ type     ┃ dimension ┃ construction ┃ M  ┃ search ┃ per vector  ┃ per query   ┃ rate   ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━╇━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━┩
│ vectorLite │ l2       │ 128       │ 100          │ 30 │ 10     │ 73.58 us    │ 15.00 us    │ 59.20% │
│ vectorLite │ l2       │ 128       │ 100          │ 30 │ 50     │ 73.58 us    │ 46.32 us    │ 94.10% │
│ vectorLite │ l2       │ 128       │ 100          │ 30 │ 100    │ 73.58 us    │ 73.04 us    │ 99.00% │
│ vectorLite │ l2       │ 512       │ 100          │ 30 │ 10     │ 225.71 us   │ 70.54 us    │ 45.30% │
│ vectorLite │ l2       │ 512       │ 100          │ 30 │ 50     │ 225.71 us   │ 188.79 us   │ 84.70% │
│ vectorLite │ l2       │ 512       │ 100          │ 30 │ 100    │ 225.71 us   │ 273.21 us   │ 95.80% │
│ vectorLite │ l2       │ 1536      │ 100          │ 30 │ 10     │ 728.35 us   │ 219.49 us   │ 37.90% │
│ vectorLite │ l2       │ 1536      │ 100          │ 30 │ 50     │ 728.35 us   │ 721.59 us   │ 80.20% │
│ vectorLite │ l2       │ 1536      │ 100          │ 30 │ 100    │ 728.35 us   │ 1108.48 us  │ 93.20% │
│ vectorLite │ l2       │ 3000      │ 100          │ 30 │ 10     │ 1934.85 us  │ 1490.12 us  │ 36.60% │
│ vectorLite │ l2       │ 3000      │ 100          │ 30 │ 50     │ 1934.85 us  │ 2697.82 us  │ 80.10% │
│ vectorLite │ l2       │ 3000      │ 100          │ 30 │ 100    │ 1934.85 us  │ 2592.77 us  │ 94.10% │
│ vectorLite │ cosine   │ 128       │ 100          │ 30 │ 10     │ 121.62 us   │ 30.70 us    │ 58.90% │
│ vectorLite │ cosine   │ 128       │ 100          │ 30 │ 50     │ 121.62 us   │ 74.25 us    │ 93.00% │
│ vectorLite │ cosine   │ 128       │ 100          │ 30 │ 100    │ 121.62 us   │ 213.78 us   │ 98.80% │
│ vectorLite │ cosine   │ 512       │ 100          │ 30 │ 10     │ 285.96 us   │ 51.90 us    │ 48.90% │
│ vectorLite │ cosine   │ 512       │ 100          │ 30 │ 50     │ 285.96 us   │ 203.59 us   │ 86.60% │
│ vectorLite │ cosine   │ 512       │ 100          │ 30 │ 100    │ 285.96 us   │ 248.33 us   │ 96.90% │
│ vectorLite │ cosine   │ 1536      │ 100          │ 30 │ 10     │ 793.06 us   │ 231.40 us   │ 45.70% │
│ vectorLite │ cosine   │ 1536      │ 100          │ 30 │ 50     │ 793.06 us   │ 756.16 us   │ 83.70% │
│ vectorLite │ cosine   │ 1536      │ 100          │ 30 │ 100    │ 793.06 us   │ 1287.76 us  │ 94.80% │
│ vectorLite │ cosine   │ 3000      │ 100          │ 30 │ 10     │ 1528.95 us  │ 499.85 us   │ 41.70% │
│ vectorLite │ cosine   │ 3000      │ 100          │ 30 │ 50     │ 1528.95 us  │ 1253.44 us  │ 82.20% │
│ vectorLite │ cosine   │ 3000      │ 100          │ 30 │ 100    │ 1528.95 us  │ 2025.99 us  │ 94.70% │
└────────────┴──────────┴───────────┴──────────────┴────┴────────┴─────────────┴─────────────┴────────┘
Bencharmk hnswlib as comparison.
┏━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━┳━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┓
┃ product ┃ distance ┃ vector    ┃ ef           ┃    ┃ ef     ┃ insert_time ┃ search_time ┃ recall ┃
┃ name    ┃ type     ┃ dimension ┃ construction ┃ M  ┃ search ┃ per vector  ┃ per query   ┃ rate   ┃
┡━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━╇━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━┩
│ hnswlib │ l2       │ 128       │ 100          │ 30 │ 10     │ 33.03 us    │ 24.43 us    │ 58.30% │
│ hnswlib │ l2       │ 128       │ 100          │ 30 │ 50     │ 33.03 us    │ 79.29 us    │ 94.20% │
│ hnswlib │ l2       │ 128       │ 100          │ 30 │ 100    │ 33.03 us    │ 129.53 us   │ 99.10% │
│ hnswlib │ l2       │ 512       │ 100          │ 30 │ 10     │ 87.13 us    │ 89.03 us    │ 45.30% │
│ hnswlib │ l2       │ 512       │ 100          │ 30 │ 50     │ 87.13 us    │ 253.88 us   │ 84.10% │
│ hnswlib │ l2       │ 512       │ 100          │ 30 │ 100    │ 87.13 us    │ 469.24 us   │ 95.80% │
│ hnswlib │ l2       │ 1536      │ 100          │ 30 │ 10     │ 451.30 us   │ 423.50 us   │ 37.90% │
│ hnswlib │ l2       │ 1536      │ 100          │ 30 │ 50     │ 451.30 us   │ 1018.48 us  │ 79.80% │
│ hnswlib │ l2       │ 1536      │ 100          │ 30 │ 100    │ 451.30 us   │ 1796.62 us  │ 93.30% │
│ hnswlib │ l2       │ 3000      │ 100          │ 30 │ 10     │ 1306.09 us  │ 1320.64 us  │ 36.80% │
│ hnswlib │ l2       │ 3000      │ 100          │ 30 │ 50     │ 1306.09 us  │ 2893.98 us  │ 79.90% │
│ hnswlib │ l2       │ 3000      │ 100          │ 30 │ 100    │ 1306.09 us  │ 3660.10 us  │ 94.20% │
│ hnswlib │ cosine   │ 128       │ 100          │ 30 │ 10     │ 27.54 us    │ 21.83 us    │ 58.50% │
│ hnswlib │ cosine   │ 128       │ 100          │ 30 │ 50     │ 27.54 us    │ 81.06 us    │ 93.00% │
│ hnswlib │ cosine   │ 128       │ 100          │ 30 │ 100    │ 27.54 us    │ 132.62 us   │ 98.80% │
│ hnswlib │ cosine   │ 512       │ 100          │ 30 │ 10     │ 87.91 us    │ 93.10 us    │ 48.40% │
│ hnswlib │ cosine   │ 512       │ 100          │ 30 │ 50     │ 87.91 us    │ 243.28 us   │ 87.00% │
│ hnswlib │ cosine   │ 512       │ 100          │ 30 │ 100    │ 87.91 us    │ 364.17 us   │ 97.00% │
│ hnswlib │ cosine   │ 1536      │ 100          │ 30 │ 10     │ 375.64 us   │ 395.59 us   │ 45.20% │
│ hnswlib │ cosine   │ 1536      │ 100          │ 30 │ 50     │ 375.64 us   │ 1180.84 us  │ 83.30% │
│ hnswlib │ cosine   │ 1536      │ 100          │ 30 │ 100    │ 375.64 us   │ 1752.67 us  │ 94.80% │
│ hnswlib │ cosine   │ 3000      │ 100          │ 30 │ 10     │ 914.96 us   │ 1009.29 us  │ 42.30% │
│ hnswlib │ cosine   │ 3000      │ 100          │ 30 │ 50     │ 914.96 us   │ 2154.70 us  │ 82.30% │
│ hnswlib │ cosine   │ 3000      │ 100          │ 30 │ 100    │ 914.96 us   │ 2520.03 us  │ 94.40% │
└─────────┴──────────┴───────────┴──────────────┴────┴────────┴─────────────┴─────────────┴────────┘
Bencharmk vectorlite brute force(select rowid from my_table order by vector_distance(query_vector, embedding, 'l2')) as comparison.
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━┓
┃ product                ┃ distance ┃ vector    ┃ insert_time ┃ search_time ┃ recall  ┃
┃ name                   ┃ type     ┃ dimension ┃ per vector  ┃ per query   ┃ rate    ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━┩
│ vectorLite_brute_force │ l2       │ 128       │ 1.49 us     │ 426.82 us   │ 100.00% │
│ vectorLite_brute_force │ l2       │ 512       │ 2.71 us     │ 940.02 us   │ 100.00% │
│ vectorLite_brute_force │ l2       │ 1536      │ 3.79 us     │ 3628.19 us  │ 100.00% │
│ vectorLite_brute_force │ l2       │ 3000      │ 5.95 us     │ 6130.14 us  │ 100.00% │
└────────────────────────┴──────────┴───────────┴─────────────┴─────────────┴─────────┘
Bencharmk milvuslite.
┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━┓
┃ product    ┃ distance ┃ vector    ┃ insert_time ┃ search_time ┃ recall  ┃
┃ name       ┃ type     ┃ dimension ┃ per vector  ┃ per query   ┃ rate    ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━┩
│ milvusLite │ l2       │ 128       │ 116.61 us   │ 1690.98 us  │ 100.00% │
│ milvusLite │ l2       │ 512       │ 374.70 us   │ 971.58 us   │ 100.00% │
│ milvusLite │ l2       │ 1536      │ 3651.94 us  │ 1965.66 us  │ 100.00% │
│ milvusLite │ l2       │ 3000      │ 6911.08 us  │ 3045.92 us  │ 100.00% │
│ milvusLite │ cosine   │ 128       │ 133.97 us   │ 1566.03 us  │ 100.00% │
│ milvusLite │ cosine   │ 512       │ 590.21 us   │ 1926.55 us  │ 100.00% │
│ milvusLite │ cosine   │ 1536      │ 3389.90 us  │ 3407.55 us  │ 100.00% │
│ milvusLite │ cosine   │ 3000      │ 7883.70 us  │ 5878.36 us  │ 100.00% │
└────────────┴──────────┴───────────┴─────────────┴─────────────┴─────────┘