Wprowadzenie
Czym jest scorer (i czym nie jest)
Aktualizacja: 11 października 2026
Definicja operacyjna
Scorer to funkcja, która zamienia pojedynczą odpowiedź modelu w wynik o zdefiniowanej skali. Formalnie:
gdzie to wyjście modelu, opcjonalna referencja (odpowiedź wzorcowa), opcjonalny kontekst (instrukcja, dokumenty, warunki zadania), a to skala wyniku: liczba w lub , kategoria (ok / błąd) albo para (wygrana / przegrana w pojedynku).
Najważniejsza własność scorera: mierzy jedną, konkretną właściwość odpowiedzi — zgodność z referencją, przejście testów, wierność wobec kontekstu albo preferencję ludzi. Nie mierzy „jakości" w ogóle.
Czym scorer nie jest
- Nie jest benchmarkiem. Benchmark to zbiór zadań, protokół uruchomienia i reguły raportowania; scorer jest jednym z jego elementów — zob. Scorer a benchmark — dwie różne role.
- Nie jest harnessem ewaluacyjnym. Harness (np. runner testów) wykonuje zadania i zbiera odpowiedzi; scorer tylko je ocenia.
- Nie jest modelem. Nawet „LLM-as-judge" to model użyty jako narzędzie pomiaru; jego werdykty są danymi, a nie oceną końcową samą w sobie.
Cztery rodziny scorerów
| Rodzina | Przykłady | Kiedy używać |
|---|---|---|
| Deterministyczne | Exact match, F1, pass@k | Tanie regresje, zadania z jednoznaczną odpowiedzią |
| Oparte na modelu | LLM-as-judge: direct scoring, G-Eval | Otwarte, semantyczne oceny bez referencji |
| Preferencje ludzi | Win rate, Elo / Bradley-Terry | Porównania „która odpowiedź jest lepsza" |
| Semantyczne | BERTScore | Podobieństwo znaczeń, parafrazy |
Minimalny kontrakt scorera
Dobry scorer ma udokumentowane: wejścia i ich typy, wyjście i skalę, wzór lub procedurę, reguły normalizacji oraz znane pułapki. Bez tego wyniku nie da się zreprodukować ani porównać — dokładnie tak skonstruowane są karty scorerów w tej dokumentacji (zob. Jak czytać karty scorerów).
// Kontrakt: funkcja + jawna skala wyniku
function exactMatch(output, reference) {
return normalize(output) === normalize(reference) ? 1 : 0
}