Skip to content

fix(bench): błędy inferencji nie liczone jako odpowiedzi modelu (czystość pomiaru) - #76

Open
xfaang-ci wants to merge 1 commit into
slayerlabs:mainfrom
xfaang-ci:fix/infer-errors-not-answers
Open

fix(bench): błędy inferencji nie liczone jako odpowiedzi modelu (czystość pomiaru)#76
xfaang-ci wants to merge 1 commit into
slayerlabs:mainfrom
xfaang-ci:fix/infer-errors-not-answers

Conversation

@xfaang-ci

Copy link
Copy Markdown
Contributor

Closes #39

Problem

Po wyczerpaniu retry ask()/chat() zwracają sentinel __ERR__{e} lub '', a downstream traktował to jak realną odpowiedź → skażenie accuracy/F1.

  • bench_mcq: parse_letter('__ERR__...', 5) == 4 (litera E z ERR) → dla PES (5 opcji) błąd sieci liczony jak odpowiedź E, dla 4-opcyjnych -1. PES to metryka decydująca, multi-seed na obciążonym GPU.
  • bench_poquad: __ERR__ szło do sędziego i F1 na śmieciowym tekście, bez licznika.
  • bench_gsm8k: {'error':...} z ollamy (brak modelu) łapane jak timeout → ciche 0%.

Fix

  • mcq: __ERR__/'' wykrywane przed parse_letter (errors+=1; continue), osobne pola errors/n_scored, accuracy po n_scored.
  • poquad: __ERR__ wykluczony z ans_n/judged/F1, pole infer_errors; guard gdy n==0.
  • gsm8k: ask() po json.loads sprawdza 'error'twardy RuntimeError zamiast cichego 0%.

Weryfikacja

parse_letter('__ERR__...', nopt=5) = 4  (bug potwierdzony -> 'E')
bramka: __ERR__ -> True, '' -> True, 'B' -> False
mcq: stara acc 54.0% (/100, skażona) -> nowa 60.0% (/90 ocenionych, errors=10)
gsm8k: brak modelu -> RuntimeError (twardy fail, nie 0%)

Pełnego benchu nie odpalałem (ollama+modele+GPU), ale logika sentinela, parse i metryk pokryta. py_compile 3/3 OK.

Zgodnie z CONTRIBUTING: zasada czystości pomiaru (błąd ≠ odpowiedź) i fail-loud (brak modelu).

🤖 Generated with Claude Code

Sentinel '__ERR__'/'' z ask()/chat() po wyczerpaniu retry byl traktowany jak realna
odpowiedz -> skazenie accuracy/F1 (czystosc pomiaru).

- bench_mcq.py: __ERR__/'' wykrywane przed parse_letter (errors+=1; continue),
  osobne pola errors/n_scored, accuracy liczona po n_scored. Bez tego parse_letter
  ('__ERR__',5)==4 ('E') liczylo blad sieci jak odpowiedz 'E' (PES, 5-opcji).
- bench_poquad.py: pred '__ERR__' wykluczony z ans_n/judged/F1, pole infer_errors;
  guard judged_accuracy gdy n==0.
- bench_gsm8k.py: ollama 200 + {'error':...} (np. brak modelu) -> twardy RuntimeError,
  zamiast maskowac jako ciche 0%.

Zweryfikowane: parse_letter('__ERR__',5)=4 (bug potwierdzony), bramka go lapie,
metryka mcq 54%/100 (skazona) -> 60%/90 (czysta), gsm8k brak modelu -> hard fail.

Closes slayerlabs#39

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 20, 2026

Copy link
Copy Markdown

@xfaang-ci 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.

Błędy inferencji (__ERR__/timeout) liczone jako odpowiedzi modelu - skażenie publikowanych metryk accuracy/F1

1 participant