WynikiMetodologiaOgraniczenia Pobierz bezpłatnie
pl-pii-bench v1.0.0

Jawny benchmark polskich danych wrażliwych

Porównujemy pięć silników uruchamianych lokalnie na 759 w pełni syntetycznych pozycjach: 33 pełnych dokumentach, 441 jednozdaniowych próbkach z toru odmiany i 285 pozycjach pozostałych torów. Publikujemy osobny wynik dla każdego toru.

759
syntetycznych pozycji testowych
7
torów, każdy z osobnym wynikiem
73
pozycji w prywatnej próbie kontrolnej
Wyniki publiczne

Czy wynik zależy od rodzaju dokumentu?

Tak. Pełne dokumenty, odmiana, identyfikatory, adresy i próby negatywne mają osobne wyniki, bo czułość silników różni się między torami. Czułość to odsetek oznaczonych danych wrażliwych, które silnik znalazł; liczymy dopasowanie luźne. W torze negatywnym podajemy liczbę fałszywych alarmów, więc tam mniej znaczy lepiej.

Przesuń tabelę w bok, aby zobaczyć wszystkie kolumny.

Tor testowy Pozycje Miara Anonimator Presidio spaCy PL GLiNER PII Polish BardsAI EU PII
Pełne dokumentyUmowy, faktury, decyzje i wyroki 33 Czułość 99,5% 95,8% 64,2% 58,0% 69,7%
OdmianaNazwiska w siedmiu przypadkach, w krótkich zdaniach 441 Czułość 100,0% 96,4% 96,4% 97,3% 37,0%
IdentyfikatoryPESEL, NIP, REGON, NRB i numery dokumentów 12 Czułość 75,0% 44,4% 3,2% 16,7% 31,2%
AdresyAdresy pełne i częściowe 14 Czułość 93,9% 79,3% 79,3% 29,9% 68,3%
Próby negatywneCiągi wyglądające jak PESEL czy NIP, ale z błędną sumą kontrolną 14 Fałszywe alarmy 32 362 346 123 513
Odporność zapisuBłędy OCR, brak polskich znaków, zmieniony zapis 231 Czułość 76,6% 68,0% 56,5% 54,9% 61,6%
Tekst z PDFTen sam tekst wydobyty wcześniej z plików PDF 14 Czułość 99,5% 95,2% 63,1% 55,1% 64,7%

Źródło: manifest wydania pl-pii-bench v1.0.0 w repozytorium github.com/pl-pii-bench/pl-pii-bench.

Co mierzymy

Czy każdy rodzaj ryzyka ma osobny test?

Tak. Każdy tor mierzy inny rodzaj ryzyka i ma osobny wynik: sumy kontrolne, polską odmianę, tekst z PDF oraz próby negatywne. Każdy z pięciu silników dostaje to samo wejście. Dzięki temu nie mieszamy różnych błędów w jedną liczbę i widać od razu, gdzie dany silnik zawodzi.

01

Sumy kontrolne

Numery PESEL, NIP, REGON i NRB są zmyślone, ale mają poprawne sumy kontrolne. Tor negatywny sprawdza sytuację odwrotną: czy ciągi o tym samym kształcie, lecz z błędną sumą kontrolną, nie wywołują fałszywych alarmów.

02

Polska odmiana

Osobny tor obejmuje imiona i nazwiska odmienione przez siedem przypadków. Pokazuje, czy silnik rozpoznaje je również w formie odmienionej i bez kontekstu, który daje pełny dokument.

03

Tekst wydobyty z PDF

Każdy z pięciu silników dostaje ten sam, wcześniej wydobyty i opisany tekst. Wynik mierzy samo wykrywanie, a nie jakość odczytu PDF w danym narzędziu.

04

Jawne pochodzenie

