AI · ocena odpowiedzi

Jak oceniać odpowiedzi AI? Karta pracy z kryteriami jakości

Ocena odpowiedzi AI na 45 minut: kryteria (poprawność, kompletność, zgodność, źródła, czytelność), wagi, odrzucanie błędnych odpowiedzi i zgodność oceniających. Obliczenia w Pythonie, trzy zadania.

45 minutPoziom podstawowyPliki i rozwiązania

Materiał redakcyjny TablicaPro · liceum i technikum

suma(punkty)  # wynik wazony
Wynik ważony policzony, odpowiedź błędna odrzucona.
Zgodność oceniających: 80%.

Gdy asystent AI daje kilka odpowiedzi, trzeba umieć wybrać lepszą — i uzasadnić wybór. „Podoba mi się” nie wystarcza; potrzebne są kryteria. Najważniejsze jest, by wynik nie przesłaniał poprawności: odpowiedź błędna nie może wygrać dlatego, że ładnie wygląda. Na lekcji uczniowie oceniają trzy wymyślone odpowiedzi według tej samej karty, liczą wynik ważony, stosują regułę odrzucenia i sprawdzają, jak bardzo zgadzają się dwie osoby oceniające.

Scenariusz jest przeznaczony na 45 minut dla klasy znającej listy, krotki i słowniki w Pythonie; może następować po lekcji o halucynacjach. Oceny w programie są wymyślone. Wagi i skala (0–2) są propozycją dydaktyczną — klasa może je zmienić, byle uzasadnić zmianę.

Przygotowanie stanowisk

Potrzebny jest Python 3 i edytor lub IDLE. Rozpakuj pakiet z sekcji materiałów do osobnego folderu i uruchamiaj skrypty z tego folderu. Program uruchomisz przez Run → Run Module albo poleceniem python start.py, python3 start.py lub py start.py.

Cele i plan lekcji

Po zajęciach uczeń potrafi:

  • ocenić odpowiedź według kryteriów: poprawność, kompletność, zgodność z poleceniem, źródła, czytelność;
  • obliczyć wynik ważony i zastosować regułę odrzucenia odpowiedzi błędnej;
  • porównać oceny dwóch osób i obliczyć zgodność;
  • uzasadnić wybór lepszej odpowiedzi.
CzasPraca na lekcji
0–5 minProblem: dwie odpowiedzi AI, która lepsza?
5–15 minKryteria, wagi i reguła odrzucenia
15–22 minObliczenia w Pythonie
22–37 minTrzy zadania
37–42 minOcena prawdziwych odpowiedzi
42–45 minPytania kontrolne

Karta kryteriów

KryteriumWagaPytanie
poprawność3czy informacje są prawdziwe (sprawdzone w źródłach)?
kompletność2czy odpowiedź obejmuje wszystko, o co pytano?
zgodność z poleceniem2czy odpowiada na zadane pytanie, w żądanej formie?
źródła2czy podano sprawdzalne źródła i czy są prawdziwe?
czytelność1czy tekst jest zrozumiały i dobrze zorganizowany?

Każde kryterium oceniamy w skali 0–2 (0 — brak, 1 — częściowo, 2 — w pełni). Wynik ważony to suma ocena · waga; maksimum wynosi 20.

Reguła odrzucenia

Odpowiedź z poprawnością 0 jest odrzucona bez względu na pozostałe punkty — dobrze napisany błąd jest bardziej szkodliwy niż krótka poprawna odpowiedź. Dzięki temu wynik ważony nie zakryje ważnego problemu.

Zgodność oceniających

Dwie osoby mogą ocenić tę samą odpowiedź inaczej. Zgodność mierzymy jako odsetek kryteriów ocenionych identycznie. W przykładzie zgodnych jest 12 z 15 ocen (80%), ale rankingi różnią się: według pierwszej osoby lepsza jest odpowiedź B, według drugiej — A. Różnice warto omówić: gdzie leży niejasność kryterium (np. czy „źródło” wymaga adresu internetowego), i uzgodnić opis każdego stopnia.

Zasady dobrej oceny

Oceniaj według kryteriów, nie wrażenia; sprawdzaj fakty w źródłach; zapisuj uzasadnienie wyboru; zmieniając wagi, rób to przed oceną, a nie po zobaczeniu wyników.

Zadania

Zadanie 1. Wynik ważony. Oblicz maksymalny wynik oraz wynik każdej z trzech odpowiedzi według obu osób oceniających.

Zadanie 2. Decyzje i ranking. Dla każdej oceny zastosuj regułę odrzucenia (poprawność 0) i ułóż ranking odpowiedzi przyjętych.

Zadanie 3. Zgodność. Oblicz, w ilu z 15 ocen kryteriów obie osoby wystawiły ten sam stopień (procent zgodności).

Dla chętnych: zmień wagę poprawności na 5 i sprawdź, czy ranking się zmieni.

Rozwiązanie i wyniki

# Kryteria: (nazwa, waga). Skala ocen kazdego kryterium: 0, 1 lub 2.
KRYTERIA = [("poprawnosc", 3), ("kompletnosc", 2), ("zgodnosc z poleceniem", 2), ("zrodla", 2), ("czytelnosc", 1)]
MAKS = 2 * sum(w for _, w in KRYTERIA)

# Oceny dwoch oceniajacych dla trzech WYMYSLONYCH odpowiedzi (kolejnosc jak w KRYTERIA)
OCENY = {
    "Odpowiedz A": {"Ocena 1": (2, 1, 2, 0, 2), "Ocena 2": (2, 1, 2, 1, 2)},
    "Odpowiedz B": {"Ocena 1": (1, 2, 2, 2, 2), "Ocena 2": (1, 2, 1, 2, 2)},
    "Odpowiedz C": {"Ocena 1": (0, 2, 2, 1, 2), "Ocena 2": (0, 2, 2, 1, 1)},
}


