Scorery deterministyczne

Accuracy, exact match i F1 — kiedy wystarczą

Aktualizacja: 11 października 2026

Exact match — najostrzejsza miara

Exact match (EM) przyznaje 1 wyłącznie za pełną zgodność wyjścia z referencją po ustalonej normalizacji:

EM(o,r)=1 ⁣[normalize⁡(o)=normalize⁡(r)]EM(o, r) = \mathbb{1}\!\left[\operatorname{normalize}(o) = \operatorname{normalize}(r)\right]

Normalizacja to najważniejsza decyzja: usuwanie nadmiarowych spacji, ujednolicenie wielkości liter, kanonizacja liczb („2025" vs „2 025"). Dwie ekipy z różną normalizacją dostaną różne wyniki na tych samych odpowiedziach — zawsze dokumentuj normalizację.

Accuracy — średnia EM po zbiorze

Dla zbioru nn próbek accuracy to średnia wskaźników poprawności:

Acc=1n∑i=1n1 ⁣[oi=ri]Acc = \frac{1}{n}\sum_{i=1}^{n} \mathbb{1}\!\left[o_i = r_i\right]

W zadaniach wielokrotnego wyboru accuracy to po prostu odsetek poprawnych odpowiedzi — scorer opisany na karcie Accuracy (wielokrotny wybór). Pamiętaj o poziomie przypadku: przy 4 opcjach losowy model ma około 25% accuracy, więc 30% to sygnał, nie sukces.

F1 — gdy granice odpowiedzi są miękkie

Gdy odpowiedź to zbiór tokenów lub etykiet (ekstrakcja encji, zbiór kroków), wymaganie pełnej zgodności bywa zbyt surowe. F1 łączy harmonicznie precyzję i recall:

P=TPTP+FP,R=TPTP+FN,F1=2⋅P⋅RP+RP = \frac{TP}{TP + FP}, \quad R = \frac{TP}{TP + FN}, \quad F_1 = \frac{2 \cdot P \cdot R}{P + R}

def f1(tp: int, fp: int, fn: int) -> float:
    p = tp / (tp + fp) if tp + fp else 0.0
    r = tp / (tp + fn) if tp + fn else 0.0
    return 2 * p * r / (p + r) if p + r else 0.0
 
# Przykład: 3 trafione tokeny, 1 nadmiarowy, 1 pominięty
print(f1(tp=3, fp=1, fn=1))  # 0.75

Przy wielu klasach używa się agregatów: micro (sumuj TP/FP/FN po klasach, potem wzór) lub macro (średnia F1 z klas — każda klasa waży tyle samo). Szczegóły i pułapki tokenizacji na karcie F1.

Kiedy wystarczą

EM i accuracy wystarczą, gdy poprawna odpowiedź ma jedną kanoniczną formę: MCQ, klasyfikacja, ekstrakcja pojedynczego faktu. F1 wybieraj, gdy liczy się częściowa zgodność zbiorów. Gdy liczy się znaczenie, a nie forma — przejdź do BERTScore lub LLM-as-judge: direct scoring.

Accuracy, exact match i F1 — kiedy wystarczą