ISMS Copilot
Engineering

Cichy zero: kiedy brakujący wynik sędziego staje się pomiarem

W naszym badaniu ablacyjnym z 17 lipca 2026 dotyczącym strategii generowania dokumentów GRC (GLM-5.2 i Claude Opus 4.8 jako pisarze oraz sędziowie oceniający w skali 1-10), w drugim przebiegu 79 z 446 zarejestrowanych wierszy oceny nie zawierało wyniku ogólnego. Agregator potraktował każdy z nich jako 0. To samo wypełnianie zerami wygenerowało efekt punktowy 3,25 w pierwszym przebiegu, a gdy zniknęło, opracowaliśmy teorię dotyczącą tendencyjności sędziów, aby wyjaśnić dlaczego. Różnica między dwoma sędziami przy tych samych dokumentach wyniosła 0,12.

przez ISMS Copilot··14 min read
Cichy zero: kiedy brakujący wynik sędziego staje się pomiarem

Najbardziej niebezpieczną liczbą w ocenie z użyciem LLM nie jest tendencyjny wynik. To brakujący wynik, ponieważ pobłażliwy agregator zamienia go w zero bez Twojej wiedzy, a Ty budujesz następnie teorię, aby wyjaśnić to zero. Wiemy o tym, bo zrobiliśmy to dwa razy w tej samej ocenie. W przeprowadzonym offline badaniu ablacyjnym, zakończonym 17 lipca 2026, porównaliśmy dziesięć strategii generowania dokumentów GRC (pakiety polityk, rejestr procesorów RoPA, analiza luk SOC 2, polityka AI ISO/IEC 42001, klasyfikacja AI Act UE), ocenianych ślepo przez dwa modele sędziowskie w skali 1-10. Pierwszy przebieg (pass 1) wykazał, że przygotowanie całego dokumentu w jednym przebiegu daje lepszy wynik o 3,25 punktów niż przygotowanie go etapami. Drugi przebieg (pass 2) pokazał, że ten efekt spadł do 0,66, a nasza własna notatka metodologiczna zdiagnozowała ten spadek jako artefakt sędziego: jeden model sędziowski był „o 1,5-2 punkty bardziej liberalny” niż drugi. Obie te obserwacje były tym samym błędem. Siedemdziesiąt dziewięć z 446 wierszy oceny w drugim przebiegu nie zawierało pola overall, reduktor zaś wykonał operację Number(r[d]) || 0, a każda średnia ogólna w wynikach karty wyników oraz obie główne liczby dotyczące konkretnych ram prawnych zostały odtworzone dokładnie poprzez uśrednienie tych 79 wierszy jako zer. Nazywamy to cichym zerem, a ten wpis opisuje, co nas to kosztowało i co teraz sprawdzamy.

Badanie i jego wyniki

Ustawienia były typowe dla tego typu pracy. Dziewięć zamrożonych scenariuszy, wszystkie syntetyczne i oparte na fikcyjnej berlińskiej firmie SaaS zatrudniającej 20 osób (dziesiąty, notatka z due diligence dostawcy, znajdował się w pliku z ustawieniami, ale nie został uwzględniony w analizowanych przebiegach), obejmowały najtrudniejsze przypadki pisania dokumentów zgodności, jakie spotykamy: wielosekcyjny raport z audytu wewnętrznego, pakiet polityk wielodokumentowy, rejestr procesorów zgodny z art. 30 RODO, zadania związane z konkretnymi ramami prawnymi dotyczące SOC 2, ISO/IEC 42001 i AI Act UE, polityka oparta na przestrzeni roboczej, dwunastodokumentowy przebieg, niejednoznaczne briefy. Dziesięć wariantów różnicowało strategię generowania: przygotowanie zatwierdzonego briefu sekcja po sekcji, przygotowanie tego samego briefu w jednym przebiegu, ponowne wygenerowanie briefu z użyciem bardziej rygorystycznego planisty, pisanie swobodne na podstawie briefu klienta, dodanie pętli refleksji (draft-critique-revise), oraz wymiana modelu piszącego. Dwa modele piszące to z-ai/glm-5.2 i anthropic/claude-opus-4.8, oba wywoływane przez OpenRouter w lipcu 2026. Do trzech prób na scenariusz i wariant w drugim przebiegu; dwa warianty były częściowo wypełnione (wariant z ponownym generowaniem briefu miał 18 renderów, a powtórne uruchomienie offline krok po kroku – 17, wobec 27 dla innych nowo renderowanych wariantów), a uchwycony wynik odniesienia to jednorazowy zestaw dziewięciu dokumentów.

