ecloudtech/TurkishMMLU-Kirlilik
TurkishMMLU Kirlilik Listesi — Türkçe web'de aynen bulunan test soruları TurkishMMLU test kümesindeki 900 sorunun 113'ü (%12,6) 527 milyon kelimelik bir Türkçe web külliyatında birebir geçmektedir. Bu depo o soruların listesini, bulunma yöntemini ve yeniden üretim betiğini içerir; amaç, Türkçe web metniyle eğitilen modellerin TurkishMMLU puanlarını kirlilik dışı bırakılmış bir alt kümede de raporlayabilmesidir. English summary at the end. Neden önemli Bir kıyas… See the full description on the dataset page: https://huggingface.co/datasets/ecloudtech/TurkishMMLU-Kirlilik.
TurkishMMLU Kirlilik Listesi — Türkçe web'de aynen bulunan test soruları
TurkishMMLU test kümesindeki 900 sorunun 113'ü (%12,6) 527 milyon kelimelik bir Türkçe web külliyatında birebir geçmektedir. Bu depo o soruların listesini, bulunma yöntemini ve yeniden üretim betiğini içerir; amaç, Türkçe web metniyle eğitilen modellerin TurkishMMLU puanlarını kirlilik dışı bırakılmış bir alt kümede de raporlayabilmesidir.
English summary at the end.
Neden önemli
Bir kıyas sorusu eğitim külliyatında aynen geçiyorsa, modelin o soruyu "bilmesi" yetenek değil ezberdir. Türkçe web'den toplanan her külliyat için bu risk vardır; soruların büyük kısmı ders kitabı ve deneme sınavı sitelerinden geldiği için web'de kopyaları bulunur.
Kendi ölçümümüzde etkisi şuydu: bir devam-eğitimi modelinin tabanına göre farkı tüm 900 soruda +6,27 puan, kirli sorular çıkarılınca +4,14 puan ölçüldü. Yani raporlanan farkın üçte biri kirlilikten geliyordu.
Yöntem
GPT-3 ve Llama teknik raporlarındaki ölçütün aynısı — n-kelimelik pencere (shingle) birebir eşleşmesi:
- Soru metni normalize edilir: NFC, Türkçe küçük harf (İ→i, I→ı), noktalama ve sayı dışı karakterler boşluğa çevrilir, kelimelere ayrılır.
- Her sorudan ardışık n kelimelik tüm pencereler çıkarılır.
- Külliyat aynı normalizasyonla akıtılır; herhangi bir pencere külliyatta birebir geçiyorsa soru kirli sayılır.
İki eşik raporlanır:
Taranan külliyat: 526.593.877 kelimelik Türkçe web metni (akış sırasıyla ilk 4,3 GB). Pencereler soru metni ve şıklardan (en çok 5 şık) çıkarılır; cevap anahtarı metin olmadığı için taranmaz. Liste yine de bir alt sınırdır: yeniden ifade edilmiş, kelimesi değiştirilmiş ya da 13 kelimeden kısa parçalar hâlinde sızan sorular katı eşikte yakalanmaz.
Konu dağılımı (n = 13): Din Kültürü ve Ahlak 26 · Fizik 22 · Biyoloji 19 · Kimya 15 · Tarih 15 · Türk Dili ve Edebiyatı 10 · Felsefe 3 · Coğrafya 3.
Listenin biçimi
turkishmmlu_kirlilik.json:
{
"kaynak_kume": "AYueksel/TurkishMMLU (config All, split test)",
"taranan_soru": 900,
"kulliyat_kelime": 526593877,
"kirli_13": [
{"index": 0,
"sha256_soru": "e84db08c…",
"konu": "Biology"},
…
],
"kirli_8": [ … ]
}index: Hugging FaceAYueksel/TurkishMMLU, configAll, splittestiçindeki sıra.sha256_soru:questionalanının (strip()sonrası, UTF-8) SHA-256 özeti. Kümenin sıralaması değişse bile soru bu özetle eşleştirilebilir.konu: kaynak kümedeki konu etiketi.
Soru metni bu depoda yoktur. TurkishMMLU kontrollü erişimli bir kümedir (erişim için yazarlara başvurulur); bu liste yalnızca dizin ve özet taşır, kümeye erişimi olan herkes özetle eşleştirip kendi kopyasında soruyu bulur.
Kullanım
import json, hashlib
from datasets import load_dataset
ds = load_dataset("AYueksel/TurkishMMLU", "All", split="test")
k = json.load(open("turkishmmlu_kirlilik.json", encoding="utf-8"))
kirli = {r["sha256_soru"] for r in k["kirli_13"]}
def ozet(q): return hashlib.sha256(q.strip().encode("utf-8")).hexdigest()
temiz = ds.filter(lambda ex: ozet(ex["question"]) not in kirli)
print(len(ds), "->", len(temiz)) # 900 -> 787Önerilen raporlama: tam kümedeki puanın yanında temiz-787 puanı, ve iki puan arasındaki fark. Fark büyükse modelin külliyatı bu soruları görmüştür.
Yeniden üretim
python kirlilik_denetimi.py <kulliyat.txt> <etiket>Betik külliyatı satır satır akıtır, bellek kullanımı külliyat boyutundan bağımsızdır. Kendi külliyatınızı taratırsanız listeniz bizimkinden farklı çıkar — bu listede olan bir soru sizin külliyatınızda olmayabilir, olmayan bir soru olabilir.
Sınırlar
- Liste bizim külliyatımıza göredir. Türkçe web'in başka bir kesitiyle eğitilen bir modelin kirliliği farklıdır; ama aynı kaynaklar (ders siteleri, deneme sınavları) her kesitte bulunduğu için örtüşme yüksek olacaktır.
- Soru ve şık metinleri tarandı; cevap anahtarı metin olmadığından taranamaz. Yeniden ifade edilmiş kopyalar katı eşikte kaçar; liste bir alt sınırdır.
- n = 13 katı eşiği yeniden ifade edilmiş kopyaları kaçırır; n = 8 listesi bu yüzden verilmiştir, ama yanlış pozitif içerir.
- Kaynak kümenin sıralaması değişirse
indexgeçersizleşir;sha256_sorukullanın.
Atıf
eCloud Tech. (2026). TurkishMMLU Kirlilik Listesi: Türkçe web külliyatında
birebir geçen test soruları. https://github.com/ecloudtechnology/turkishmmlu-kirlilikTurkishMMLU'nun kendisi için: Yüksel, A. vd. (2024), TurkishMMLU.
Lisans: liste ve betik CC BY 4.0. İletişim: info@e-cloud.web.tr
English summary — TurkishMMLU contamination list
113 of the 900 TurkishMMLU test questions (12.6%) appear verbatim in a 527-million-word Turkish web corpus (strict 13-word shingle match); 252 (28.0%) match at the looser 8-word threshold. Any model pretrained on Turkish web text is likely exposed to these items. In our own measurement, a continued-pretraining model's gain over its base was +6.27 points on all 900 questions and +4.14 on the clean subset — a third of the reported gain came from contamination.
Method: GPT-3/Llama-style exact n-gram (shingle) overlap between the normalized question-plus-choices text and the streamed corpus. Paraphrased copies escape the strict threshold, so the list is a lower bound. Each entry gives the dataset index, a SHA-256 of the question text (robust to reordering) and the subject. TurkishMMLU is a controlled-access dataset; no question text is redistributed here — match by hash in your own licensed copy.
Recommended use: report TurkishMMLU on the full set and on the 787 unflagged questions. Reproduce with kirlilik_denetimi.py <corpus.txt> <label>; your own corpus will yield a different list. License CC BY 4.0.
