Skip to content

Commit

Permalink
Added sample perf-test configs for faiss-ivf, faiss-ivfpq, lucene-hnsw (
Browse files Browse the repository at this point in the history
#555)

Signed-off-by: Navneet Verma <[email protected]>

Signed-off-by: Navneet Verma <[email protected]>
  • Loading branch information
navneet1v authored and martin-gaievski committed Sep 28, 2022
1 parent 3a68f75 commit dfa79b2
Show file tree
Hide file tree
Showing 12 changed files with 308 additions and 0 deletions.
17 changes: 17 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-ivf/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,9 @@
{
"name":"ivf",
"engine":"faiss",
"space_type": "l2",
"parameters":{
"nlist": 128,
"nprobes": 8
}
}
53 changes: 53 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-ivf/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
endpoint: [END-POINT]
test_name: "index-workflow"
test_id: "index workflow"
num_runs: 10
show_runs: false
setup:
- name: delete_index
index_name: train_index
- name: create_index
index_name: train_index
index_spec: /home/ec2-user/[PATH]/train-index-spec.json
- name: ingest
index_name: train_index
field_name: train_field
bulk_size: 500
dataset_format: hdf5
dataset_path: /home/ec2-user/[PATH]/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: /home/ec2-user/[PATH]/method-spec.json
max_training_vector_count: 50000
- name: create_index
index_name: target_index
index_spec: /home/ec2-user/[PATH]/index.json
- name: ingest
index_name: target_index
field_name: target_field
bulk_size: 500
dataset_format: hdf5
dataset_path: /home/ec2-user/data/sift-128-euclidean.hdf5
- name: refresh_index
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: /home/ec2-user/data/sift-128-euclidean.hdf5
neighbors_format: hdf5
neighbors_path: /home/ec2-user/data/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
}
}
}
}
17 changes: 17 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-ivfpq/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"
}
}
}
}
16 changes: 16 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-ivfpq/method-spec.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name":"ivf",
"engine":"faiss",
"space_type": "l2",
"parameters":{
"nlist": 128,
"nprobes": 8,
"encoder": {
"name": "pq",
"parameters": {
"m": 16,
"code_size": 8
}
}
}
}
53 changes: 53 additions & 0 deletions benchmarks/perf-tool/release-configs/faiss-ivfpq/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
endpoint: [ENDPOINT]
test_name: "index-workflow"
test_id: "index workflow"
num_runs: 10
show_runs: false
setup:
- name: delete_index
index_name: train_index
- name: create_index
index_name: train_index
index_spec: /home/ec2-user/[PATH]/train-index-spec.json
- name: ingest
index_name: train_index
field_name: train_field
bulk_size: 500
dataset_format: hdf5
dataset_path: /home/ec2-user/data/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: /home/ec2-user/[PATH]/method-spec.json
max_training_vector_count: 50000
- name: create_index
index_name: target_index
index_spec: /home/ec2-user/[PATH]/index.json
- name: ingest
index_name: target_index
field_name: target_field
bulk_size: 500
dataset_format: hdf5
dataset_path: /home/ec2-user/data/sift-128-euclidean.hdf5
- name: refresh_index
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: /home/ec2-user/data/sift-128-euclidean.hdf5
neighbors_format: hdf5
neighbors_path: /home/ec2-user/data/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
}
}
}
}
26 changes: 26 additions & 0 deletions benchmarks/perf-tool/release-configs/lucene-hnsw/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"settings": {
"index": {
"knn": true,
"number_of_shards": 24,
"number_of_replicas": 1
}
},
"mappings": {
"properties": {
"target_field": {
"type": "knn_vector",
"dimension": 128,
"method": {
"name": "hnsw",
"space_type": "l2",
"engine": "lucene",
"parameters": {
"ef_construction": 256,
"m": 16
}
}
}
}
}
}
29 changes: 29 additions & 0 deletions benchmarks/perf-tool/release-configs/lucene-hnsw/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
endpoint: [ENDPOINT]
test_name: "index-workflow"
test_id: "Index workflow"
num_runs: 10
show_runs: false
steps:
- name: delete_index
index_name: target_index
- name: create_index
index_name: target_index
index_spec: /home/ec2-user/[PATH]/index.json
- name: ingest
index_name: target_index
field_name: target_field
bulk_size: 500
dataset_format: hdf5
dataset_path: /home/ec2-user/data/sift-128-euclidean.hdf5
- name: refresh_index
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: /home/ec2-user/data/sift-128-euclidean.hdf5
neighbors_format: hdf5
neighbors_path: /home/ec2-user/data/sift-128-euclidean.hdf5
27 changes: 27 additions & 0 deletions benchmarks/perf-tool/release-configs/nmslib-hnsw/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"settings": {
"index": {
"knn": true,
"number_of_shards": 24,
"number_of_replicas": 1,
"knn.algo_param.ef_search": 256
}
},
"mappings": {
"properties": {
"target_field": {
"type": "knn_vector",
"dimension": 128,
"method": {
"name": "hnsw",
"space_type": "l2",
"engine": "nmslib",
"parameters": {
"ef_construction": 256,
"m": 16
}
}
}
}
}
}
29 changes: 29 additions & 0 deletions benchmarks/perf-tool/release-configs/nmslib-hnsw/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
endpoint: [ENDPOINT]
test_name: "index-workflow"
test_id: "Index workflow"
num_runs: 10
show_runs: false
steps:
- name: delete_index
index_name: target_index
- name: create_index
index_name: target_index
index_spec: /home/ec2-user/[PATH]/index.json
- name: ingest
index_name: target_index
field_name: target_field
bulk_size: 500
dataset_format: hdf5
dataset_path: /home/ec2-user/data/sift-128-euclidean.hdf5
- name: refresh_index
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: /home/ec2-user/data/sift-128-euclidean.hdf5
neighbors_format: hdf5
neighbors_path: /home/ec2-user/data/sift-128-euclidean.hdf5

0 comments on commit dfa79b2

Please sign in to comment.