Ocena była ślepa i bezwzględna: każdy sędzia widział brief klienta i jeden dokument, nigdy wariant ani model piszący, i miał zwrócić ścisły format JSON z pięcioma sub-wynikami (poprawność, kompletność, głębia, cytowania, uczciwość), polem overall, listą flag fałszerstw oraz jednowierszowym werdyktem. Dwa modele sędziowskie, te same co modele piszące. Pierwszy przebieg używał przyporządkowania anty-preferencji własnych, sędziego GLM dla wariantów napisanych przez Claude’a i sędziego Claude’a dla wariantów napisanych przez GLM, ponieważ preferencja własna w oceniających LLM jest udokumentowana: Panickssery, Bowman i Feng wykazali, że oceniające LLM rozpoznają i faworyzują swoje własne generacje (arXiv:2404.13076, 15.04.2024), a Zheng i in. skatalogowali tendencyjność preferencji własnych, pozycji i gadatliwości w ustawieniach sędziego-LLM (arXiv:2306.05685, 09.06.2023). Drugi przebieg zastosował oba sędziów do każdego wariantu i uśrednił ich wyniki, co jest lepszym projektem.

Główna informacja z pierwszego przebiegu, pochodząca z karty wyników: skoncentrowane renderowanie w jednym przebiegu uzyskało wynik ogólny 7,56 wobec 4,31 dla renderowania etapami tego samego briefu na tym samym modelu. Efekt topologii wynoszący 3,25 punktu. Drugi przebieg: ten efekt wyniósł 0,66, swobodne pisanie na podstawie briefu było najlepszym wariantem, a projekt etapowy znalazł się na samym dole pod względem jakości i na samym szczycie pod względem braku uczciwości i fałszerstw. Notatka metodologiczna raportu wyjaśniła lukę między przebiegami: ocenianie różnych wariantów przez różnych sędziów spowodowało, że bezwzględne wyniki stały się nieporównywalne, ponieważ sędzia GLM był mniej więcej o 1,5-2 punkty bardziej liberalny niż sędzia Claude’a. „Nigdy nie porównuj bezwzględnych wyników sędziów-LLM między wariantami ocenianymi przez różnych modeli” zostało uznane za lekcję. Brzmiało sensownie. Nie było to jednak to, co mówiły dane.

Rzeczywista zawartość wierszy

19 sierpnia 2026 ponownie przeczytaliśmy surowy plik z ocenami, wiersz po wierszu, zamiast karty wyników. Spośród 446 unikalnych wierszy (scenariusz, wariant, próba, sędzia) zarejestrowanych w drugim przebiegu (spośród 466 planowanych; 20 planowanych ocen nie ma żadnego wiersza, co system rejestrował jako awarie i prawidłowo wykluczał z każdej średniej), 79 nie miało klucza overall, czyli 18%. Dzieliły się one na dwa typy. Sześćdziesiąt pięć wierszy to kompletne oceny minus jedno pole: wszystkie pięć sub-wyników obecnych, flagi fałszerstw obecne, jednowierszowy werdykt obecny, i brak overall. Sędzia zwrócił JSON zgodny z naszym żądaniem, z jednym pominiętym kluczem, tym, który przypadkowo znajdował się między honesty a fabrication_flags w żądanym schemacie. Czternastu wierszy to obiekty JSON bez żadnych pól rubryki, które parser zaakceptował, ponieważ akceptował dowolny obiekt JSON. Brak wartości nie był równomiernie rozłożony między sędziami: w naszym przebiegu 56 z 229 wierszy sędziego Claude’a (24%) nie miało overall, wszystkie były częściowego typu, a 23 z 217 wierszy sędziego GLM (11%) nie miało żadnego, w tym 9 częściowych i 14 pustych obiektów. Nie zbadaliśmy przyczyny; nasz prompt sędziego, obsługa trybu JSON w użytej trasie oraz limit 1200 tokenów wyjścia są wszystkimi kandydatami, a wskaźnik jest właściwością naszego wywołania, a nie twierdzeniem o którymkolwiek z dostawców.

