-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Get Fashion Mnist 96% recall up to 200 queries/second #611
Comments
We're now above 200 qps. Last thing left is to just submit a PR to ann-benchmarks w/ the updated versions. |
Status update here, after releasing 8.12.2.1. The non-containerized benchmark is reliably over 200qps @ 96% recall, around 210 qps. Latest update here: ddf637a The containerized benchmark (running ann-benchmarks and elastiknn in the same container) has improved from ~160qps to ~180qps. Here are the results using 8.6.2.0:
Here are the results using 8.12.2.1:
|
Latest update here: the non-containerized benchmark is hovering around ~195 qps. It dropped below 200 qps when I re-ran the benchmark for Elasticsearch 8.15.0: bbbaeea I've tried several other ideas to accelerate the ArrayHitCounter. Some examples: #721, #615, #598. None of it really makes a dent. I'm thinking a major issue might be that the current LSH parameters end up matching the vast majority of documents in the index. When I sample the 0.96 benchmark in VisualVM, it's spending ~30% of its time in countHits: elastiknn/elastiknn-lucene/src/main/java/org/apache/lucene/search/MatchHashesAndScoreQuery.java Lines 52 to 85 in 923fb22
A good chunk of that is spend in So I think I see two possible paths for the next speedup:
|
I ran a grid search and found some promising parameters. Verified these on AWS:
Some other parameters that were promising but I haven't verified on AWS:
|
I managed to find some parameters that get 239 QPS at 0.96 recall. There are a ton of results in this commit: c7efcf1 |
The fully-dockerized ann-benchmarks results are still quite pitiful:
I went ahead and opened a PR to get the latest parameters and Elastiknn version into ann-benchmarks: erikbern/ann-benchmarks#544 |
I'd like to optimize Elastiknn such that the Fashion Mnist benchmark performance exceeds 200 qps at 96% recall. Currently it's at 180 qps. So this would be about an 11% improvement. There are already several issues under the performance label with ideas towards this goal. I've already merged a few PRs. I'm just opening this issue to formalize the effort and to aggregate PRs that don't otherwise have an issue.
The text was updated successfully, but these errors were encountered: