ZWID_Pierwszy film AI za darmo - 10 kredytów na start, potem od 3 zł. Bez abonamentu.1. film za 0 złZrób film →
✨ Świeża dostawa•nowe kody na kinetyka.pl: Gemini Pro 18 mies. 170 zł•Cursor, ElevenLabs, Lovable i więcej, roczne plany AI w ułamku ceny Zobacz →
Przejdź do treści
Artykuły

Pewność modelu AI po ludzku: co znaczy 0,9 i jak sprawdzić kalibrację na własnych danych

Co znaczy pewność 0,9? Kalibracja i ECE na rzeczywistych wynikach 50 zgłoszeń. Prosty Python oraz zasady wyboru progu automatyzacji.

6 min czytania
Logo i napis Kalibracja AI - pewność, ECE i własne dane

👁 119 przeczytań

// w skrócie
  • Pewność 0,9 oznacza, że model powinien trafiać w około 90% odpowiedzi z tej grupy, ale wymaga to weryfikacji na rzeczywistych danych.
  • Basal mini przy pewności co najmniej 0,9 osiągnął trafność 87,5%, trafiając 35 z 40 odpowiedzi, co daje ECE równe 13,02 punktu procentowego.
  • Dla granicy błędu 5% potrzeba co najmniej 59 przyjętych decyzji, a dla granicy 1% - co najmniej 299 przyjętych decyzji.

Pewność 0,9 wygląda jak obietnica: model powinien mieć rację w dziewięciu przypadkach na dziesięć. Tyle że sama liczba niczego jeszcze nie dowodzi. Trzeba zestawić ją z poprawnymi odpowiedziami na danych podobnych do tych, które trafią do aplikacji. Poniżej wyjaśniam kalibrację, pokazuję obliczenia z zapisanych wyników trzech modeli i prosty skrypt w Pythonie. Najważniejsze: próg pewności i dopuszczalny odsetek błędów to dwie różne rzeczy.

W skrócie (19.10.2026)

  • Kalibracja sprawdza zgodność deklarowanej pewności z częstością poprawnych odpowiedzi.
  • W zapisanym teście basal mini przy pewności co najmniej 0,9 trafił 35 z 40 odpowiedzi.
  • Zestaw liczy tylko 50 zgłoszeń. To ilustracja, nie certyfikat progu automatyzacji.
  • Próg wybierz na części danych, a sprawdź na osobnej, wcześniej odłożonej próbce.

Co naprawdę znaczy pewność 0,9

Kalibracja jest własnością wielu przewidywań. Jeśli zbierzesz odpowiedzi o pewności bliskiej 0,9, dobrze skalibrowany model powinien trafiać w około 90% z nich. Nie oznacza to, że pojedyncza odpowiedź została zweryfikowana. Model może też być dobrze skalibrowany przy niskiej trafności: uczciwie sygnalizować, że często się myli.

Guo i współautorzy opisują tę różnicę w pracy o kalibracji sieci neuronowych z 2017 roku. Sam wzrost trafności nie wystarcza, żeby prawdopodobieństwa stały się wiarygodne. Dla aplikacji liczy się zarówno wybór poprawnej odpowiedzi, jak i to, czy pewność pozwala rozpoznać przypadki wymagające kontroli.

Dlaczego czatbot zwykle nie pokazuje takiej liczby

W modelach decyzyjnych odpowiedzi tworzą zamknięty zbiór. Model może zwrócić rozkład prawdopodobieństwa po opcjach, a pewnością wyboru jest zwykle prawdopodobieństwo wybranej odpowiedzi. To daje konkretny wynik do sprawdzenia względem klucza.

Model językowy również operuje prawdopodobieństwami. Dostępne w niektórych interfejsach logprobs opisują jednak prawdopodobieństwa tokenów, nie prawdziwość całego zdania. Structured output ustala format odpowiedzi, na przykład JSON z nazwą kategorii. Sam format nie zapewnia skalibrowanej pewności. Dopisanie przez czatbota pola confidence także wymaga weryfikacji. Nie jest więc prawdą, że czatboty nie mogą podawać pewności; problemem jest jej znaczenie i sposób pomiaru.

Wykres kalibracji na rzeczywistych wynikach

19.10.2026 policzyłem zgodność pola kat z gold_kat oraz średnią conf w trzech plikach wynikowych. Basal-omni-1.0-mini Q8_0 był testowany lokalnie 19.10, Jev 1.13 i Perplexity Decider v1.1 27B przez API 13.10. Tutaj każdy model ma wszystkie 50 zgłoszeń, bez odrzucania trudnych przypadków; pomijam osobne zadania wyboru narzędzia. To ocena według zapisanego klucza, również tam, gdzie zgłoszenie może być niejednoznaczne.

