Benchmark-kontaminering
Kunna upptäcka och undvika att testdata läckt in i träning.
Förkunskaper
Intuition
Om en modells träningsdata innehåller testfrågorna (med svar) mäter benchmarken minne, inte förmåga. Webbskrapade korpusar innehåller GitHub, StackOverflow, Wikipedia — och där ligger GSM8K, HumanEval, MMLU i klartext.
Vägar in: publika benchmarks på webben; syntetisk träningsdata genererad av en modell som sett benchmarken; finjusteringsdata som råkar innehålla testfall; «träna på val-set» av misstag.
Upptäckt:
- n-gram-överlapp mellan testfall och träningskorpus (13-gram är standard) — kräver tillgång till korpusen.
- Perplexitet: onormalt låg på testsetet jämfört med nyskriven text i samma stil.
- Kanarietest: modellen kompletterar en testfråga ordagrant när den får början.
- Tidsjämförelse: prestanda på fall publicerade efter modellens träningsdatum.
Skydd: privata evals som aldrig läggs på webben; nyskrivna fall; kanarie-strängar i egna dataset; dokumentera datumet.
Kod
import re
def ngrams(text, n=13):
t = re.findall(r"\w+", text.lower())
return {" ".join(t[i:i+n]) for i in range(len(t) - n + 1)}
def kontaminerad(testfall, korpus_ngrams, n=13, thr=0.0):
g = ngrams(testfall, n)
return len(g & korpus_ngrams) / max(1, len(g)) > thr
# kanarietest: ge första halvan av frågan, se om modellen fortsätter ordagrant
def kanarie(llm, fraga):
ord = fraga.split(); halva = " ".join(ord[: len(ord) // 2])
fortsattning = llm(halva, max_tokens=len(ord), temperature=0)
return " ".join(ord[len(ord) // 2:]).lower() in fortsattning.lower()
# perplexitetsjämförelse: PPL(test) << PPL(nyskrivna fall i samma stil) → misstänkt
Rapportera alltid: «modellens träningsdata-cutoff» och «benchmarkens publiceringsdatum». Om cutoff > publicering: anta kontaminering tills motsatsen visats.
Behärskning innebär
- Förklarar hur testdata läcker in i förträning och finjustering
- Upptäcker kontaminering med n-gram-överlapp och perplexitetsjämförelse
- Designar okontaminerade evals
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- arXiv — Investigating Data Contamination in Modern Benchmarks for LLMs — arXiv (öppen åtkomst; licens per artikel)
- arXiv — Language Models are Few-Shot Learners (appendix C, kontaminering) — arXiv (öppen åtkomst; licens per artikel)