Scorery oparte na modelu (LLM-as-judge)

G-Eval: rubryka oceniana przez model

Aktualizacja: 11 października 2026

Rubryka + łańcuch myślenia + wagi z logitów

G-Eval (Liu i in.) ocenia tekst według jawnie zdefiniowanego kryterium. Prompt zawiera definicję zadania, kryterium oceny, wymagany łańcuch myślenia oraz formularz wyjściowy. Zamiast czytać jedną ocenę, G-Eval waży prawdopodobieństwa tokenów ocen:

p(si)=eti∑jetj,Score⁡=∑i=1mp(si)⋅sip(s_i) = \frac{e^{t_i}}{\sum_{j} e^{t_j}}, \quad \operatorname{Score} = \sum_{i=1}^{m} p(s_i) \cdot s_i

gdzie tit_i to logit tokenu odpowiadającego ocenie sis_i, a mm to liczba dozwolonych ocen (np. 1..51..5). Wynik jest wartością oczekiwaną rozkładu ocen, nie pojedynczym rzutem.

Implementacja ważenia

from math import exp
 
def g_eval_score(logprobs: dict[int, float], scores: range) -> float:
    probs = {s: exp(logprobs.get(s, float("-inf"))) for s in scores}
    total = sum(probs.values())
    return sum(s * p / total for s, p in probs.items())
 
print(g_eval_score({4: -0.2, 5: -0.9}, range(1, 6)))  # ok. 4.3

Co daje ważenie logitami

Rozkład logitów niesie informację, której nie ma w pojedynczej ocenie: jeśli model „waha się" między 4 a 5, G-Eval daje wynik pomiędzy — mniejsza wariancja niż przy losowaniu jednej etykiety. To szczególnie przydatne przy krótkich skalach, gdzie pojedyncza etykieta ma dużą wagę. Autorzy raportują wyższą korelację z ocenami ludzkimi niż warianty bez ważenia logitami na ocenianych zadaniach NLG.

Jak projektować rubrykę

  • rozłączne poziomy — każda ocena musi mieć osobną definicję (np. „5: wszystkie wymagania spełnione", „3: główne wymaganie spełnione", „1: brak");
  • kotwice — przykładowe odpowiedzi dla skrajnych ocen stabilizują sędziego;
  • skala dopasowana do zjawiska — 1–3 wystarczy, gdy różnice są grube; 1–10 bywa hałaśliwe.

Pułapki

  • dostęp do logitów — bez logprobów G-Eval degeneruje się do zwykłego LLM-as-judge: direct scoring; interfejsy zwracające sam tekst tego nie umożliwiają;
  • tokenizacja liczb — ocena „10" może być jednym tokenem albo dwoma; mapuj tokeny na oceny jawnie;
  • projekt rubryki — kryteria muszą być rozłączne i pokrywać pełną skalę, inaczej rozkład ocen się zniekształca.
G-Eval: rubryka oceniana przez model