ModelPrzedział pewnościŚrednia pewnośćTrafność
basal mini0,5-0,760,9%2/2 = 100%
basal mini0,7-0,983,3%5/8 = 62,5%
basal mini0,9-197,7%35/40 = 87,5%
Jev 1.130,5-0,761,5%0/2 = 0%
Jev 1.130,7-0,979,2%4/9 = 44,4%
Jev 1.130,9-199,4%37/39 = 94,9%
Decider v1.10-0,547,3%1/1 = 100%
Decider v1.10,5-0,762,9%2/3 = 66,7%
Decider v1.10,7-0,981,5%2/5 = 40%
Decider v1.10,9-199,0%39/41 = 95,1%

Dolna granica przedziału jest włączona, górna wyłączona, poza ostatnim, który obejmuje także 1. Puste przedziały pomijam. Łączna trafność wynosi odpowiednio 42/50, 41/50 i 44/50. Nie należy mieszać tych mianowników z wynikami dla 47 zgłoszeń opisanymi w teście lokalnego basal.

Na wykresie kalibracji oś pozioma pokazuje średnią pewność grupy, pionowa jej trafność. Idealne punkty leżą na przekątnej. Punkt poniżej oznacza nadmierną pewność, powyżej zbyt małą. Dla najwyższego przedziału basal punkt ma współrzędne 97,7% i 87,5%: widać wyraźny odstęp od przekątnej.

n=2n=8n=40100%0100%Średnia pewnośćTrafność
Trzy niepuste przedziały basal mini, 50 zgłoszeń. Przekątna oznacza idealną kalibrację; skrajny punkt opiera się tylko na dwóch odpowiedziach.

ECE, czyli rozbieżność ważona liczbą odpowiedzi

ECE to średnia bezwzględnych różnic między trafnością a pewnością w grupach, ważona ich liczebnością. Grupa basal z 40 odpowiedziami ma wagę 40/50. Jej różnica to około 10,17 punktu procentowego, więc wnosi około 8,14 punktu do ECE. Po doliczeniu pozostałych grup wynik wynosi 0,1302, czyli 13,02 punktu procentowego.

Dla tych samych granic przedziałów Jev ma ECE 0,1224, a Decider 0,0861. Niższy wynik oznacza mniejszą zmierzoną rozbieżność, ale nie dowodzi przewagi na innych danych. ECE zależy od podziału na grupy, a pojedyncze obserwacje są niestabilne. Nie jest też odsetkiem błędnych odpowiedzi ani wynikiem Calibration z innego benchmarku.

Próg automatyzacji trzeba sprawdzić osobno

Najpierw określ dopuszczalny błąd wśród decyzji przepuszczonych automatycznie, na przykład 5% albo 1%. Potem wybierz próg na danych do strojenia i zamroź go przed oceną na niezależnym zbiorze. Mierz dwie wartości: błąd wśród przyjętych oraz pokrycie, czyli udział wszystkich spraw obsłużonych automatycznie.

Przy progu 0,9 basal przyjmuje 40/50 zgłoszeń, lecz myli się w 5/40, czyli 12,5%. Decider przyjmuje 41/50 i myli się w 2/41, około 4,88%. Ten drugi wynik spełnia 5% tylko jako obserwacja na małej próbce. Nie jest statystycznym potwierdzeniem docelowego ryzyka.

  • Odkładaj całe grupy powiązanych spraw, żeby warianty tego samego przykładu nie trafiały do strojenia i testu.
  • Sprawdzaj osobno ważne kategorie. Dobry wynik ogólny może ukrywać słaby wynik rzadkiej klasy.
  • Po zmianie modelu, instrukcji, kwantyzacji lub rodzaju danych ponów pomiar.

Ile przykładów wystarczy

Pięćdziesiąt przykładów pozwala wykryć problem, ale nie potwierdzić 1% błędu. Przy ustalonym wcześniej progu, niezależnych obserwacjach i zerze pomyłek jednostronna górna granica błędu na poziomie ufności 95% wynosi 1 - 0.05**(1/n). Potrzeba co najmniej 59 przyjętych decyzji dla granicy 5% i 299 dla 1%. To liczba przyjętych, nie wszystkich zebranych przykładów; błędy zwiększają potrzebną próbkę.

Dokumentacja basal również rozdziela dopasowanie i ocenę oraz uwzględnia niepewność statystyczną. Sposób użycia konkretnego narzędzia opisuje poradnik basal-calibrate. Tu chodzi o zasadę wspólną dla modeli: nie dobieraj progu na tych samych odpowiedziach, którymi potem uzasadnisz jego skuteczność.

Python: policz kalibrację z pliku