Agregator następnie wykonał typową dla TypeScript czynność:

for (const d of dims) out[d] = Number(mean(js.map((r) => Number(r[d]) || 0)).toFixed(2));

Wiersz bez overall stawał się 0 w kolumnie, w której każda rzeczywista wartość mieściła się między 1 a 10, a rzeczywisty rozkład był mocno skupiony u góry (ze 367 prawidłowych wyników overall, 299 miało 8 lub więcej). Jedno zero w komórce szesnastu przesuwa średnią o około pół punktu przy obserwowanych poziomach wyników. Osiem zer w komórce szesnastu obniża ją o połowę.

Poniżej znajduje się karta wyników drugiego przebiegu, tak jak została opublikowana, obok tych samych wierszy z brakującymi wynikami traktowanymi jako braki. Oba sędziowie, wszystkie scenariusze, wynik ogólny w skali 1-10:

wariantopublikowany wynik ogólnywynik ogólny na podstawie prawidłowych wierszyliczba prawidłowych wierszy / liczba wierszy sędziego
render briefu etapami, uchwycone wyniki bazowe6,567,5014 / 16
render briefu etapami, powtórne uruchomienie offline (GLM-5.2)6,128,0825 / 33
render briefu w jednym przebiegu (GLM-5.2)6,788,0742 / 50
render briefu w jednym przebiegu + refleksja (GLM-5.2)7,028,1444 / 51
ponowne wygenerowanie briefu + render w jednym przebiegu (GLM-5.2)6,327,6828 / 34
swobodne pisanie na podstawie briefu (GLM-5.2)6,388,3040 / 52
swobodne pisanie + refleksja (GLM-5.2)6,087,7141 / 52
render briefu w jednym przebiegu (Claude Opus 4.8)7,458,5946 / 53
render briefu w jednym przebiegu + refleksja (Claude Opus 4.8)6,568,5340 / 52
swobodne pisanie na podstawie briefu (Claude Opus 4.8)7,538,4947 / 53

Każdy opublikowany wynik ogólny w tej tabeli to średnia wypełniona zerami, zaokrąglona do dwóch miejsc po przecinku. Dziesięć wariantów, które wydawały się obejmować zakres od 6,08 do 7,53, faktycznie obejmuje zakres od 7,50 do 8,59, czyli około jednego punktu, a cztery najlepsze warianty znajdują się w odległości 0,3 od siebie. Opublikowany wynik dotyczący konkretnych ram prawnych, ten, na którym raport opierał się najmocniej („Claude free 8,06 wobec brief 6,59; GLM free 7,19 wobec brief 6,40”), staje się 9,06 wobec 8,62 (16 i 13 prawidłowych wierszy) oraz 8,85 wobec 8,73 (13 i 11). Efekt 1,47 punktu staje się 0,44; efekt 0,79 punktu staje się 0,12.

Pierwszy przebieg jest bardziej jaskrawym przypadkiem. Wynik 4,31 dla wariantu etapowego pochodził z szesnastu wierszy sędziego Claude’a, z których osiem nie miało overall; osiem, które miały, średnio wynosiły 8,62. Wynik 7,56 dla skoncentrowanego wariantu pochodził z osiemnastu wierszy, z których dwa były brakujące; szesnaście prawidłowych wynosiło średnio 8,50. Efekt topologii 3,25 punktu, który zapoczątkował całe dochodzenie, był na wierszach, które zawierały wynik, minus 0,12.

Teoria, którą zbudowaliśmy na podstawie błędu

To jest część, którą warto zapamiętać, ponieważ sam błąd jest nudny. Gdy drugi przebieg nie powtórzył pierwszego, zrobiliśmy to, co robią ostrożni ludzie: szukaliśmy mechanizmu. Projekt anty-preferencji własnych oznaczał, że w pierwszym przebiegu warianty napisane przez Claude’a i GLM były oceniane przez różnych sędziów, udokumentowane tendencyjności sędziów-LLM sprawiały, że „sędziowie różnią się surowością” było prawdopodobne, a karta wyników, w której warianty oceniane przez Claude’a miały niskie wyniki, a te oceniane przez GLM – wysokie, sprawiała, że wyglądało to na zmierzone. Tak więc zapisaliśmy offset liberalności 1,5-2 punkty i zasadę, że nigdy nie porównujemy bezwzględnych wyników między sędziami.

Suche wiersze pozwoliły nam bezpośrednio przetestować tę teorię, ponieważ drugi przebieg miał oba sędziów oceniających ten sam dokument. Spośród 148 par (scenariusz, wariant, próba), w których obaj sędziowie zwrócili overall, średnia różnica GLM-minus-Claude wyniosła +0,12. Siedemdziesiąt trzy pary były identyczne, 41 miało GLM o jeden punkt wyższy, 17 miało Claude’a o jeden punkt wyższy, a 17 różniło się o dwa lub więcej. W danych z pierwszego przebiegu ten sam zrównoważony offset wyniósł minus 0,06 w 72 parach. Wśród 148 kompletnych par nie ma śladu po luce liberalności 1,5 punktu. To, co było: brak wartości, w dwóch warstwach. Pomiędzy sędziami, 24% wierszy jednego sędziego nie miało overall wobec 11% drugiego, a przyporządkowanie anty-preferencji własnych umieściło sędziego z wyższym wskaźnikiem na każdym wariancie napisanym przez GLM, więc jako grupa te warianty zebrały więcej zer, co obniżyło ich wyniki w porównaniach międzygrupowych. W obrębie sędziego brak wartości różnił się w zależności od wariantu: dwa warianty z nagłówka pierwszego przebiegu były oba napisane przez GLM i oba oceniane przez Claude’a, i miały osiem wobec dwóch wierszy bez overall. Efekt „topologii” 3,25 punktu nigdy nie był porównaniem sędziów. Odczytaliśmy brak wartości jako surowość, a wyjaśnienie było na tyle zadowalające, że nikt nie otworzył pliku.

Tak wygląda ogólny kształt cichego zera. Brakująca wartość zmuszona do bycia liczbą nie wygląda na błąd; wygląda na niski wynik, a niskie wyniki wymagają wyjaśnień. Stały offset surowości sędziego to znacznie łagodniejsza porażka: offset anuluje się w każdym porównaniu wewnątrz sędziego i pojawia się natychmiast w sprawdzianie zrównoważonym. Komórka wypełniona zerami nie jest spójna. Skaluje się wraz z częstotliwością, z jaką parsowanie nie powiodło się w tej komórce, a w naszych danych wskaźnik ten był skorelowany z wariantem.

Co przetrwało

