Skip to content

feat(bench): walidator loaderów MCQ (gold mapping + struktura + mojibake) - #88

Open
natiixnt wants to merge 1 commit into
slayerlabs:mainfrom
natiixnt:feat/mcq-loader-validator
Open

feat(bench): walidator loaderów MCQ (gold mapping + struktura + mojibake)#88
natiixnt wants to merge 1 commit into
slayerlabs:mainfrom
natiixnt:feat/mcq-loader-validator

Conversation

@natiixnt

Copy link
Copy Markdown
Contributor

Smoke-test/bramka jakości dla loaderów MCQ - waliduje, że to, co idzie do pomiaru, jest strukturalnie poprawne. Refs #3.

Po co

Pomiar jest tyle wart, ile loader. Realnie psuły go: złe mapowanie gold (INCLUDE-44: accuracy poniżej losowego) i uszkodzone kodowanie tekstu PL (mojibake). Ten walidator daje tani, powtarzalny check zanim odpalimy benchmark.

Co

  • bench/check_mcq_loaders.py - ładuje próbkę KAŻDEGO zarejestrowanego benchmarku (BENCHES) i sprawdza: niepuste pytanie, >=2 niepuste opcje, gold typu int (nie bool) w zakresie [0, len(opcji)). Dla zbiorów PL dodatkowo heurystyka mojibake (warning). Exit 1 na błędach strukturalnych / nieładowaniu.
  • bench/test_check_mcq_loaders.py - samowystarczalny test offline (16 asercji, bez sieci/HF), nadaje się do CI.

Uczciwie - czego NIE łapie

Mapowania gold, które jest "w zakresie" ale semantycznie złe (gold wskazuje złą opcję). Tak wyglądał historyczny INCLUDE-44: loader miał własny filtr 0<=gold<4, więc przesunięte/odrzucone goldy zostawały w zakresie. Realny sygnał tej klasy to wysoki odsetek odrzuconych wierszy lub accuracy poniżej losowego (domena bench_mcq). Walidator łapie gołą postać klasy (gold poza zakresem) i mojibake.

Uruchomienie

Pełny przebieg pobiera zbiory z HF (on-demand). Do CI nadaje się sam test_check_mcq_loaders.py (offline, deterministyczny).

Kontekst

Pierwotnie pod #3 szukaliśmy nowego zbioru PL MCQ, ale czyste niepokryte zbiory są niedostępne (okapi/MMMLU/Global-MMLU-Lite bez PL), a EXAMS-PL jest zmojibakowany (zweryfikowane na danych). Zamiast wnosić brudny zbiór - wnosimy bramkę jakości, która taki zbiór by wychwyciła.

…ibake)

Smoke-test wszystkich zarejestrowanych loaderów MCQ z bench_mcq: ładuje
próbkę i sprawdza strukturę (niepuste pytanie, >=2 niepuste opcje, gold int
w zakresie [0,len(opcji))), plus heurystyka mojibake dla zbiorów PL.

Łapie gołą postać klasy błędów gold-mapping (gold poza zakresem) i uszkodzone
kodowanie (mojibake). Docstring jasno mówi, czego NIE łapie (mapowanie
"w zakresie" zamaskowane filtrem loadera, jak historyczny INCLUDE-44).

bench/check_mcq_loaders.py - narzędzie on-demand (loadery pobierają z HF).
bench/test_check_mcq_loaders.py - samowystarczalny test offline (16 asercji,
bez sieci) nadający się do CI.
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

@natiixnt is attempting to deploy a commit to the kwikiel's projects Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant