NVIDIA-NeMo / NVIDIA-NeMo/Curator

Dynamic Quality-Score-Based Soft Sampling

Open
#1,719 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
1.8k
Forks
327
Avg merge
4d 5h
Merged PRs (30d)
30

Description

What:
Add a SoftSamplingStage that samples documents proportional to a quality score rather than applying a hard binary threshold. Higher-scored documents appear more often; lower-scored less often — but none are completely discarded.

Why:
SOTA models are using score-based soft sampling rather than hard filters. Hard thresholds discard potentially useful documents; soft sampling preserves diversity while biasing toward quality. Avoids the precision/recall tradeoff of hard cutoffs.

Definition of Done:

  • SoftSamplingStage under nemo_curator/stages/text/
  • Reads score from configurable metadata field
  • Configurable sampling function: linear, sigmoid, power (default: linear)
  • Configurable min/max sampling probability bounds
  • Ray-native; no global shuffle required
  • Emits before/after score distribution comparison in stats
  • Test: verify output score distribution is statistically higher than input

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing stages and tests under nemo_curator/stages/text/ to identify the project’s Ray-native stage and stats patterns. Done means a SoftSamplingStage supports configurable score metadata, linear/sigmoid/power sampling and probability bounds, avoids a global shuffle, reports before/after distributions, and verifies statistically higher output scores.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
54/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.