Nie wszystko w raporcie było błędne, a podział jest pouczający. Sześćdziesiąt pięć częściowych wierszy nadal zawierało honesty i fabrication_flags, więc te dwie kolumny straciły jedynie czternaście pustych wierszy. Ponownie obliczone na podstawie wierszy z prawidłową wartością uczciwości, uchwycony wynik bazowy etapowy nadal ma najniższą uczciwość (5,81 w 16 ocenach) i flagi fałszerstw w 16 z 16, podczas gdy wariant swobodnego pisania przez Claude’a ma najwyższą uczciwość (9,75 w 52 ocenach) i flagi w 1 z 52. Ta luka jest realna. Ranking jakości w dużej mierze rozmył się w pasmo jednego punktu, a twierdzenie, że „swobodne pisanie bije renderowanie z briefu”, przeszło z nagłówka do +0,23 wyniku ogólnego dla GLM-5.2 (8,30 wobec 8,07) i -0,10 dla Claude’a Opus 4.8 (8,49 wobec 8,59). Twierdzenie, że „refleksja szkodzi”, utrzymało się dla swobodnego pisania przez GLM (7,71 z refleksją wobec 8,30 bez) i było wyrównane dla renderowania briefu przez Claude’a (8,53 wobec 8,59). Nie uruchomiliśmy ponownie badania ablacyjnego; wnioski, które raport wyciągnął, są ponownie wyprowadzane z prawidłowych wierszy, a lekcje metodologiczne, których naprawdę się nauczyliśmy, znajdują się poniżej.

Istnieje także czytanie zgodnościowe tego problemu, i nie jest ono czysto dekoracyjne. Punkt 9.1 b) normy ISO/IEC 27001:2022 wymaga, aby organizacja określiła metody monitorowania, pomiaru, analizy i oceny w sposób zapewniający ważne wyniki, oraz stwierdza, że wybrane metody powinny dawać porównywalne i odtwarzalne wyniki, aby być uznane za ważne (ISO/IEC 27001:2022, punkt 9.1, wydanie z października 2022). Wewnętrzny audytor, który stwierdziłby, że kokpit wyników systemu zarządzania bezpieczeństwem informacji (ISMS) uśrednia puste komórki jako zero, mógłby zgłosić niezgodność z tym punktem. Karta wyników oceny, która napędza decyzję architektoniczną, jest z kolei metodą pomiaru w tym samym sensie, a my zastosowaliśmy do niej niższy standard niż ten, który zastosowalibyśmy w przypadku klienta.

Ograniczenia

To jest ponowne agregowanie ocen, które już mieliśmy, a nie nowe uruchomienie, a liczby na podstawie prawidłowych wierszy dziedziczą każde ograniczenie oryginału: dziewięć scenariuszy, do trzech prób, całkowite wyniki z dwóch modeli LLM skupione w 8-9, brak testowania istotności statystycznej, oraz sędzia, który sam w sobie jest modelem. Komórki na podstawie prawidłowych wierszy zawierają od 14 do 47 ocen na wariant we wszystkich scenariuszach oraz od 4 do 16 w podzbiorze dotyczącym konkretnych ram prawnych; prawidłowe wyniki mają odchylenie standardowe 1,36, więc naiwna błąd standardowy średniej na cały wariant (1,36 przez pierwiastek kwadratowy z n, ignorując fakt, że sędziowie są zrównoważeni i próby grupują się w scenariuszach) wynosi około 0,2 do 0,4, i traktujemy różnice poniżej około pół punktu między wariantami jako remisy. Wskaźniki braku overall to to, co zaobserwowaliśmy na naszym promptie przez jedną trasę w lipcu 2026, z limitem 1200 tokenów i żądaniem trybu JSON; nie zidentyfikowaliśmy przyczyny i nie wiemy, czy jest stabilny. Zrównoważony offset sędziów 0,12 jest specyficzny dla tej rubryki i tych dokumentów. Żadne z tych ograniczeń nie zmienia centralnego faktu, który nie zależy od żadnego z nich: opublikowana kolumna wyniku ogólnego została obliczona z 18% wierszy zmuszonych do zera, a dwa wnioski zbudowane na jej podstawie nie przetrwały usunięcia ich.

Ciche zero i lista kontrolna

