Recipe-Matching, Not Equivalence
Organizations: KAUST Academy Computer, Electrical & Mathematical Sciences & Engineering (CEMSE) King Abdullah University of Science and Technology (KAUST) Thuwal, Saudi Arabia · KAUST Academy & CEMSE, KAUST Lady Margaret Hall, University of Oxford
Abstract
MathNet-Retrieve asks a retriever to find, for a math problem, a document stating the same problem. An LLM under one fixed prompt writes each gold document and its near-miss distractors; LLM judges filter them. We call this procedure the "recipe", training on pairs built the same way "recipe-matching", and ask how much score it buys beyond the ability the benchmark claims to test. Two models from one base, matched in rows and settings, differ only in the training file: pairs written under the benchmark's published prompt by another vendor's LLM and judge, or computer-algebra-verified pairs with no LLM anywhere. The first leads by 45 R@1 points on the easy tier. By a non-LLM paraphrase control, half to two thirds of that gap comes from the pairs being LLM-written at all: LLM rewrites under two unrelated prompts, with the verified model's negatives, recover 30 and 22 of the 45 points; back-translations with the same negatives recover almost none. The remaining 15 to 25 points appear only under the benchmark's own prompt and vanish on real duplicates no generator wrote, the same problem in two languages. The hard tier rewards the recipe's pair structure, a deep rewrite against a minimal-edit near-miss: LLM rewrites alone score zero on it, attaching negatives unlocks it, and every negative that does so costs cross-language points; the sets scoring highest on it separate near-misses no LLM wrote worse than LLM rewrites with verified negatives. MELD also moves when a model trains on pairs built its way, without losing retention; on SABER-Math the registered attack fails, and the one gain, from its LLM-written summaries, is small but holds at a matched budget. Only on MathNet-Retrieve could we pin an inversion, benchmark score up and real retention down, to one edit of a training file. We release the generator-free duplicate evaluations, the near-miss test and three trained models.
Figures & tables
| Evaluation | Base | Verified | Reference | Recipe | Recipe verified | Recipe reference |
|---|---|---|---|---|---|---|
| Benchmark tiers | ||||||
| Easy (R@1) | 8.32 | 17.05 0.79 | 46.91 1.25 | 62.38 0.85 | 45.33 | 15.47 |
| Medium (R@1) | 1.78 | 3.14 0.46 | 4.22 0.25 | 8.84 0.36 | 5.70 | 4.62 |
| Hard (R@1) | 0.00 | 0.16 0.06 | 10.30 1.15 | 9.42 0.61 | 9.26 | |
| Hard (R@5) | 4.08 | 8.35 1.13 | 60.05 1.22 | 57.20 0.82 | 48.84 | |
| Real duplicates, no LLM involved | ||||||
Appendix figures & tables25 assets
Supplementary material from the paper’s appendix.
Appendix
| Base model | Qwen3-Embedding-0.6B, bf16, all weights trained |
|---|---|
| Loss | the in-batch contrastive loss of Eq. 1 , computed with gradient caching [ 33 ] |
| Batch size / mini-batch size | / (the cache makes the gradient identical to a plain batch of ) |
| Learning rate | |
| Epochs | |
| Seeds | – (eight per arm) |
| Training rows per arm | , with all rows of one source problem kept together |
| Control | Explanation it removes | Easy-tier gap (R@1) |
|---|---|---|
| Matched budget, eight seeds (Table 1 ) | seed noise | |
| Queries the original gate kept out of both training files ( ) | leaked test items | |
| No copy of the query in either arm’s rows ( , strictest) | leaked test items | |
| Retrain under the corrected filter, fewer rows | near-verbatim copies of queries | |
| Retrain under the corrected filter, removed third regenerated from fresh sources | near-verbatim copies of queries | |
| Retrain under the corrected filter, removed third regenerated from the same sources | near-verbatim copies of queries |
| Query slice | Base | Verified base | Recipe base | D4 base | |
|---|---|---|---|---|---|
| All queries | 393 | 84.73 | |||
| Pair found through a shared answer | 25 | 88.00 | |||
| Pair found through matching text | 15 | 86.67 | |||
| Pair found through formulas only | 353 | 84.42 | |||
| Least shared formula content (bottom quartile) | 99 | 76.77 | |||
| Most shared formula content (top quartile) | 99 | 93.94 |
| Model | Primary ( ) | English ( ) | Leaked ( ) | Exact reprints ( ) | Primary gap to base |
|---|---|---|---|---|---|
| Base B (untrained) | 62.40 | 59.13 | 50.00 | 100.00 | |
| Base V2 instruction | 62.40 | 59.13 | 52.44 | 100.00 | |
| BM25 (lexical baseline) | 54.40 | 51.30 | 32.93 | 100.00 | |
| Verified arm ( seeds) | 51.30 | 47.07 | 34.91 | 99.40 | |
| Recipe arm ( seeds) | 46.30 | 41.63 | 35.82 | 85.61 | |
| D4 (recipe-free, no negatives) | 61.07 | 57.68 | 44.72 | 100.00 |
| Model | Benchmark hard-tier R@1 | Probe R@1, full corpus | Probe R@1, near-misses only |
|---|---|---|---|
| Base B (untrained) | 0.00 | 10.84 | 10.93 |
| BM25 (lexical baseline) | 0.01 | 72.27 | 73.8 |
| Verified arm ( seeds) † | 0.16 | 97.42 0.32 | 97.53 0.33 |
| Recipe arm ( seeds) | 9.42 | 60.49 2.50 | 68.38 2.40 |
| D2 arm (paraphrase of the benchmark’s prompt) | 6.76 | 62.54 1.23 | 69.35 1.99 |
| D3 arm (different-style prompt) | 4.67 | 68.50 1.38 | 72.30 2.21 |
| Query slice | Queries | Recipe verified, easy R@1 |
|---|---|---|
| All queries | 45.33 0.93 | |
| Queries the original gate did catch (clean, up to missed copies) | 46.25 0.86 | |
| No copy of the query in either arm’s training rows (strictest clean) | 44.73 0.86 | |
| Query text trained on by the recipe arm (leaked) | 49.80 1.51 | |
| A copy exists in the corpus, but neither arm trained on it | 41.16 0.94 |
| Recipe verified | Headline (original gate, rows) | Filtered (corrected gate, rows) | Regenerated, fresh sources (corrected gate, rows) | Regenerated, same sources (corrected gate, rows) |
|---|---|---|---|---|
| Easy R@1 | 45.33 0.93 | 43.11 0.90 | 44.45 0.87 | 44.38 1.46 |
| Hard R@1 | 9.26 0.60 | 9.34 0.31 | 9.21 0.66 | 9.05 0.77 |
| Real duplicates (strict R@1) | 9.74 | 11.04 | 17.40 | 18.73 |
| Difference-in-differences | 35.59 | 32.07 | 27.05 | 25.65 |
| Training set | Easy R@1 | Hard R@1 | Cross-language dup. R@1 |
|---|---|---|---|
| Base 0.6B (untrained) | 8.32 | 0.00 | 84.73 |
| Verified arm | 17.05 0.79 | 0.16 0.06 | 56.52 4.05 |
| D4: restatement prompt unrelated to the recipe | 30.03 1.45 | 0.04 0.02 | 93.81 0.39 |
| D3: rewrite prompt in a different style | 67.88 0.76 | 4.67 0.40 | 65.39 1.83 |
| D2: paraphrase of the benchmark’s prompt | 67.54 1.95 | 6.76 1.01 | 68.02 3.51 |
| D1: the benchmark’s prompt ( recipe arm) | 61.86 0.52 | 9.90 0.74 | 66.41 1.78 |
| recipe | how a benchmark builds itself: the prompts and filters under which an LLM writes part of it |
|---|---|
| template | the exact wording of that prompt |
| genre | the style of LLM-written rewrites, whichever prompt produced them |
| pair structure | a deep LLM rewrite as the positive against a minimal-edit near-miss as the negative |
| surface | the part of a benchmark its LLM writes, the part an attacker can imitate: documents, summaries or evaluation pairs |
| reference | the recipe-free comparison model: LLM restatements written under a prompt unrelated to the recipe (D4), paired with the verified arm’s computer-algebra negatives; no benchmark prompt anywhere in its training file |
| Negatives | ||||
|---|---|---|---|---|
| Positives | none | computer-algebra counterexamples | LLM near-misses, unrelated prompt | LLM near-misses, recipe prompt |
| Computer-algebra near-copies | 0.00 / 52.08 | 0.16 / 56.52 verified | 0.23 / 13.48 | 0.11 / 12.47 |
| Back-translated paraphrases | 0.05 / 94.57 | 1.09 / 84.57 | 1.88 / 35.20 | 4.18 / 38.67 |
| LLM restatements, unrelated prompt (D4) | 0.04 / 93.81 D4 | 10.30 / 78.02 reference | 16.96 / 85.50; 20.93 / 84.91 | 20.71 / 83.89; 26.97 / 78.88 |
| LLM rewrites, recipe prompt (D1) | 0.00 / 83.21 | 2.09 / 70.82 | 3.45 / 47.41 | 9.42 / 66.26 recipe |
| Positives | Negatives | Easy R@1 | Hard R@1 | Cross-language dup. R@1 |
|---|---|---|---|---|
| The : CAS or D4 positives, with or without CAS counterexamples | ||||
| CAS (verified) | CAS counterexamples ( verified arm) | 17.05 0.79 | 0.16 0.06 | 56.52 4.05 |
| CAS (verified) | none | 7.42 0.24 | 0.00 0.00 | 52.08 1.06 |
| D4 (recipe-free) | none ( D4) | 30.03 1.45 | 0.04 0.02 | 93.81 0.39 |
| D4 (recipe-free) | CAS counterexamples ( reference) | 46.91 1.25 | 10.30 1.15 | 78.02 0.91 |
| D4 positives with LLM-written near-misses (matched: the reference’s count; full: the recipe arm’s volume) | ||||
| Rewrite prompt | Held-out positives | AUC vs. organic | CI |
|---|---|---|---|
| D1: the benchmark’s Appendix-F template | 0.8802 | ||
| D2: paraphrase of that template | 0.8756 | ||
| D3: rewrite prompt in a different style | 0.8654 | ||
| D4: restatement prompt unrelated to the recipe | 0.6758 |
| Model | (similarity, style) | Top- style percentile |
|---|---|---|
| Base 0.6B (untrained) | 44.8 | |
| Verified arm | 45.5 | |
| D4: restatement prompt unrelated to the recipe | 48.1 | |
| Reference (D4 CAS negatives) | 52.0 | |
| D4 recipe-prompt near-misses, count-matched | 53.1 | |
| D4 recipe-prompt near-misses, full | 53.5 |
| Model | (all documents) | Top- style percentile |
| Public models, never trained by us | ||
| Qwen3-Embedding-8B | 45.21 | |
| Qwen3-Embedding-0.6B (the untrained base) | 44.83 | |
| Qwen3-Embedding-4B | 45.61 | |
| MathLeap-Qwen-8B | 47.04 | |
| MathLeap-Octen-8B | 47.94 | |
| Model | Hard-tier R@1 | Cross-language duplicates, strict R@1 / R@5 / R@10 |
|---|---|---|
| Qwen3-Embedding-0.6B (base, untrained) | 0.00 | 84.73 / 95.17 / 96.95 |
| BM25 (lexical baseline) | 0.01 | 10.69 / 15.78 / 19.59 |
| V2 (ours, Appendix E ) | 0.01 | 74.30 / 89.31 / 93.13 |
| Recipe arm | 9.42 0.61 | 66.26 2.31 / 83.68 1.61 / 86.93 1.10 |
| Verified arm | 0.16 0.06 | 56.52 4.05 / 76.21 3.63 / 82.92 3.14 |
| Reference (D4 CAS negatives) | 10.30 1.15 | 78.02 0.91 / 83.94 1.51 / 85.62 1.19 |
| Model | Easy R@1 / R@5 / R@10 | Medium R@1 / R@5 / R@10 | Hard R@1 / R@5 / R@10 |
|---|---|---|---|
| Qwen3-Embedding-0.6B (base, untrained) | 8.32 / 78.61 / 87.78 | 1.78 / 60.91 / 75.49 | 0.00 / 4.08 / 17.60 |
| Verified arm | 17.31 / 85.10 / 92.27 | 2.47 / 41.91 / 57.74 | 0.13 / 9.59 / 26.49 |
| Recipe arm | 61.88 / 89.94 / 93.63 | 9.06 / 55.18 / 66.79 | 9.37 / 57.06 / 70.13 |
| Reference (D4 CAS negatives) | 46.51 / 88.06 / 93.75 | 4.34 / 42.20 / 60.62 | 10.81 / 60.27 / 75.58 |
| D4 recipe-prompt near-misses, matched | 45.85 / 82.89 / 89.03 | 2.76 / 27.85 / 40.01 | 20.31 / 64.69 / 73.99 |
| D4 recipe-prompt near-misses, full | 38.58 / 70.74 / 77.01 | 2.67 / 20.83 / 28.73 | 26.47 / 63.82 / 71.40 |
| Model | Easy R@1 / R@5 / R@10 | Medium R@1 / R@5 / R@10 | Hard R@1 / R@5 / R@10 |
|---|---|---|---|
| Public models | |||
| RaDeR-gte-Qwen2-7B | 18.94 / 95.57 / 99.05 | 1.12 / 63.88 / 83.24 | 0.01 / 8.63 / 34.63 |
| RaDeR-Qwen2.5-7B | 17.41 / 96.91 / 99.51 | 0.92 / 60.05 / 80.14 | 0.01 / 9.53 / 37.86 |
| MathLeap-Octen-8B | 15.87 / 84.17 / 94.40 | 3.51 / 75.90 / 91.97 | 0.01 / 17.53 / 62.57 |
| MathLeap-Qwen-8B | 13.79 / 81.32 / 93.16 | 3.37 / 75.56 / 91.15 | 0.01 / 17.01 / 60.86 |
| Qwen3-Embedding-4B | 11.15 / 85.65 / 93.34 | 1.93 / 70.19 / 85.15 | 0.01 / 6.04 / 28.58 |
| Model | Easy R@1 / R@5 / R@10 | Medium R@1 / R@5 / R@10 | Hard R@1 / R@5 / R@10 | Cross-language dup. R@1 |
| Base 0.6B (untrained) | 8.32 / 78.61 / 87.78 | 1.78 / 60.91 / 75.49 | 0.00 / 4.08 / 17.60 | 84.73 |
| Uncapped verified arm | 15.92 / 78.18 / 87.21 | 3.86 / 40.80 / 55.92 | 0.16 / 6.59 / 19.47 | 47.58 |
| Soup (weights: arm, base) | 13.55 / 93.57 / 97.93 | 1.59 / 59.93 / 76.35 | 0.01 / 4.80 / 23.13 | 80.15 |
| Soup | 15.77 / 93.42 / 97.68 | 1.77 / 57.30 / 74.17 | 0.01 / 6.28 / 27.51 | 73.54 |
| Soup | 16.41 / 90.44 / 96.04 | 2.33 / 52.23 / 69.83 | 0.01 / 7.54 / 28.14 | 62.34 |
| V1 (verified pairs replay) | 20.83 / 91.96 / 96.71 | 3.67 / 63.57 / 78.80 | 0.03 / 7.67 / 30.01 | 59.80 |
| Model | MELD R@1 | BRIGHT-TT nDCG@10 | BRIGHT-AoPS nDCG@10 | ImpliRet nDCG@10 |
|---|---|---|---|---|
| Qwen3-Embedding-0.6B (base, untrained) | 10.19 | 21.24 | 7.44 | 16.03 |
| Verified arm | 9.44 | 1.83 | 0.00 | 13.14 |
| Recipe arm | 18.89 | 10.19 | 0.75 | 9.23 |
| V1 (verified pairs replay) | 9.63 | 16.90 | 1.59 | 16.04 |
| V2 (the same mix instruction) | 10.19 | 15.26 | 2.55 | 16.20 |
| Qwen3-Embedding-4B (untrained) | 18.89 | 31.94 | 8.69 | 14.99 |
| Model | Easy | Medium | Hard | Same-lang. primary | Same-lang. all |
|---|---|---|---|---|---|
| ColBERTv2 (untrained) | 3.97 / 52.79 / 60.86 | 1.51 / 32.80 / 42.37 | 0.01 / 1.33 / 3.43 | 46.40 | 74.30 |
| Verified arm | 6.57 / 59.83 / 69.66 | 2.17 / 30.19 / 41.43 | 0.01 / 1.24 / 3.53 | 46.40 | 73.90 |
| Recipe arm | 39.05 / 75.69 / 81.44 | 4.28 / 30.02 / 40.09 | 0.08 / 2.35 / 5.64 | 35.20 | 66.06 |
| Task | Base | Verified arm | Recipe arm | Recipe verified | Recipe base | |
|---|---|---|---|---|---|---|
| MSE duplicate questions | 25116 | 48.94 | 32.64 | 28.05 | ||
| MathOverflow duplicate questions | 225 | 72.67 | 52.37 | 48.22 | ||
| MSE question to answer (ARQMath-3 Task 1) | 78 | 40.04 | 29.40 | 41.66 | ||
| ProofWiki question to answer | 1099 | 75.41 | 59.35 | 56.63 | ||
| Stacks question to answer | 776 | 44.58 | 34.59 | 29.19 | ||
| ProofWiki premises | 1086 | 20.12 | 15.89 | 11.29 |
| Documents written by an LLM | Computer algebra | Human authors | |||
|---|---|---|---|---|---|
| Trained on | Easy tier (Gemini, the benchmark’s prompt) | Golds rebuilt by Qwen, the benchmark’s prompt | Golds rebuilt by Qwen, a different-style prompt | Near-miss probe | Cross-language duplicates |
| Untrained base | 8.32 | 10.69 | 3.28 | 10.84 | 84.73 |
| Verified arm: computer-algebra pairs | 17.05 | 15.02 | 15.80 | 97.42 † | 56.52 |
| Recipe arm: benchmark’s prompt, Qwen | 62.38 | 50.75 | 44.13 | 60.49 | 66.26 |
| D3 arm: different-style prompt, Qwen | 67.88 | 50.56 | 55.41 | 68.50 | 65.39 |
| Reference: unrelated prompt, verified negatives | 46.91 | 46.03 | 44.00 | 53.51 | 78.02 |
| Gold documents | Base | Verified arm | D1 (recipe) | D2 | D3 | D4 | Reference | Gap |
|---|---|---|---|---|---|---|---|---|
| Original benchmark golds | 7.34 | 15.54 | 61.18 | 64.92 | 67.41 | 30.43 | 46.89 | 45.64 |
| Regenerated with the benchmark’s template | 10.69 | 15.02 | 50.75 | 55.67 | 50.56 | 28.59 | 46.03 | 35.73 |
| Regenerated with a paraphrase of it (D2’s prompt) | 8.39 | 16.72 | 54.36 | 60.07 | 56.92 | 28.79 | 45.97 | 37.64 |
| Regenerated in a different style (D3’s prompt) | 3.28 | 15.80 | 44.13 | 52.92 | 55.41 | 21.70 | 44.00 | 28.33 |
| Each gold from one of the three, at random | 7.02 | 16.26 | 47.74 | 54.95 | 54.23 | 25.84 | 43.93 | 31.48 |
| Gold documents | Base | Verified arm | D1 (recipe) | D2 | D3 | D4 | Gap |
|---|---|---|---|---|---|---|---|
| Original benchmark golds | 7.10 | 16.33 | 60.43 | 63.27 | 65.04 | 28.48 | 44.10 |
| Regenerated with the benchmark’s template | 0.00 | 0.53 | 20.14 | 17.48 | 10.56 | 0.53 | 19.61 |
| Regenerated with a paraphrase of it (D2’s prompt) | 0.00 | 0.71 | 22.54 | 19.61 | 11.80 | 0.44 | 21.83 |
| Regenerated in a different style (D3’s prompt) | 0.00 | 0.62 | 17.21 | 18.10 | 14.02 | 0.53 | 16.59 |
| Each gold from one of the three, at random | 0.00 | 0.80 | 18.54 | 18.19 | 11.71 | 0.53 | 17.74 |
Benchmark Validity
Benchmark validity concerns whether evaluation tasks, scores, and rankings support the capability claims researchers make about AI systems.
See all 175 papers