Fix cuvs-bench opensearch recall and save results - #2369
Conversation
Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
…ch-fixup Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
…ch-fixup Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
…ch-fixup Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
| assert search_result.neighbors.shape == (10, k) | ||
| assert len(search_result.metadata["per_search_param_results"]) == 1 | ||
|
|
||
| def test_recall_is_computed_for_each_search_parameter(self, live_backend): |
There was a problem hiding this comment.
Note: this test makes sense for all the backends. In the future we should probably have this as an e2e test we run for each backend.
Over in #2369 I saw this C ABI change error ``` Traceback (most recent call last): File "/opt/hostedtoolcache/Python/3.11.15/x64/bin/check-c-abi", line 6, in <module> sys.exit(main_cli()) using dlpack from /home/runner/work/cuvs/cuvs/dlpack/include ^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/check_c_abi/main.py", line 136, in main_cli errors = analyze_c_abi(old_abi, new_abi) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/check_c_abi/abi.py", line 351, in analyze_c_abi errors.extend(_analyze_struct_abi(old_abi, new_abi)) File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/check_c_abi/abi.py", line 293, in _analyze_struct_abi new_struct.members, ^^^^^^^^^^ UnboundLocalError: cannot access local variable 'new_struct' where it is not associated with a value ``` This PR adds a `continue` so we avoid any unbounded variables. Authors: - James Bourbeau (https://github.com/jrbourbeau) - Corey J. Nolet (https://github.com/cjnolet) Approvers: - Corey J. Nolet (https://github.com/cjnolet) - Gil Forsyth (https://github.com/gforsyth) URL: #2386
…ch-fixup Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
jnke2016
left a comment
There was a problem hiding this comment.
Thanks @jrbourbeau , this looks great. Converting search() to return a list of SearchResults (one per search-param combo) and letting the orchestrator compute recall per result cleanly fixes #2358 , and it keeps recall centralized across all backends. I ran the bench unit tests and it passes. LGTM
jrbourbeau
left a comment
There was a problem hiding this comment.
Thanks @jnke2016!
@NVIDIA/cuvs-python-codeowners does anyone have bandwidth to take a look at this?
…ch-fixup Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
This PR includes updates to close #2358 and also address the opensearch backend not saving persistent results.
Primary changes are:
searchmethods now return a list of results that are passed to the orchestrator where recall can be computed for each result separately (xref [BUG] ef_search search parameter failed to sweep correctly #2358 (comment))--data-exportflag is deprecated since this always happens now.cc @jnke2016
Closes #2358