-
Notifications
You must be signed in to change notification settings - Fork 320
docs: add fern docs and release notes for LSH memory config (PR #1603) #1732
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -94,6 +94,9 @@ Configure fuzzy deduplication using these key parameters: | |
| | `seed` | int | 42 | Random seed for MinHash permutations | | ||
| | `input_filetype` | str | "parquet" | Input file format ("parquet" or "jsonl") | | ||
| | `input_blocksize` | str \| int | "1GiB" | Size of input blocks for processing | | ||
| | `lsh_num_output_partitions` | int \| None | None | Total number of partitions to write during the LSH shuffle. If `None`, the partition count is chosen automatically as the closest power of 2 <= the number of input tasks. | | ||
| | `lsh_rmm_pool_size` | int \| "auto" \| None | "auto" | Size of the RMM GPU memory pool in bytes for the LSH stage. `"auto"` sets the pool to 90% of free GPU memory. `None` sets the pool to 50% of free GPU memory and allows expansion. | | ||
| | `lsh_spill_memory_limit` | int \| "auto" \| None | "auto" | Device memory limit in bytes for spilling to host during the LSH stage. `"auto"` sets the limit to 80% of the RMM pool size. `None` disables spilling. | | ||
|
Comment on lines
+97
to
+99
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
These three table rows document In LSHStage(
...
rmm_pool_size="auto", # hard-coded, not self.lsh_rmm_pool_size
spill_memory_limit="auto", # hard-coded, not self.lsh_spill_memory_limit
# total_nparts not passed at all
),If a user tries to pass any of these keyword arguments to |
||
| | `perform_removal` | bool | False | Reserved; must remain `False`. Fuzzy removal is performed with `TextDuplicatesRemovalWorkflow`. | | ||
|
|
||
| ### Similarity Threshold | ||
|
|
@@ -206,6 +209,8 @@ The workflow produces these output files: | |
| **Performance tuning**: | ||
|
|
||
| - **Memory**: Adjust `bands_per_iteration` (lower = less memory, more iterations) | ||
| - **GPU memory (LSH)**: Use `lsh_rmm_pool_size` to control GPU memory allocation and `lsh_spill_memory_limit` to tune host-spilling behavior during the LSH stage. Reducing the pool size or lowering the spill threshold can prevent out-of-memory errors on smaller GPUs. | ||
| - **Shuffle partitions**: Set `lsh_num_output_partitions` to control the number of output partitions during the LSH shuffle. More partitions reduce per-partition memory but increase I/O overhead. | ||
| - **Accuracy**: Use `char_ngrams >= 20` to reduce false positives | ||
| - **Best practices**: Clear cache between runs, use `input_blocksize="1GiB"` | ||
|
|
||
|
|
||
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.
This entry states that PR #1603 has landed ("now exposes three parameters … previously hardcoded"), but the
FuzzyDeduplicationWorkflowconstructor in the current HEAD of26.04-stagingstill has nolsh_*parameters and_create_lsh_pipelinestill hard-codesrmm_pool_size="auto"andspill_memory_limit="auto".Publishing a release note for a change that isn't yet in the branch will be confusing to users who read the changelog and try to use these parameters against an installed 26.04 build. This PR should be blocked on (or merged simultaneously with) PR #1603.