Download sdg/preprocessing/dedupe/fixtures.py from fzzhang/svd-code: direct link, hf CLI and curl.
- Browser
- Download file 4.78 kB
-
https://huggingface.co/fzzhang/svd-code/resolve/main/sdg/preprocessing/dedupe/fixtures.py
- Command line
-
hf download hf://fzzhang/svd-code/sdg/preprocessing/dedupe/fixtures.py
-
curl -L -o fixtures.py https://huggingface.co/fzzhang/svd-code/resolve/main/sdg/preprocessing/dedupe/fixtures.py
4.78 kB
| """Realistic science-prompt fixtures used by test_invariants.py. | |
| The list `REALISTIC_SCIENCE_PROMPTS` is hand-crafted to contain four classes | |
| of items so tests can pin exact post-stage counts: | |
| Class A: byte-identical duplicates (3 copies) | |
| -> caught by Stage 1 (caller's exact-prompt reservoir dedup) | |
| Class B: formatting variants of one prompt (3 prompts: extra whitespace, | |
| upper-case differences, trailing newline) | |
| -> NOT caught by exact dedup; caught by Stage 2 (MinHash with | |
| normalize=True) | |
| Class C: near-duplicate paraphrases of one prompt (3 prompts: each is the | |
| same long base text with one single-word edit) | |
| -> NOT caught by exact or formatting normalization; caught by Stage 2 | |
| (MinHash with threshold=0.8) | |
| Class D: 7 distinct singleton prompts (math / biology / chemistry / physics) | |
| -> none of the dedup stages should touch these | |
| Total = 3 + 3 + 3 + 7 = 16 prompts. | |
| After exact dedup: 1 + 3 + 3 + 7 = 14 | |
| After MinHash: 1 + 1 + 1 + 7 = 10 | |
| Class C uses a ~140-word base text so that single-word edits keep Jaccard | |
| robustly above MinHash's threshold of 0.8. With n=140 tokens (β136 5-grams) | |
| and a single-word edit affecting 5 5-grams, Jaccard = 131/141 β 0.929 β well | |
| into LSH's high-detection regime, so the test is deterministic. | |
| """ | |
| from __future__ import annotations | |
| # ββ Class A: byte-identical βββββββββββββββββββββββββββββββββββββββββββββββββ | |
| _EXACT_DUP = ( | |
| "Solve the equation x squared minus four equals zero. Show all steps " | |
| "clearly." | |
| ) | |
| # ββ Class B: formatting variants of one prompt ββββββββββββββββββββββββββββββ | |
| _FMT_BASE = "Calculate the derivative of f(x) = x^3 + 2x with respect to x." | |
| _FORMATTING_VARIANTS = [ | |
| _FMT_BASE, | |
| " Calculate the derivative of f(x) = x^3 + 2x with respect to x. ", | |
| "Calculate the DERIVATIVE of f(x) = x^3 + 2x with respect to x.\n", | |
| ] | |
| # ββ Class C: near-duplicate paraphrases (single-word edits over ~80 words) ββ | |
| _NEAR_DUP_BASE = ( | |
| "Explain in detail the process of photosynthesis in green plants. " | |
| "Describe step by step how light energy is captured by chlorophyll " | |
| "molecules in the thylakoid membrane, how electrons are transported " | |
| "through photosystems II and I, how ATP and NADPH are generated through " | |
| "photophosphorylation, and how the Calvin cycle uses these energy " | |
| "carriers to fix carbon dioxide into glucose. Include the role of stomata " | |
| "in gas exchange and discuss how environmental factors like light " | |
| "intensity, water availability, soil nutrients, atmospheric carbon " | |
| "dioxide concentration, and temperature affect the overall rate of " | |
| "photosynthesis. Discuss the differences between C3, C4, and CAM " | |
| "photosynthetic pathways and their evolutionary adaptations to different " | |
| "environmental conditions including drought stress and high light " | |
| "intensity. Finally explain how mitochondrial respiration interacts with " | |
| "chloroplast metabolism in the cells of plants and how this energy " | |
| "balance is maintained throughout the day and night cycle of plant " | |
| "tissues across different seasons in temperate and tropical biomes." | |
| ) | |
| _NEAR_DUP_VARIANTS = [ | |
| _NEAR_DUP_BASE, | |
| _NEAR_DUP_BASE.replace("process", "mechanism", 1), # 1-word edit near start | |
| _NEAR_DUP_BASE.replace("glucose", "sugar", 1), # 1-word edit in middle | |
| ] | |
| # ββ Class D: distinct singletons ββββββββββββββββββββββββββββββββββββββββββββ | |
| _SINGLETONS = [ | |
| "Compute the integral of sin(x) cos(x) from 0 to pi/2 using substitution.", | |
| "Describe the structure of a eukaryotic cell and its main organelles in detail.", | |
| "What is the wavelength of light with frequency 5 x 10^14 Hz in vacuum?", | |
| "Find the eigenvalues of the 2x2 matrix [[2, 1], [1, 2]] step by step.", | |
| "Explain how DNA replication occurs during cell division and list the enzymes involved.", | |
| "Balance the chemical equation H2 + O2 produces H2O and explain conservation of atoms.", | |
| "Determine the molarity of a solution containing 5 grams of NaCl in 250 mL of water.", | |
| ] | |
| REALISTIC_SCIENCE_PROMPTS: list[str] = ( | |
| [_EXACT_DUP, _EXACT_DUP, _EXACT_DUP] | |
| + _FORMATTING_VARIANTS | |
| + _NEAR_DUP_VARIANTS | |
| + _SINGLETONS | |
| ) | |
| # Index ranges for assertions in tests. | |
| EXACT_DUP_RANGE = range(0, 3) # indices 0, 1, 2 | |
| FORMATTING_RANGE = range(3, 6) # indices 3, 4, 5 | |
| NEAR_DUP_RANGE = range(6, 9) # indices 6, 7, 8 | |
| SINGLETON_RANGE = range(9, 16) # indices 9..15 | |