Najważniejsza myśl do zapamiętania: w ocenie z użyciem LLM, wywołanie sędziego, które nie zwraca wyniku, nie jest punktem danych, a każdy agregator, który może zamienić je w jeden, prędzej czy później zrobi to w komórce, która ma największe znaczenie. Łagodzenie tendencyjności sędziów jest warte zrobienia, ale jest bezwartościowe, dopóki nie policzysz swoich braków. Jeśli przeprowadzasz ocenę, w której model ocenia wyjście modelu, zastosuj się do poniższej listy kontrolnej:

  • Nigdy nie zmuszaj brakującego wyniku do bycia liczbą. Number(x) || 0, x ?? 0, fillna(0) na kolumnie wyników: wszystkie te operacje zamieniają nieobecny wynik w wynik poniżej minimum rubryki, gorszy niż jakikolwiek wynik, który rubryka dopuszcza. Traktuj brak jako brak (pandas domyślnie pomija NaN w średniej; nasz ręcznie napisany reduktor tego nie robił) i spraw, aby karta wyników głośno zawodziła, jeśli liczba prawidłowych wyników w jakiejkolwiek komórce spada poniżej tego, co zarejestrowałeś wcześniej.
  • Wyświetl liczbę prawidłowych wyników obok każdej średniej. Komórka, która brzmi „4,31” i komórka, która brzmi „4,31 (8/16)” to różne twierdzenia. Nasza drukowała n jako liczbę wierszy, co ukryło fakt, że połowa jednego wariantu nie miała wyniku.
  • Sprawdzaj poprawność wyniku sędziego względem schematu i ponawiaj próbę. Obiekt JSON to nie ocena. Wymagaj wszystkich ocenianych pól, odrzucaj i ponawiaj wywołanie przy błędzie, oraz rejestruj wskaźnik błędów na sędziego i na wariant. Wskaźnik błędów, który różni się między sędziami lub wariantami, jest sam w sobie wynikiem, a w naszym przypadku był nim.
  • Zanim teoretyzujesz o tendencyjności sędziów, oblicz zrównoważony offset. Jeśli dwóch sędziów oceniło te same dokumenty, różnica w parach to offset ocen między nimi w tej konkretnej ocenie. Nasz wyniósł 0,12 w kompletnych parach. Historia o 1,5-punktowej luce, której nie uzyskałeś z zrównoważonych wierszy, to tylko historia.
  • Traktuj nieprawdopodobną wielkość efektu jako błąd danych najpierw. Wahnięcie 3,25 punktu między dwoma renderami tego samego briefu na tym samym modelu, z wynikami skupionymi w 8-9 i szesnastoma-osiemnastoma wierszami na wariant, było nieprawdopodobnie duże względem obserwowanego rozkładu i powinno było skierować nas do wierszy, zanim szukaliśmy mechanizmu.
  • Jeśli zmieniasz sędziów na wariant, zmieniasz także ich tryby awarii. Przyporządkowanie anty-preferencji własnych to obronny projekt, ale jakakolwiek wada specyficzna dla sędziego (nieudane parsowanie, obcięcie, odmowa) jest wówczas zakłócona z leczeniem. Uruchomienie każdego sędziego na każdym wariancie jest bezpieczniejsze, i nadal nie uchroni Cię przed zerami.
  • Ponownie wyprowadź nagłówek z surowych plików przed napisaniem raportu. Karta wyników to widok. Wiersze to dowód. Nasz raport cytował kartę wyników, wyjaśniał własny artefakt mechanizmem, i przypiął ten mechanizm jako lekcję. Mechanizm był brakującym kluczem.

Wszystkie powyższe dane to nasze własne pomiary na własnych syntetycznych dokumentach GRC (fikcyjna firma, brak danych klienta), modele piszące i sędziowie z-ai/glm-5.2 i anthropic/claude-opus-4.8 obsługiwane przez OpenRouter zarówno do renderowania, jak i oceniania, badanie ablacyjne zakończone 17 lipca 2026, ponownie agregowane z zarejestrowanych ocen 19 sierpnia 2026.

Powiązane artykuły