LLM-as-judgeMetodyka

Dlaczego LLM-as-judge wymaga kalibracji

3 min czytaniaaktualizacja: 11 października 2026

Kiedy potrzebujesz sędziego zamiast wzorca

Klasyczne scorery zakładają, że istnieje jedna poprawna odpowiedź. Exact match świetnie radzi sobie z literą na MMLU-Pro, a pass@k z testami jednostkowymi — ale co zrobić z pytaniem, na które dobrych odpowiedzi jest wiele? Otwarte dialogi, streszczenia, kod o wielu poprawnych wariantach wymagają oceny jakościowej. Tu wkracza LLM-as-judge: model językowy w roli sędziego, który czyta odpowiedź i wystawia werdykt według kryteriów z promptu.

Dwa tryby pracy sędziego

  • LLM-as-judge: direct scoring — sędzia ocenia jedną odpowiedź w skali (np. 1–10) albo wypełnia rubrykę kryteriów. Tani i szybki, ale oceny bywają ściśnięte wokół kilku wartości i mocno zależą od promptu.
  • LLM-as-judge: pairwise — sędzia porównuje dwie odpowiedzi i wskazuje lepszą (lub remis). Z wielu porównań buduje się ranking, najczęściej modelem Elo / Bradley-Terry, tak jak w Chatbot Arena.

Wspólna cecha obu trybów: sędzia jest modelem, więc dziedziczy jego uprzedzenia. Zanim potraktujesz werdykty jako pomiar, musisz je skalibrować.

Trzy uprzedzenia, które trzeba zmierzyć

Pierwszą systematyczną diagnozę znajdziesz w pracy Zhenga i in., „Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena" (NeurIPS 2023). Autorzy zbadali LLM-as-judge na tle ludzkich preferencji i udokumentowali m.in.:

  • Bias pozycyjny (position bias) — werdykt zależy od kolejności, w jakiej sędzia czyta odpowiedzi. Ten sam tekst pokazany raz jako pierwszy, a raz jako drugi potrafi dostać inny werdykt; najczęściej wygrywa pierwsza pozycja.
  • Self-preference — sędzia zawyża oceny odpowiedzi podobnych do własnego stylu, a zwłaszcza odpowiedzi własnego modelu. Model oceniający samego siebie to konflikt interesów wbudowany w architekturę.
  • Wrażliwość na prompt — zmiana sformułowania kryteriów, skali albo formatu wyjścia przesuwa oceny, choć oceniane teksty się nie zmieniły. Drobna parafraza promptu to w praktyce inny scorer.

Do tego dochodzi skłonność do nagradzania rozwlekłości (verbosity bias): dłuższe odpowiedzi dostają wyższe noty niezależnie od treści. ### Test na bias pozycyjny

Bias pozycyjny łatwo sprawdzić automatycznie:

def position_swap_agreement(judge, prompt, answer_a, answer_b) -> float:
    """Zgodność werdyktów po zamianie kolejności; 1.0 = brak biasu pozycyjnego."""
    verdict_ab = judge(prompt, first=answer_a, second=answer_b)
    verdict_ba = judge(prompt, first=answer_b, second=answer_a)
    return 1.0 if verdict_ab == verdict_ba else 0.0

Kalibracja: korelacja z ludzkimi etykietami

Kalibracja to sprawdzenie, czy werdykty sędziego zgadzają się z ludzkimi ocenami — zanim uruchomisz go na tysiącach odpowiedzi, których nikt nie zweryfikuje. Procedura wygląda tak:

  1. Zbierz zbiór kalibracyjny: odpowiedzi z ludzkimi etykietami — od ekspertów albo z głosów crowdsourcingowych, jak w Chatbot Arena.
  2. Policz zgodność sędziego z ludźmi: agreement dla wyborów, korelację rang (np. Spearmana) dla ocen liczbowych.
  3. Zmierz biasy osobno: zamiana kolejności, odpowiedzi własnego modelu, parafrazy promptu.
  4. Opublikuj liczby — korelacja i biasy są częścią metodyki, nie dodatkiem.

Kluczowy wynik pracy Zhenga: silny sędzia w postaci GPT-4 osiągał ponad 80% zgodności z preferencjami ludzkimi, czyli poziom porównywalny ze zgodnością między samymi ludźmi. LLM-as-judge potrafi więc aproksymować ludzkie preferencje — ale tylko sędzia, który został w ten sposób zweryfikowany. Ten sam mechanizm bez kalibracji takiej gwarancji nie daje.

G-Eval: struktura zamiast improwizacji

G-Eval (Liu i in., „G-Eval: NLG Evaluation using GPT-4 with Better Human Alignment") to próba zdyscyplinowania direct scoringu. Zamiast luźnego „oceń w skali 1–5" autorzy proponują jawną definicję kryterium, chain-of-thought — sędzia najpierw pisze uzasadnienie, a dopiero potem wypełnia formularz oceny — oraz punktację wyliczaną z prawdopodobieństw tokenów oceny. W eksperymentach na streszczaniu G-Eval osiągał wyższą korelację Spearmana z ludzkimi ocenami niż wcześniejsze podejścia.

Strukturyzacja nie zastępuje kalibracji — zmniejsza wariancję promptu i wymusza jawne kryteria, ale sędzia nadal jest modelem ze swoimi biasami.

Kiedy LLM-as-judge, a kiedy nie

  • Używaj LLM-as-judge tam, gdzie nie ma jednoznacznego wzorca: otwarte dialogi, streszczenia, ocena stylu.
  • Tam, gdzie wzorzec istnieje, zostań przy deterministycznych scorerach — exact match i pass@k są tańsze i powtarzalne.
  • Kalibruj na własnych danych: korelacja z ludźmi przenosi się między domenami tylko częściowo.
  • W pairwise losuj kolejność i raportuj zgodność po swapie obok wyników.

Proces kalibracji krok po kroku opisujemy w przewodniku Dlaczego LLM-as-judge wymaga kalibracji, a granicę między benchmarkiem a scorerem przypomnisz sobie w Scorer a benchmark. Aktualne, stale rosnące zbiory ludzkich głosów — gotowy materiał do kalibracji — znajdziesz na żywo w Chatbot Arena.

Dlaczego LLM-as-judge wymaga kalibracji — ashigiri