Jak liczymy
Slopcheck daje tekstowi 2 liczby: przyrost informacji i slop. Niżej opisujemy, co znaczą i jak zbudowaliśmy metodę w 5 wersjach, od pierwszej z 19 października do s3 z 24 października 2026 roku. Korzystaliśmy z ponad 10 000 publicznych zgłoszeń błędów z Apache Jira i Mozilla Bugzilla, 35 tekstów ocenionych ręcznie i 2424 tekstów treningowych, a osobno piszemy, co nie zadziałało.
Przyrost informacji
Czytelnik przychodzi do tekstu z pytaniami, przy zgłoszeniu błędu na przykład: która wersja, która przeglądarka, od ilu wierszy. Przyrost informacji to odsetek tych pytań, na które tekst odpowiada: od 0 do 100%. Przy 100% czytelnik nie ma już o co pytać; formularz z pustymi polami ma wynik bliski 0%. Model w Twojej przeglądarce szacuje ten odsetek jako ocenę od 0 do 10 i pokazuje go z krokiem 5%.
Idea pochodzi od Claude’a Shannona, który mierzył informację w bitach: jeden bit to odpowiedź na jedno pytanie typu tak/nie (Shannon, 1948). Zgłoszenie „duże eksporty się wysypują” zostawia programistę z pytaniami „12 300 wierszy? 11 000?”, jedno pytanie tak/nie po drugim; „eksporty powyżej 10 000 wierszy się wysypują” odpowiada na wszystkie naraz. Warren Weaver opisał trzy poziomy komunikacji: czy znaki docierają, czy niosą zamierzone znaczenie i czy zmieniają to, co robi odbiorca (Weaver, 1949); Slopcheck pracuje na drugim i trzecim poziomie.
Przyrost informacji w SEO
W SEO to pojęcie oznacza to, co strona wnosi w porównaniu ze stronami, które czytelnik już widział. Google ma patent na taki wynik, „Contextual estimation of link information gain” (US 11,354,342 B2, udzielony 7 czerwca 2022). Patent nie dowodzi, że wynik jest używany w rankingu; w publicznych wskazówkach Google pyta, czy treść zawiera „oryginalne informacje, raporty, badania lub analizy” (Google Search Central). Slopcheck mierzy tę część, którą 1 tekst pokazuje sam, bez porównania z innymi stronami: odsetek pytań czytelnika, na które ten tekst odpowiada, od 0 do 100%.
Co zdanie wyklucza
Rudolf Carnap i Jehoszua Bar-Hillel opisali znaczeniową stronę informacji: zdanie niesie tym więcej informacji, im więcej możliwych stanów świata wyklucza (Carnap i Bar-Hillel, 1952). „Eksport przerywa się przy zamówieniach powyżej 500 pozycji w Chrome 128” wyklucza znacznie więcej niż „eksport czasem nie działa”. Podany wprost próg to najmocniejsza forma: „3.1.4 działa, 3.2.0 już nie” mówi programiście, które wydanie sprawdzić.
To, czy zdanie jest prawdziwe, to osobne pytanie (Stanford Encyclopedia of Philosophy), a Slopcheck nie sprawdza faktów: fraza „zamówienia powyżej 500 pozycji” dostaje taki sam wynik bez względu na to, czy prawdziwy próg wynosi 500, czy 5000.
Co ma znaczenie dla czytelnika
Ronald Howard pokazał w 1966 roku, że informacja jest warta tyle, ile zmienia w decyzji (Howard, 1966). Dla programisty „Chrome 128” rozstrzyga, którą z 3 przeglądarek testować, a „eksport jest ważny” nie rozstrzyga niczego. Na stronie produktu „4 EUR za użytkownika na miesiąc, pierwsze 30 dni gratis” zmienia decyzję o zakupie, a „płynne doświadczenie” nie. W zgłoszeniu błędu są to wersja, kroki i próg: od nich zależy następny krok programisty.
Slop
Slop to część tekstu, liczona w słowach od 0 do 100%, która nie odpowiada na żadne pytanie czytelnika. Rozróżniamy 4 rodzaje: puste zdania, które pasują do każdego tekstu; oczywiste, które nie wykluczają niczego, co czytelnik brał pod uwagę; nieistotne, które nie zmieniają żadnej decyzji; niezrozumiałe bez kontekstu, takie jak „jak ustaliliśmy” albo „tak jak tam”. Do slopu liczymy też powtórzenia tego, co tekst już powiedział; w wynikach każde zdanie-slop jest zaznaczone.
Slop łamie 2 maksymy konwersacyjne opisane przez Paula Grice’a: mów tyle, ile trzeba, i nie więcej, oraz mów na temat (Grice, 1975). Powtórzenia to redundancja, jak nazwał ją Shannon w 1948 roku: część wiadomości, którą czytelnik może przewidzieć na podstawie reszty.
Styl to nie slop: „naprawiliśmy eksport CSV” i „problem z eksportem CSV został rozwiązany” liczą się tak samo.
Jak łączą się obie liczby
Slop nie niesie informacji, więc im więcej slopu w tekście, tym niższy pułap przyrostu. Tekst, w którym 60% to slop, dostaje najwyżej około 50%, a tekst z co najmniej 95% slopu najwyżej 10%. Pełne 100% pokazujemy tylko wtedy, gdy żadne zdanie nie jest slopem; w przeciwnym razie przyrost kończy się na 95%. Długość nie jest celem: zgłoszenie błędu na 50 słów może dostać 90%.
Zgłoszenia błędów, zadania i strony produktów
Spisaliśmy 27 pytań, z którymi czytelnik przychodzi do tekstu: 7 dla każdego tekstu, 8 dla zgłoszeń błędów, 7 dla zadań i 5 dla stron produktów. Zgłoszenie błędu odpowiada na pytania: która wersja, które kroki, czego oczekiwano i co się stało, czy zawsze, czy czasem, i od którego wydania. Zadanie odpowiada na pytania: co, gdzie, po co, jak sprawdzić, że jest zrobione, i czego nie ruszać; dobre kryteria akceptacji to na przykład „34 ustawienia, 4 zakładki, teksty bez zmian”. Strona produktu odpowiada na 5 pytań: dla kogo, co robi, co to potwierdza, ile kosztuje i jaki jest następny krok. Model nauczył się tych różnic z 2424 przykładów ocenionych przez model językowy, więc przed wklejeniem tekstu nie trzeba wybierać jego rodzaju.
5 wersji w 4 dni
Wersja 1 z 19 października 2026 roku liczyła słowa funkcyjne, wypełniacze i konkretne dane na 100 słów. Wersja 2 dodała rzadkość słów, mierzoną względem list frekwencyjnych, które policzyliśmy na podstawie około 600 000 słów z Wikipedii w każdym języku. Na 55 stronach ocenionych przez dwa modele językowe był to szum (AUROC od 0,45 do 0,49), więc ją usunęliśmy. Wersja 3 oceniała tekst według liczby konkretów na 100 słów. Na 37 nowych stronach odłożonych do testu jej werdykt „za mało treści” był trafny w 1 przypadku na 9, więc stał się tylko podpowiedzią.
Wersja 4 używała katalogu około 1000 wzorców w 5 językach i na tych samych 37 stronach odróżniała strony napompowane od gęstych (AUROC 0,75; te wyniki widzieliśmy już w trakcie prac, więc liczba jest optymistyczna). Na prawdziwych zgłoszeniach błędów działała na poziomie przypadku (od 0,47 do 0,52). Po tej porażce przeszliśmy od liczenia słów do liczenia otwartych pytań czytelnika i do wersji 5 (s2) z 22 października; 24 października wytrenowaliśmy ją ponownie dla 12 języków (s3).
Czego nauczyły nas systemy zgłoszeń
Wzięliśmy 1355 zgłoszeń z Mozilla Bugzilla z lat 2023–2025. Zgłoszenia zamknięte jako niekompletne albo „works for me” oraz te, których autora poproszono o dodatkowe informacje, były dłuższe od zgłoszeń naprawionych bez takiej prośby (mediana 165 słów wobec 124) i bardziej konkretne: osoby z zewnątrz wypełniają cały szablon, który pojawia się w 38% zgłoszeń „works for me” i w 14% naprawionych, a programiści piszą krótkie notatki oparte na wspólnym kontekście. Wynik w systemie zgłoszeń mierzył więc to, kto napisał zgłoszenie, i od tej pory porównujemy zgłoszenia tego samego autora.
W Apache Jira zebraliśmy ze 165 projektów 11 129 zgłoszeń błędów złożonych od 2022 roku i porównaliśmy naprawione z zamkniętymi jako „Cannot Reproduce” albo „Incomplete”. Jedno odkrycie ukształtowało metodę: model językowy przeczytał 240 z tych zgłoszeń, 120 par od tego samego autora, nie znając wyniku ani autora. Zapytany, czy podano wersję albo środowisko, częściej znajdował je w źle przyjętych zgłoszeniach (63% wobec 50%). Zapytany, czego programista jeszcze potrzebuje, w tych samych zgłoszeniach częściej wskazywał wersję albo środowisko (48% wobec 33%). Sama wzmianka o wersji nie odpowiada jeszcze na pytanie, w której wersji pojawia się błąd.
Reguły z ręcznej oceny
Oceniliśmy ręcznie 35 tekstów, większość w skali od 0 do 10: 0 to formularz bez treści, 5–6 to tekst, z którym da się pracować po kilku pytaniach, 9 zostawia jedno otwarte pytanie, 10 nie zostawia nic do dodania. Do 28 z tych tekstów nasz pierwszy katalog pytań postawił 86 pytań; oznaczyliśmy 35 z nich: 26 jako zasadne i 9 jako zbędne. Tak powstał spisany przewodnik z 37 regułami i 33 przypadkami testowymi.
Przykłady reguł: zdanie bez granicy oznacza zawsze i wszędzie, więc brak wersji nic nie kosztuje, dopóki tekst nie mówi „czasem” albo „po aktualizacji”; zakaz liczy się tylko wtedy, gdy zamyka drogę, którą sugeruje zadanie; sprzeczne wymagania kosztują najwięcej. W jednym teście ocena tych samych faktów, przepisanych z wyraźnym powiązaniem i nazwanym obiektem, wzrosła z 1 do 9–10 na 10. W innym teście zgłoszenie ocenione ręcznie na 10 zostało zamknięte jako „Cannot Reproduce”: wynik w systemie zgłoszeń to sygnał, a nie wyrok.
Modele językowe jako oceniający i nauczyciel
Zamieniliśmy 37 reguł w przewodnik oceny dla dużych modeli językowych i porównaliśmy 5 modeli na 27 tekstach z ręczną oceną liczbową. Reguły powstały z tych samych tekstów, więc porównanie pokazuje, jak wiernie model stosuje reguły, a nie jak radzi sobie z nowymi tekstami: dwa najlepsze różniły się od oceny ręcznej najwyżej o 1 punkt w 22 tekstach na 27 (korelacja rang do 0,94), a najsłabszy w 12 na 27.
Jeden z tej dwójki ocenił potem 2424 teksty zdanie po zdaniu: 600 publicznych zadań i zgłoszeń błędów z Apache Jira, 384 teksty z tymi samymi faktami, napisane przez modele językowe w 4 stylach, 600 tekstów, które sam napisał do treningu po niemiecku, polsku, czesku, chorwacku i rosyjsku, oraz 840 tekstów, po 120 po słowacku, słoweńsku, bułgarsku, francusku, włosku, hiszpańsku i niderlandzku, napisanych przez modele językowe, które nie znały reguł. Daje to 18 420 ocenionych zdań, z czego 21,4% to slop. Mały model w Twojej przeglądarce uczył się na tych ocenach. W walidacji krzyżowej zgadza się z nauczycielem na poziomie korelacji rang 0,85, a na tekstach, na których się nie uczył, znajduje zdania-slop wskazane przez nauczyciela z AUROC 0,92. Z ręcznymi ocenami 25 tekstów zgadza się na poziomie korelacji rang 0,81, ale reguły nad modelem powstały z tych samych tekstów, więc uczciwszą miarą są testy na odłożonych danych poniżej.
Kiedy sprawdzasz tekst, żaden model językowy go nie czyta. Wywołanie modelu wysłałoby tekst do zewnętrznej firmy, mogłoby dać inny wynik dla tego samego tekstu i wiązałoby się z opłatą za każde sprawdzenie; mały model mieści się w około 350 KB stałych wag.
Prognozy zapisane z góry
Przy 5 eksperymentach zapisaliśmy prognozy w pliku i zachowaliśmy go przed uruchomieniem testu; dla testu wzorców z 20 października 2026 roku suma kontrolna MD5 tego pliku zaczyna się od ff01ce1a. Prognozowaliśmy, że prosta wersja tekstu wygra z wersją w stylu asystenta w 85–95% par; wygrała w 79%. Prognozowaliśmy, że odrzucone zgłoszenia z Bugzilli będą krótsze; były dłuższe, z medianą 165 słów wobec 124. Na parach z Jiry od tego samego autora chybiły 3 prognozy z 4. Po pomyłce z Bugzillą każde kolejne porównanie dotyczyło zgłoszeń tego samego autora.
Co nie zadziałało
Rzadkość słów (AUROC od 0,45 do 0,49). Udział słów funkcyjnych i wypełniaczy, który na odłożonych stronach osiągnął AUROC zaledwie 0,31, poniżej poziomu przypadku. Werdykt „za mało treści”, trafny 1 raz na 9. Liczenie jednostek znaczenia albo odhaczanie 5-punktowej listy kompletności, zgodne z oceną całościową tylko na poziomie korelacji rang od 0,18 do 0,26. 8 wskaźników wzorowanych na sygnałach wyszukiwarek, odrzuconych już na etapie projektu. Porównywanie strony z 3–10 pierwszymi wynikami wyszukiwania, które wymaga płatnego API wyszukiwarki. Szerokie wersje jawnych reguł, które oznaczyły 33 zgłoszenia z Jiry: każde sprawdzone oznaczenie było fałszywym alarmem. Model językowy w czasie sprawdzania: był najbliżej ocen ręcznych, ale wysyłałby Twój tekst do zewnętrznej firmy.
Jak testujemy metodę
Odkładamy 24 briefy po angielsku i niemiecku, każdy napisany w 4 wersjach przez modele językowe. Prosta wersja dostaje wyższy wynik niż napompowana we wszystkich 24 parach i wyższy niż wersja w stylu asystenta w 83%. Dla każdego z 7 języków dodanych 24 października odkładamy 6 kolejnych briefów w 4 wersjach: prosta wersja wygrywa z napompowaną w każdej parze, a z wersją w stylu asystenta w 100% par po słowacku i słoweńsku, w 92% po włosku i niderlandzku, w 83% po bułgarsku i francusku oraz w 58% po hiszpańsku.
Na 120 odłożonych parach zgłoszeń z Jiry od tego samego autora naprawione zgłoszenie ma wyższy wynik w około 60% par. Model językowy, który czyta te same 240 zgłoszeń na ślepo, nie znając wyniku ani autora, osiąga 64%. Briefy po angielsku i niemiecku oraz pary z Jiry nie trafiły do treningu, ale wybieraliśmy na nich między wariantami jawnych reguł, więc na nowych tekstach wyniki mogą być nieco niższe. To, czy zgłoszenie zostanie naprawione, czy zamknięte jako „Cannot Reproduce”, zależy też od samego błędu: mógł już zostać naprawiony w nowszej wersji, występować tylko w jednym środowisku albo wynikać z błędu w konfiguracji, więc 100% w tym teście nie jest możliwe.
Jak liczona jest ocena
Dla całego tekstu model bierze pod uwagę 182 sygnały, takich jak liczby, wersje, warunki, progi, nazwy, cytowane komunikaty, ogólniki, twierdzenia bez pokrycia, powtórzenia i puste nagłówki szablonów, a do tego słowa i pary słów zahashowane do 16 384 komórek; dla każdego zdania drugi model z 68 sygnałami i tymi samymi zahashowanymi słowami decyduje, czy to zdanie jest slopem. Model tekstu to regresja liniowa na tych sygnałach, model zdań to regresja logistyczna; oba dopasowano na 2424 ocenionych tekstach. Nad modelem działają 3 reguły z ręcznej oceny. Godzina startu późniejsza niż termin kosztuje 25 punktów. Zadanie, które zaczyna się od „podzielić na 4 zakładki” i nie mówi, co podzielić, dostaje najwyżej 20%. Szablon z pustymi nagłówkami dostaje najwyżej 10%. Wagi zajmują około 350 KB i ładują się razem ze stroną, a tekst na 3000 znaków jest sprawdzany w mniej niż 100 milisekund.
Zdania i języki
Dzielimy tekst na zdania po kropkach, znakach zapytania i wykrzyknikach, wielokropkach i podziałach wierszy, ale nie wewnątrz „v8.1”, „1.200” ani adresu strony i nie po dacie takiej jak „7. Juni”. Obsługujemy 12 języków: polski, angielski, czeski, słowacki, chorwacki, słoweński, bułgarski, niemiecki, francuski, włoski, hiszpański i niderlandzki. Język rozpoznajemy automatycznie: na wcześniejszych zbiorach testowych w 99,6% przypadków, na krótkich tekstach w nowych językach w 97,1%. Listy zwrotów-slopu dla 11 języków poza angielskim zebraliśmy sami; dla niemieckiego, polskiego, czeskiego i chorwackiego nie znaleźliśmy otwartych list. Darmowe sprawdzanie przyjmuje od 80 do 3000 znaków, co obejmuje 97,5% zebranych zgłoszeń błędów z Jiry, nie licząc bloków kodu. Znane odchylenie: sam język przesuwa ocenę o kilka punktów. Przy tych samych sygnałach teksty po hiszpańsku, francusku, czesku i włosku dostają o 5–8 punktów mniej niż po angielsku, a po niemiecku i niderlandzku około 4 punkty więcej, więc porównuj wyniki w obrębie jednego języka.
Czego nie mierzymy
Nie mierzymy autorstwa, prawdziwości ani pozycji w Google czy Bingu. Na próbce publicznego benchmarku RAID po angielsku cechy tekstu oparte na regułach wykryły najwyżej 28% tekstów napisanych przez AI przy 5% fałszywych alarmów, dlatego nie oferujemy wykrywania autorstwa. Notatka na 2 linijki może być w sam raz dla zespołu ze wspólnym kontekstem: ocena widzi tylko tekst.
Pytania
Jak sprawdzić tekst pod kątem AI slopu?
Wklej go w pole na stronie głównej: od 80 do 3000 znaków, do 5 tekstów dziennie za darmo. Zobaczysz przyrost informacji, udział slopu i zdania-slop zaznaczone w tekście.
Czy mój tekst jest gdzieś zapisywany albo wysyłany?
Nie. Sprawdzanie działa w Twojej przeglądarce: tekst nie trafia do nas i nie jest zapisywany. Link do wyniku przechowuje tekst w części adresu po znaku #, której przeglądarki nie wysyłają do serwerów.
Jakie teksty mogę sprawdzić?
Artykuły, strony produktów, wpisy, zadania, user stories i zgłoszenia błędów w 12 językach: po polsku, angielsku, czesku, słowacku, chorwacku, słoweńsku, bułgarsku, niemiecku, francusku, włosku, hiszpańsku i niderlandzku, od 80 do 3000 znaków.
Jak napisać dobre zgłoszenie błędu?
Opisz, jak odtworzyć problem: które kroki, która wersja, które urządzenie i od jakiego progu pojawia się błąd. W badaniu 180 zgłoszeń powtarzalnych błędów w aplikacjach na Androida w 92,2% brakowało co najmniej 1 kroku (Johnson i in., 2022). „Eksport przerywa się przy zamówieniach powyżej 500 pozycji w Chrome 128” wyklucza znacznie więcej niż „eksport czasem nie działa”. Wklej zgłoszenie do sprawdzania, a zobaczysz, które zdania nie odpowiadają na żadne z tych pytań.
Czy Slopcheck to detektor tekstów AI?
Nie. Slopcheck ocenia, ile tekst mówi czytelnikowi. Nie mówi, kto ani co go napisał: generowany tekst z prawdziwymi faktami może dostać wysoki wynik, a napisany przez człowieka bez faktów dostaje niski.
Czym Slopcheck różni się od narzędzi, które szukają śladów AI?
Narzędzia, które liczą półpauzy, „delve” albo „tapestry”, patrzą na powierzchnię tekstu. Slopcheck patrzy na to, co dostaje czytelnik: tekst może unikać wszystkich śladów i nadal nie odpowiadać na żadne pytanie.
Co to jest paszport tekstu?
Zapis jednego konkretnego tekstu: hash, przyrost informacji, slop, wersja metody i data sprawdzenia, na stronie z własnym linkiem. Kto ma tekst, wkleja go tam i widzi, czy się zgadza: jeśli różni się choćby 1 znak, hash jest inny. Każda poprawka zapisuje się jako nowa wersja z własnymi wynikami.
Czy do API potrzebuję wtyczki albo SDK?
Nie. W planie Zespół sprawdzanie to jedno zapytanie HTTP z tekstem. Pasuje do kroku w CI, hooka przed publikacją w CMS albo pola w Twoim systemie zadań.
Źródła
- C. E. Shannon (1948). A Mathematical Theory of Communication. Bell System Technical Journal
- C. E. Shannon, W. Weaver (1949). The Mathematical Theory of Communication. University of Illinois Press
- Google LLC (2022). Contextual estimation of link information gain. Patent USA 11,354,342 B2
- Google Search Central. Tworzenie przydatnych, wiarygodnych i przeznaczonych dla ludzi treści
- R. Carnap, Y. Bar-Hillel (1952). An Outline of a Theory of Semantic Information. MIT Research Laboratory of Electronics
- S. Sequoiah-Grayson, L. Floridi. Semantic Conceptions of Information. Stanford Encyclopedia of Philosophy
- R. A. Howard (1966). Information Value Theory. IEEE Transactions on Systems Science and Cybernetics
- H. P. Grice (1975). Logic and Conversation; maksymy streszcza hasło „Implicature” w Stanford Encyclopedia of Philosophy
- J. Johnson i in. (2022). An Empirical Investigation into the Reproduction of Bug Reports for Android Apps. SANER 2022, sekcja IV-C
- Apache Software Foundation. System zgłoszeń Jira, publiczne zgłoszenia błędów i zadania 2022–2026
- Mozilla. Bugzilla, publiczne zgłoszenia błędów 2023–2025
- L. Dugan i in. (2024). “RAID: A Shared Benchmark for Robust Evaluation of Machine-Generated Text Detectors”. ACL 2024
Sprawdź swój tekst
Wklej artykuł, stronę produktu, zadanie albo zgłoszenie błędu i zobacz przyrost informacji oraz slop.