-
Notifications
You must be signed in to change notification settings - Fork 429
(diversity) Integrate determinant diversity in tokp full precision search and disk search #1011
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
Merged
Merged
Changes from all commits
Commits
Show all changes
70 commits
Select commit
Hold shift + click to select a range
dcdc377
Make benchmarks stateful.
d60ac07
Checkpoint.
6cc92bd
Checkopint.
f050e3d
Oh boy.
2d03d11
Merge remote-tracking branch 'origin/main' into mhildebr/benchmark-pl…
aa78836
Fix delimiters.
ccf891a
Revert formatting.
2e060ea
Make plugins slightly more flexible.
7a85df8
Merge branch 'main' into mhildebr/benchmark-plugins
hildebrandmw fc8008a
Add determinant-diversity plugin support on search-plugin architecture
narendatha 298d1b8
Integrate determinant-diversity via disk search_with post-processor
narendatha fbd34fd
Restrict determinant-diversity to async full-precision topk
narendatha 851174e
Keep single async determinant-diversity example JSON
narendatha ed0c918
Improve plugin matching resilience via phase-shape helpers
narendatha 3a6aa1a
Use SearchPhaseKind::as_str in benchmark plugin kinds
narendatha ccfe4d7
remove serde defaults
narendatha 01e194d
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 86883b7
minor merge fix
narendatha 554bc7f
hook up actual algorithm, replace placeholder.
narendatha 8c59e6f
WIP: Trait bound experiment for async determinant-diversity - HRTB pr…
narendatha b73abc8
apply mark's beautiful fix for lifetime issue
narendatha d1884c3
Fix async determinant-diversity: wire real vectors, timing metrics, r…
narendatha 701ce8e
Fix CI clippy-features spherical plugin errors and apply formatting
narendatha 6b935d3
Add determinant-diversity support for async and disk-index benchmarks
narendatha 6f47ba3
Merge branch 'u/narendatha/det_div_plugins' of https://github.com/mic…
narendatha 8acbba2
imrpove code coverage
narendatha a48e255
minor fix
narendatha 468b5d2
cargo fmt
narendatha d9e66ba
WIP: Benchmarks refactoring - threading fix, rich struct params, as_s…
narendatha 9cda6e0
Add post-processor generic parameter to KNN struct in benchmark-core
narendatha 8b07676
Task 5: Create unified validation struct for DeterminantDiversity in …
narendatha 8ce2130
Task 6: Add module-level documentation to determinant_diversity_post_…
narendatha 309ecb3
Task 7: Add algorithmic tests to determinant_diversity_post_process.rs
narendatha 3be546a
Task 8: Merge similar routines in determinant_diversity_post_process.rs
narendatha f92c3be
Task 9: Replace Vec<Vec<f32>> with Matrix for residuals storage
narendatha 10b0182
Task 10: Move determinant_diversity_post_process out of async_ module
narendatha ca20a24
Refactor determinant-diversity benchmark path
narendatha f538583
cargo fmt and clippy fixes for CI
narendatha f58789d
Use shared determinant-diversity params validation
narendatha 79c635f
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 3c11d36
code review comment, use a struct instead of a tuple
narendatha b65e673
Refine determinant-diversity invariants and range representation
narendatha 85797ce
minor code cleanup
narendatha 8aeee5a
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 19380a7
Address PR #1011 r3268094250: document determinant_diversity math; us…
narendatha 63f1ab8
knn: route configured post-processors through KNN::with_postprocessor
narendatha 2f482f9
det-div: add unit tests for edge cases and selection invariants
narendatha 6f95f21
det-div: fence math blocks in doc comments to avoid doctest compile e…
narendatha bc03532
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha ce8db8d
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 125ae1b
minor fixes.
narendatha 98b6a7d
Mark's code review comments: minor refactors
narendatha 44c5884
refactor: determinant_diversity API - migrate from generic Vec to mat…
narendatha 87001ad
refactor: make determinant-diversity a first-class SearchPhase variant
narendatha bc9e488
refactor(knn): use AsPostProcessor trait for infallible post-processo…
narendatha 7ff4ff1
refactor(inputs): rely on plugin matching for det-div backend compati…
narendatha 77ca168
test(disk): add det-div post-processor smoke test
narendatha b416b95
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 11c989e
fix test failure
narendatha 855fbd2
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 1807bf0
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 1c8591d
Move DeterminantDiversityParams into determinant_diversity module
narendatha 0c0a1b1
Merge remote-tracking branch 'origin/main' into u/narendatha/det_div_…
narendatha 05a6b37
Remove redundant ordered_ids vec in determinant-diversity post-process
narendatha 008f62b
Make search() take SearchPostProcessorKind directly with explicit Non…
narendatha 3165ce4
cargo fmt
narendatha aaca369
Move DeterminantDiversity post-processor from diskann-benchmark to di…
narendatha a6652ae
Use thiserror derive for DeterminantDiversityError
narendatha 26784b7
Add From<DeterminantDiversityError> for ANNError and use ? at callsites
narendatha ae4981d
minor comment fix
narendatha File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
48 changes: 48 additions & 0 deletions
48
diskann-benchmark/example/async-determinant-diversity.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| { | ||
| "search_directories": [ | ||
| "test_data/disk_index_search" | ||
| ], | ||
| "jobs": [ | ||
| { | ||
| "type": "graph-index-build", | ||
| "content": { | ||
| "source": { | ||
| "index-source": "Build", | ||
| "data_type": "float32", | ||
| "data": "disk_index_siftsmall_learn_256pts_data.fbin", | ||
| "distance": "squared_l2", | ||
| "max_degree": 32, | ||
| "l_build": 50, | ||
| "alpha": 1.2, | ||
| "backedge_ratio": 1.0, | ||
| "num_threads": 1, | ||
| "start_point_strategy": "medoid", | ||
| "num_insert_attempts": 1, | ||
| "saturate_inserts": false | ||
| }, | ||
| "search_phase": { | ||
| "search-type": "topk-determinant-diversity", | ||
| "queries": "disk_index_sample_query_10pts.fbin", | ||
| "groundtruth": "disk_index_10pts_idx_uint32_truth_search_res.bin", | ||
| "reps": 5, | ||
| "num_threads": [ | ||
| 1 | ||
| ], | ||
| "power": 2.0, | ||
| "eta": 0.01, | ||
| "runs": [ | ||
| { | ||
| "search_n": 20, | ||
| "search_l": [ | ||
| 20, | ||
| 30, | ||
| 40 | ||
| ], | ||
| "recall_k": 10 | ||
| } | ||
| ] | ||
| } | ||
| } | ||
| } | ||
| ] | ||
| } |
42 changes: 42 additions & 0 deletions
42
diskann-benchmark/example/disk-index-determinant-diversity.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| { | ||
| "search_directories": [ | ||
| "test_data/disk_index_search" | ||
| ], | ||
| "jobs": [ | ||
| { | ||
| "type": "disk-index", | ||
| "content": { | ||
| "source": { | ||
| "disk-index-source": "Build", | ||
| "data_type": "float32", | ||
| "data": "disk_index_siftsmall_learn_256pts_data.fbin", | ||
| "distance": "squared_l2", | ||
| "dim": 128, | ||
| "max_degree": 32, | ||
| "l_build": 50, | ||
| "num_threads": 1, | ||
| "build_ram_limit_gb": 2.0, | ||
| "num_pq_chunks": 128, | ||
| "quantization_type": "FP", | ||
| "save_path": "siftsmall_index_full_det_div" | ||
| }, | ||
| "search_phase": { | ||
| "queries": "disk_index_sample_query_10pts.fbin", | ||
| "groundtruth": "disk_index_10pts_idx_uint32_truth_search_res.bin", | ||
| "search_list": [10, 20, 40], | ||
| "beam_width": 4, | ||
| "recall_at": 10, | ||
| "num_threads": 1, | ||
| "is_flat_search": false, | ||
| "distance": "squared_l2", | ||
| "vector_filters_file": null, | ||
| "post_processor": { | ||
| "type": "determinant-diversity", | ||
| "power": 2.0, | ||
| "eta": 1.0 | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ] | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.