Zapisz poniższy kod jako policz_kalibracje.py. Korzysta wyłącznie z biblioteki standardowej i formatu użytego w opisanych plikach. Uruchomienie python policz_kalibracje.py wyniki.json 0.9 pokaże grupy, ECE, pokrycie i obserwowany błąd. Skrypt niczego nie kalibruje i nie certyfikuje progu.

import json
import math
import sys

with open(sys.argv[1], encoding="utf-8") as f:
    rows = json.load(f)["wyniki"]
rows = [r for r in rows if r.get("typ") == "zgl"]
if not rows:
    raise ValueError("Brak zgłoszeń")
for r in rows:
    c = r["conf"]
    if not math.isfinite(c) or not 0 <= c <= 1:
        raise ValueError("Pewność poza zakresem")
    r["ok"] = r["kat"] == r["gold_kat"]

edges = [0, 0.5, 0.7, 0.9, 1]
ece = 0
for lo, hi in zip(edges, edges[1:]):
    group = [r for r in rows
             if lo <= r["conf"] < hi
             or hi == 1 and r["conf"] == 1]
    n = len(group)
    if not n:
        continue
    conf = sum(r["conf"] for r in group) / n
    acc = sum(r["ok"] for r in group) / n
    ece += n / len(rows) * abs(conf - acc)
    print(lo, hi, n, round(conf, 4), round(acc, 4))
print("ECE:", round(ece, 4))

threshold = float(sys.argv[2])
if not 0 <= threshold <= 1:
    raise ValueError("Próg poza zakresem")
accepted = [r for r in rows
            if r["conf"] >= threshold]
print("Pokrycie:", len(accepted) / len(rows))
if accepted:
    errors = sum(not r["ok"] for r in accepted)
    print("Błąd:", errors / len(accepted))
else:
    print("Błąd: brak przyjętych decyzji")

Najpierw obejrzyj liczebności. Wynik 100% z dwóch odpowiedzi mówi bardzo mało. Dopiero kolejne, niezależne przykłady pokażą, czy liczba zwracana przez model rzeczywiście nadaje się do podejmowania decyzji.

Źródło obliczeń: lokalne pliki wyniki_basal_mini_q8.json, wyniki_jev113.json i wyniki_decider11.json; ponowne przeliczenie 19.10.2026.

// Newsletter

Cały tydzień w AI, w jednym mailu

Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.

Zapisz się za darmo →
Za darmo. Wypisujesz się jednym kliknięciem.

Najczęstsze pytania

Co oznacza wartość ECE w kalibracji modelu AI?

ECE to średnia ważona bezwzględnych różnic między trafnością a pewnością w grupach, gdzie wagą jest liczebność każdej grupy. Im niższy wynik, tym mniejsza zmierzona rozbieżność - Decider v1.1 uzyskał ECE 0,0861, Jev 1.13 - 0,1224, a basal mini - 0,1302.

Ile przykładów potrzeba, żeby sprawdzić próg automatyzacji modelu AI?

Potrzeba co najmniej 59 przyjętych decyzji dla potwierdzenia granicy błędu 5% i co najmniej 299 dla granicy 1% na poziomie ufności 95%. To liczba przyjętych decyzji, a nie wszystkich zebranych przykładów - błędy zwiększają potrzebną próbkę.

Jak sprawdzić kalibrację modelu AI w Pythonie?

Skrypt policz_kalibracje.py uruchamia się komendą python policz_kalibracje.py wyniki.json 0.9 i korzysta wyłącznie z biblioteki standardowej. Wczytuje plik JSON z polem wyniki, filtruje zgłoszenia po polu typ równym zgl, a następnie liczy grupy, ECE, pokrycie i obserwowany błąd.

Czy Decider v1.1 spełnia próg błędu 5% przy automatyzacji?

Decider v1.1 przy progu 0,9 przyjął 41 z 50 zgłoszeń i pomylił się w 2 przypadkach, co daje około 4,88% błędu. Wynik ten spełnia kryterium 5% tylko jako obserwacja na małej próbce i nie jest statystycznym potwierdzeniem docelowego ryzyka.

// czytaj też

Podobne tematy na Promptowym

Piotr Olszewski

Piotr Olszewski

AUTOR I WYDAWCA

Piotr Olszewski - twórca i autor Promptowego, polskiego serwisu o sztucznej inteligencji. Codziennie śledzi premiery modeli, narzędzia i regulacje AI, i tłumaczy je prostym, konkretnym językiem.

// mapa strony

🛒 Sklep Kinetyka Google AI Gemini Pro 170 zł CapCut Pro 460 zł/rok Lovable Pro 450 zł/rok Zobacz wszystko →
promptowy w liczbach 0tekstów w archiwum0newsów z ostatnich 7 dni0modeli wideo w obserwatorium0zagadek w grach
× ‹ powiększenie ›