Skip to content

Commit

Permalink
Add Benchmarking Config for Faiss SQfp16
Browse files Browse the repository at this point in the history
Signed-off-by: Naveen Tatikonda <[email protected]>
  • Loading branch information
naveentatikonda committed Mar 22, 2024
1 parent e8c9ced commit cea09f1
Show file tree
Hide file tree
Showing 7 changed files with 177 additions and 0 deletions.
33 changes: 33 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-hnsw-sqfp16/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"settings": {
"index": {
"knn": true,
"number_of_shards": 24,
"number_of_replicas": 1,
"knn.algo_param.ef_search": 100
}
},
"mappings": {
"properties": {
"target_field": {
"type": "knn_vector",
"dimension": 128,
"method": {
"name": "hnsw",
"space_type": "l2",
"engine": "faiss",
"parameters": {
"encoder": {
"name": "sq",
"parameters": {
"type": "fp16"
}
},
"ef_construction": 256,
"m": 16
}
}
}
}
}
}
35 changes: 35 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-hnsw-sqfp16/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
endpoint: [ENDPOINT]
port: [PORT]
test_name: "Faiss HNSW Test"
test_id: "Faiss HNSW Test"
num_runs: 3
show_runs: false
steps:
- name: delete_index
index_name: target_index
- name: create_index
index_name: target_index
index_spec: release-configs/faiss-hnsw-sqfp16/index.json
- name: ingest
index_name: target_index
field_name: target_field
bulk_size: 500
dataset_format: hdf5
dataset_path: dataset/sift-128-euclidean.hdf5
- name: refresh_index
index_name: target_index
- name: force_merge
index_name: target_index
max_num_segments: 1
- name: warmup_operation
index_name: target_index
- name: query
k: 100
r: 1
calculate_recall: true
index_name: target_index
field_name: target_field
dataset_format: hdf5
dataset_path: dataset/sift-128-euclidean.hdf5
neighbors_format: hdf5
neighbors_path: dataset/sift-128-euclidean.hdf5
17 changes: 17 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-ivf-sqfp16/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"settings": {
"index": {
"knn": true,
"number_of_shards": 24,
"number_of_replicas": 1
}
},
"mappings": {
"properties": {
"target_field": {
"type": "knn_vector",
"model_id": "test-model"
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name":"ivf",
"engine":"faiss",
"space_type": "l2",
"parameters":{
"encoder": {
"name": "sq",
"parameters": {
"type": "fp16"
}
},
"nlist": 128,
"nprobes": 8
}
}
59 changes: 59 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-ivf-sqfp16/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
endpoint: [ENDPOINT]
port: [PORT]
test_name: "Faiss IVF"
test_id: "Faiss IVF"
num_runs: 3
show_runs: false
setup:
- name: delete_index
index_name: train_index
- name: create_index
index_name: train_index
index_spec: release-configs/faiss-ivf-sqfp16/train-index-spec.json
- name: ingest
index_name: train_index
field_name: train_field
bulk_size: 500
dataset_format: hdf5
dataset_path: dataset/sift-128-euclidean.hdf5
doc_count: 50000
- name: refresh_index
index_name: train_index
steps:
- name: delete_model
model_id: test-model
- name: delete_index
index_name: target_index
- name: train_model
model_id: test-model
train_index: train_index
train_field: train_field
dimension: 128
method_spec: release-configs/faiss-ivf-sqfp16/method-spec.json
max_training_vector_count: 50000
- name: create_index
index_name: target_index
index_spec: release-configs/faiss-ivf-sqfp16/index.json
- name: ingest
index_name: target_index
field_name: target_field
bulk_size: 500
dataset_format: hdf5
dataset_path: dataset/sift-128-euclidean.hdf5
- name: refresh_index
index_name: target_index
- name: force_merge
index_name: target_index
max_num_segments: 1
- name: warmup_operation
index_name: target_index
- name: query
k: 100
r: 1
calculate_recall: true
index_name: target_index
field_name: target_field
dataset_format: hdf5
dataset_path: dataset/sift-128-euclidean.hdf5
neighbors_format: hdf5
neighbors_path: dataset/sift-128-euclidean.hdf5
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"settings": {
"index": {
"number_of_shards": 24,
"number_of_replicas": 0
}
},
"mappings": {
"properties": {
"train_field": {
"type": "knn_vector",
"dimension": 128
}
}
}
}
2 changes: 2 additions & 0 deletions benchmarks/perf-tool/release-configs/run_all_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,12 @@ TESTS="./release-configs/faiss-hnsw/filtering/relaxed-filter/relaxed-filter-test
./release-configs/faiss-hnsw/nested/simple/simple-nested-test.yml
./release-configs/faiss-hnsw/test.yml
./release-configs/faiss-hnswpq/test.yml
./release-configs/faiss-hnsw-sqfp16/test.yml
./release-configs/faiss-ivf/filtering/relaxed-filter/relaxed-filter-test.yml
./release-configs/faiss-ivf/filtering/restrictive-filter/restrictive-filter-test.yml
./release-configs/faiss-ivf/test.yml
./release-configs/faiss-ivfpq/test.yml
./release-configs/faiss-ivf-sqfp16/test.yml
./release-configs/lucene-hnsw/filtering/relaxed-filter/relaxed-filter-test.yml
./release-configs/lucene-hnsw/filtering/restrictive-filter/restrictive-filter-test.yml
./release-configs/lucene-hnsw/nested/simple/simple-nested-test.yml
Expand Down

0 comments on commit cea09f1

Please sign in to comment.