Multiple-Choice Correct-Answer Filter

Çoktan seçmeli SFT dataset'lerinde şıkları tamamen kaldırıp soruyu saf metne indiren ve cevap mesajını doğru şıkkın düz metnine çeviren küçük bir Python aracı.

Fizik, matematik, tarih gibi derslere özgü kurulmamıştır — conversations veya messages formatındaki herhangi bir JSONL çoktan seçmeli veri setinde çalışır.

Ne yapar?

Önce:

user:      Soru: Termodinamiğin birinci yasası neyi ifade eder?
           A) Entropi her zaman artar
           B) Enerji korunur
           C) Mutlak sıcaklık sıfıra ulaşılamaz
           D) Isı soğuktan sıcağa akar

assistant: Cevap: B) Enerji korunur

Sonra:

user:      Termodinamiğin birinci yasası neyi ifade eder?

assistant: Enerji korunur
  • Soru metnindeki tüm şık satırları ve "Soru:" / "Question:" prefix'i temizlenir.
  • Cevap mesajı, doğru şıkkın harf/prefix'siz düz metnine dönüşür.
  • Serbest metinli (çoktan seçmeli olmayan) kayıtlar varsayılan olarak olduğu gibi geçirilir.

Desteklenen formatlar

Yapı Örnek
conversations [{"from": "human/gpt", "value": "..."}]
messages [{"role": "user/assistant", "content": "..."}]

Desteklenen cevap prefixleri:

  • Türkçe: Cevap: B), Doğru cevap: B, **Cevap:** **B) ...**
  • İngilizce: Answer: B, The answer is B, **Answer:** B, B is correct

A–Z arası harfler (fizik80k örneklerinde A–J'ye kadar şık olabiliyor).

Kurulum

Dependency yok, pure Python 3.10+.

wget https://huggingface.co/MRBeDev/mc-answer-filter/resolve/main/filter_correct_answer.py

Kullanım

1) HF'ten otomatik indir + temizle (tüm split'ler birden):

export HF_TOKEN=hf_...  # private dataset için

python3 filter_correct_answer.py \
  --hf mrbe-share/fizik80k \
  --outdir ./out/fizik

2) Tek lokal dosya:

python3 filter_correct_answer.py \
  --file train.jsonl \
  --output train_clean.jsonl

3) Çoktan seçmeli olmayanları at:

python3 filter_correct_answer.py \
  --hf mrbe-share/fizik80k \
  --outdir ./out/fizik \
  --drop-non-mc

4) Sadece belirli bir split:

python3 filter_correct_answer.py \
  --hf MRBeDev/physics-reasoning-dataset \
  --split-path train.jsonl \
  --outdir ./out/physics

CLI flag'leri

Flag Açıklama
--hf REPO HuggingFace dataset id
--file PATH Lokal .jsonl (--hf yerine)
--output PATH Tek dosya modu çıktı (--file ile)
--outdir DIR Çoklu dosya modu çıkış dizini (--hf ile)
--split-path X Belirli dosya(lar)ı işle (birden fazla kez verilebilir)
--drop-non-mc Çoktan seçmeli olmayan kayıtları at
--token TOKEN HF API token (private için)
--cache-dir DIR İndirilen dosyaların cache'i (default /tmp/hf_dataset_cache)
--force-download Cache'i yok say

Dataset bütünlüğü

Default olarak çoktan seçmeli olmayan kayıtlar olduğu gibi geçirilir, böylece dataset boyutu korunur. Sadece çoktan seçmeli soruların içi temizlenir ve cevap mesajı sadeleştirilir. --drop-non-mc ile bu davranışı değiştirebilirsin.

Lisans

Apache 2.0. İstediğin gibi kullan.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support