Korpus jest całkowicie syntetyczny, a każdy fragment do wykrycia jest oznaczony z dokładnością do pojedynczego znaku. Manifest zapisuje wersje narzędzi, polecenia, sumy kontrolne plików i czas każdego uruchomienia.

Próba kontrolna

Czy wyniki są nauczone pod test?

Nie. Wyniki publiczne pochodzą ze zbioru dostępnego w naszym repozytorium, ale dodatkowe 73 przykłady trzymamy w tajemnicy i nigdy nie używamy ich do poprawiania żadnego z pięciu silników. Poniżej te same cztery tory policzone na obu zbiorach naraz. Zbliżone wyniki znaczą, że żaden silnik nie wypada lepiej tylko dlatego, że zna odpowiedzi z góry.

Przesuń tabelę w bok, aby zobaczyć wszystkie kolumny.

Tor testowy Anonimator, publiczny Anonimator, kontrolny Presidio, publiczny Presidio, kontrolny spaCy PL, publiczny spaCy PL, kontrolny GLiNER PII Polish, publiczny GLiNER PII Polish, kontrolny BardsAI EU PII, publiczny BardsAI EU PII, kontrolny
Pełne dokumenty 99,5%99,5%95,8%95,8%64,2%64,2%58,0%58,0%69,7%70,0%
Identyfikatory 75,0%75,3%44,4%44,4%3,2%3,2%16,7%17,5%31,2%30,9%
Adresy 93,9%90,3%79,3%77,8%79,3%77,8%29,9%27,7%68,3%68,2%
Próby negatywneLiczba fałszywych alarmów 3235362374346346123110513469

Tych 73 przykładów nie publikujemy, bo gdyby stały się jawne, przestałyby pełnić swoją rolę: dałoby się pod nie dostroić wyniki, tak samo jak pod zbiór publiczny. Przy każdym wyniku publicznym podajemy obok wynik z ukrytych danych, żeby różnicę było widać od razu. Największa różnica w czułości (dopasowanie luźne) to 3,6 punktu procentowego (Anonimator, adresy). W ostatnim wierszu porównujemy liczby fałszywych alarmów, a nie procenty.

Ten wynik jest samoraportowany, ale nie musisz brać go na słowo. Cztery porównywane silniki są open source, więc ich wiersze odtworzysz z kodu. Silnik Anonimatora jest zamknięty, ale jego wiersz odtworzysz z tej samej binarki, którą dostaje każdy klient: wykrywanie na dokumentach z tego zbioru nie wymaga licencji. Pobierasz instalator, uruchamiasz detect --predictions-output na korpusie publicznym i porównujesz wynik z naszym. Nie musisz nas o nic prosić ani z nikim rozmawiać.

Osobno próba kontrolna. Tych 73 przykładów nie publikujemy, więc jej wyniku nie odtworzy nikt z zewnątrz, i dotyczy to wszystkich pięciu silników tak samo. Podajemy ją po to, żeby pokazać, że wyniki publiczne nie są dostrojone pod zbiór publiczny. Każdy przebieg zapisujemy w manifeście wydania z sumą kontrolną zbioru, sumą kontrolną wyników i znacznikiem czasu.

Dane i kod do samodzielnego sprawdzenia

Wydanie zawiera korpus, adaptery pięciu lokalnych silników, skrypt oceny i manifest z sumami SHA-256. Korpus publikujemy na Hugging Face jako zbiór pl-pii-bench na Hugging Face, a harness, adaptery i skrypt oceny w repozytorium github.com/pl-pii-bench/pl-pii-bench.

Zależy nam, żeby ta metodologia była jak najbardziej rzetelna i obiektywna. Uwagi i propozycje przyjmujemy jako zgłoszenia w tym samym repozytorium na GitHubie.

Pobierz aplikację bezpłatnie

Wersja benchmarku
v1.0.0
Wersja Anonimatora
0.4.0
Porównywane silniki
5
Artefakty publiczne, SHA-256
62cedba7…00ab20a6