A four-technique computational framework for assessing whether specific documents were included in an LLM's pretraining data, applied to the Jamrozik et al. (2020) supplementary case raised by Lupyan et al. (2026).
Lupyan et al. (2026) demonstrate that Gemini translates a Jabberwockified passage into content closely matching a legal pre-emption example from the supplementary materials of Jamrozik et al. (2020). This raises the question: does the model output reflect genuine pattern-based reconstruction, or retrieval of memorized pretraining text? We develop a multi-technique membership inference framework to quantify the evidence for or against pretraining inclusion.
Precision, recall, F1, and Jaccard similarity for n=1..8. Decay profile distinguishes memorization from reconstruction.
Compare model perplexity on target vs. controls. Min-K% amplifies memorization signal via low-probability tokens.
Generate 25 paraphrases; z-score measures if model prefers exact original wording over perturbations.
Token accuracy, LCS ratio, edit distance, and semantic preservation between target and output.
Thresholds: S > 0.65 = LIKELY_SEEN 0.35 < S ≤ 0.65 = UNCERTAIN S ≤ 0.35 = LIKELY_UNSEEN
F1 score between Jamrozik target and model output vs. controls across n-gram lengths. Rapid decay indicates non-verbatim reproduction; slow decay would indicate memorization.
The membership score transitions sharply from LIKELY_UNSEEN (0.349) to LIKELY_SEEN (0.735) as memorization strength increases.
Perplexity of the target passage under varying memorization boost compared with control passages.
z-scores for original text vs. paraphrases. Values below -2 strongly indicate memorization.
Seen vs. unseen Min-K% scores across different K thresholds, showing consistent separation.
| n | Target N-grams | Output N-grams | Shared | Precision | Recall | F1 | Jaccard |
|---|---|---|---|---|---|---|---|
| 1 | 38 | 37 | 31 | 0.838 | 0.816 | 0.827 | 0.705 |
| 2 | 47 | 46 | 31 | 0.674 | 0.660 | 0.667 | 0.500 |
| 3 | 48 | 47 | 25 | 0.532 | 0.521 | 0.526 | 0.357 |
| 4 | 48 | 47 | 18 | 0.383 | 0.375 | 0.379 | 0.234 |
| 5 | 47 | 46 | 12 | 0.261 | 0.255 | 0.258 | 0.148 |
| 6 | 46 | 45 | 8 | 0.178 | 0.174 | 0.176 | 0.096 |
| 7 | 45 | 44 | 4 | 0.091 | 0.089 | 0.090 | 0.047 |
| 8 | 44 | 43 | 2 | 0.047 | 0.045 | 0.046 | 0.024 |
| Passage / Boost | PPL | Mean LogP | Min-K% |
|---|---|---|---|
| Target (0.0) | 6.551 | -1.880 | -2.704 |
| Target (0.4) | 4.795 | -1.567 | -2.453 |
| Target (0.8) | 3.293 | -1.192 | -1.970 |
| Target (1.0) | 2.568 | -0.943 | -1.625 |
| Target (1.5) | 1.670 | -0.513 | -1.377 |
| Legal Control 1 | 9.614 | -2.263 | -2.994 |
| Legal Control 2 | 9.286 | -2.228 | -2.860 |
| Legal Control 3 | 9.276 | -2.227 | -3.053 |
| Unrelated Ctrl 1 | 10.321 | -2.334 | -3.055 |
| Unrelated Ctrl 2 | 9.768 | -2.279 | -3.001 |
| Scenario | Orig PPL | Mean Pert PPL | Ratio | z-score |
|---|---|---|---|---|
| Seen Strong (1.0) | 2.445 | 6.960 | 0.351 | -11.71 |
| Seen Moderate (0.6) | 4.122 | 6.945 | 0.593 | -5.44 |
| Seen Weak (0.3) | 5.102 | 6.943 | 0.735 | -4.36 |
| Unseen (0.0) | 6.373 | 6.931 | 0.919 | -1.11 |
| Control: Legal 1 | -0.28 | |||
| Control: Legal 2 | +0.43 | |||
| Control: Legal 3 | +0.77 |
| Metric | Target vs. Output | Best Control |
|---|---|---|
| Token Accuracy | 0.353 | 0.059 |
| LCS Ratio | 0.824 | 0.235 |
| Norm. Edit Distance | 0.176 | 0.880 |
| Semantic Preservation | 0.773 | 0.190 |
| K (%) | Seen | Unseen | Control | Gap |
|---|---|---|---|---|
| 5 | -2.168 | -3.031 | -3.078 | 0.862 |
| 10 | -2.128 | -2.900 | -3.165 | 0.772 |
| 20 | -1.961 | -2.593 | -3.088 | 0.631 |
| 30 | -1.867 | -2.686 | -2.895 | 0.819 |
| 40 | -1.614 | -2.581 | -2.709 | 0.967 |
| 50 | -1.593 | -2.307 | -2.623 | 0.714 |
| Boost | N-gram | Perplexity | Perturbation | Fidelity | Aggregate | Verdict |
|---|---|---|---|---|---|---|
| 0.0 | 0.190 | 0.656 | 0.000 | 0.588 | 0.349 | LIKELY_UNSEEN |
| 0.1 | 0.190 | 0.695 | 0.349 | 0.588 | 0.463 | UNCERTAIN |
| 0.2 | 0.190 | 0.885 | 1.000 | 0.588 | 0.706 | LIKELY_SEEN |
| 0.3 | 0.190 | 0.986 | 1.000 | 0.588 | 0.732 | LIKELY_SEEN |
| 0.4 | 0.190 | 1.000 | 1.000 | 0.588 | 0.735 | LIKELY_SEEN |
| 0.5 | 0.190 | 1.000 | 1.000 | 0.588 | 0.735 | LIKELY_SEEN |
| 0.6 | 0.190 | 1.000 | 1.000 | 0.588 | 0.735 | LIKELY_SEEN |
| 0.8 | 0.190 | 1.000 | 1.000 | 0.588 | 0.735 | LIKELY_SEEN |
| 1.0 | 0.190 | 1.000 | 1.000 | 0.588 | 0.735 | LIKELY_SEEN |
| 1.5 | 0.190 | 1.000 | 1.000 | 0.588 | 0.735 | LIKELY_SEEN |