-
Notifications
You must be signed in to change notification settings - Fork 25.5k
Adding new experimental bbq index types #114439
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
Adding new experimental bbq index types #114439
Conversation
"knn": { <2> | ||
"query_vector": [0.04283529, 0.85670587, -0.51402352, 0], | ||
"field": "my_int4_vector", | ||
"num_candidates": 20 <3> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can use "k" instead of num_candidates
to retrieve 20 results.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can, but I would just set it to k
. I don't see the value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Accept all the math in scorers which I don't completely follow, the rest LGTM.
Thanks @benwtrent. Great addition!
Pinging @elastic/es-search-relevance (Team:Search Relevance) |
Hi @benwtrent, I've created a changelog YAML for you. |
@elasticmachine update branch |
💔 Backport failed
You can use sqren/backport to manually backport by running |
Did a larger scale benchmark over This was done with rally track: https://github.com/elastic/rally-tracks/tree/master/msmarco-v2-vector I would expect rescoring per shard to have a slightly bigger latency hit, but better recall. Took about 12hrs to ingest with aggressive merging enabled. fmt: knn-recall-k-num_candidates-number_rescored Here are some of the results: Shows that oversampling and rescoring helps, but can hurt qps. knn-recall-10-100-50. knn-recall-10-1000-200: its pretty neat to see that even visiting >100k vectors over multiple segments has 42ms latency (we ain't even done optimizing this stuff yet). |
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation |
new index types of bbq_hnsw and bbq_flat which utilize the better binary quantization formats. A 32x reduction in memory, with nice recall properties. (cherry picked from commit 6c752ab)
new index types of bbq_hnsw and bbq_flat which utilize the better binary quantization formats. A 32x reduction in memory, with nice recall properties.
new index types of bbq_hnsw and bbq_flat which utilize the better binary quantization formats. A 32x reduction in memory, with nice recall properties.
Hi @benwtrent, would it be possible to add these types to the specification? The types are currently missing in the client and there is no documentation available for them either. Happy to add the new enum members myself, if somebody could provide a proper documentation string 🙂 |
new index types of
bbq_hnsw
andbbq_flat
which utilize the better binary quantization formats. A 32x reduction in memory, with nice recall properties.