def suma(punkty):
    return sum(p * w for p, (_, w) in zip(punkty, KRYTERIA))


def decyzja(punkty):
    return "odrzucona (bledna)" if punkty[0] == 0 else "przyjeta"


# Zadanie 1: wynik wazony
print("Maksimum:", MAKS)
for nazwa, oceny in OCENY.items():
    print(nazwa, "|", {k: suma(v) for k, v in oceny.items()})

# Zadanie 2: decyzje i ranking
for ocena in ("Ocena 1", "Ocena 2"):
    przyjete = {n: suma(o[ocena]) for n, o in OCENY.items() if decyzja(o[ocena]) == "przyjeta"}
    print(ocena + ":", {n: decyzja(o[ocena]) for n, o in OCENY.items()})
    print("  ranking przyjetych:", sorted(przyjete, key=przyjete.get, reverse=True))

# Zadanie 3: zgodnosc oceniajacych
zgodne = sum(a == b for o in OCENY.values() for a, b in zip(o["Ocena 1"], o["Ocena 2"]))
razem = sum(len(o["Ocena 1"]) for o in OCENY.values())
print("Zgodnosc:", zgodne, "z", razem, "=", round(zgodne / razem * 100), "%")

Program wypisze:

Maksimum: 20
Odpowiedz A | {'Ocena 1': 14, 'Ocena 2': 16}
Odpowiedz B | {'Ocena 1': 17, 'Ocena 2': 15}
Odpowiedz C | {'Ocena 1': 12, 'Ocena 2': 11}
Ocena 1: {'Odpowiedz A': 'przyjeta', 'Odpowiedz B': 'przyjeta', 'Odpowiedz C': 'odrzucona (bledna)'}
  ranking przyjetych: ['Odpowiedz B', 'Odpowiedz A']
Ocena 2: {'Odpowiedz A': 'przyjeta', 'Odpowiedz B': 'przyjeta', 'Odpowiedz C': 'odrzucona (bledna)'}
  ranking przyjetych: ['Odpowiedz A', 'Odpowiedz B']
Zgodnosc: 12 z 15 = 80 %

Odpowiedź C ma poprawność 0 według obu osób, więc zostaje odrzucona niezależnie od punktów za pozostałe kryteria (12 i 11 z 20 zdobyła za kompletność, zgodność z poleceniem i czytelność). Ranking przyjętych różni się: według pierwszej osoby B (17) wyprzedza A (14), a według drugiej A (16) wyprzedza B (15). Różnica wynika z oceny źródeł w odpowiedzi A (0 i 1) oraz zgodności z poleceniem w B (2 i 1) — warto o tym porozmawiać i doprecyzować kryteria.

Plik rozszerzenie.py (zadanie dla chętnych) wypisze:

20

Typowe błędy

ObjawCo sprawdzić
Ocena po wrażeniuOceniaj według kryteriów i sprawdzonych faktów.
Wygrywa błędna, ale ładna odpowiedźZastosuj regułę odrzucenia dla poprawności 0.
Zmiana wag po zobaczeniu wynikówUzgodnij wagi przed oceną.
Brak uzasadnienia ocenyZapisz, dlaczego przyznano dany stopień.
Źródło „istnieje”, bo podał je asystentOtwórz źródło i sprawdź, czy mówi to, co zapisano.
Ocena jednej odpowiedzi bez porównaniaPorównaj co najmniej dwie odpowiedzi tego samego polecenia.

Pytania kontrolne i punktacja

  1. Dlaczego odpowiedź z błędnymi informacjami odrzucamy niezależnie od wyniku ważonego?
  2. Co oznacza zgodność oceniających 80%?
  3. Dlaczego dwie osoby mogą ułożyć różny ranking?

Odpowiedzi: Bo błędna informacja podana w ładnej formie jest szkodliwa; wynik ważony nie powinien zasłaniać braku poprawności. Że w 80% kryteriów obie osoby wystawiły ten sam stopień. Bo inaczej interpretują niektóre kryteria lub inaczej oceniają szczegóły (np. wiarygodność źródeł).

Proponowana punktacja (razem 10 punktów): zadanie 1 — maksimum 1 pkt, sześć wyników 2 pkt; zadanie 2 — decyzje 2 pkt, rankingi 1 pkt; zadanie 3 — zgodność 1 pkt; uzasadnienie wyboru w pytaniach 3 pkt. Zadanie dla chętnych nie jest wymagane do pełnej oceny.

Materiały do pobrania

Rozpakuj ZIP przed otwarciem plików. Materiały są dostępne bez logowania; publiczne rozwiązanie służy nauce i samodzielnemu sprawdzeniu, a nie poufnemu sprawdzianowi.

Co dalej?

Następny krok to pisanie poleceń do AI, praca z polskim tekstem i etyka korzystania z narzędzi AI. Ten materiał rozwija dział o odpowiedzialnym korzystaniu z AI w kursie AI w TablicaPro, gdzie znajdziesz prezentacje, ćwiczenia i testy do prowadzenia lekcji.

Źródła techniczne: ocenianie kryterialne w Wikipedii oraz dokumentacja Pythona o krotkach. Zobacz też lekcję o halucynacjach AI.

Poprowadź kolejne lekcje AI

Pełny kurs: prezentacje, ćwiczenia i testy do pracy z klasą.

Kup dostęp do kursu AI →

Zobacz program kursu