Benchmarki
· 8 min czytania

Presidio kontra promptShield: co mierzy liczba trafień

Autor: Amine Gaaliche · szkic przygotowany z pomocą Claude'a, sprawdzony i poprawiony ręcznie

W opublikowanym teście Presidio w domyślnej konfiguracji oznaczyło na tych samych dokumentach 666 fragmentów, a promptShield 252. Ta różnica nie pokazuje jednak, które narzędzie wykrywa lepiej: większość dodatkowych fragmentów to słowa, które osoba sprawdzająca wyniki musiałaby odrzucić ręcznie. Różnicę tłumaczy sześć konkretnych filtrów, których działanie można sprawdzić.

Liczba trafień to jeszcze nie ocena

Narzędzie, które zaznacza więcej, może znajdować więcej danych osobowych, ale może też przysparzać więcej pracy osobie, która przegląda wyniki. Sama liczba nie pozwala odróżnić jednego od drugiego.

Każdy zgłoszony fragment osoba sprawdzająca albo zostawia, bo to dane osobowe, albo odrzuca, bo to zwykłe słowo. Miarą jakości jest więc stosunek fragmentów zostawionych do odrzuconych, a drugą miarą są dane, których narzędzie w ogóle nie zgłosiło.

Prosty przykład: pierwsze narzędzie zgłasza 100 fragmentów, z których po sprawdzeniu zostaje 30, a drugie zgłasza 40, z których zostaje 35. Drugie zgłasza mniej, a po sprawdzeniu zostaje z jego zgłoszeń więcej; przy tym daje mniej pracy i ma lepszy stosunek zostawionych fragmentów do odrzuconych.

Każde odrzucenie zabiera czas: w czterdziestostronicowej umowie kilkaset fałszywych trafień to godzina klikania. Zmęczona osoba sprawdzająca zaczyna zatwierdzać wyniki hurtem i przestaje zauważać prawdziwe braki.

Skąd bierze się różnica

Presidio w domyślnej konfiguracji zgłasza każde dopasowanie swoich wzorców i modelu wykrywania nazw, nie odróżniając nazwiska od tytułu „Director” ani od nazwy jurysdykcji w klauzuli o prawie właściwym. Nie jest to wada: filtrowanie biblioteka zostawia temu, kto ją wdraża.

W angielskiej umowie zdanie „The Director shall notify the Company” może dać dwa zgłoszenia. Żadne z nich nie wskazuje konkretnej osoby, więc oba trzeba będzie odrzucić.

W promptShield po wykryciu działa sześć filtrów. Każdy z nich jest opisany, a jego skutek widać w opublikowanych wynikach testu. Trzy z nich to listy o znanej liczbie pozycji:

  • lista ogólnych nazw organizacji, takich jak „the Company” czy „la Société”, obejmuje siedem języków aplikacji (angielski, francuski, niemiecki, hiszpański, włoski, niderlandzki i portugalski) i liczy od około 90 do 115 pozycji w każdym z nich;
  • lista tytułów i funkcji liczy 208 pozycji, więc samo „CEO” czy „Directeur” nie zostaje oznaczone jako osoba;
  • filtr jurysdykcji obejmuje około 138 wariantów nazw, bo nazwa systemu prawnego w umowie nikogo nie identyfikuje.

Wcześniejsze etapy przetwarzania łączą nakładające się wyniki i usuwają powtórzenia. Dzięki temu ta sama osoba nie wraca w wynikach jako kilka osobnych fragmentów.

Jak działa wykrywanie w promptShield

Wzorce znajdują dane o stałym formacie, takie jak PESEL, NIP czy IBAN. Modele wykrywania nazw, zależnie od języka spaCy, BERT, a w części języków także GLiNER, znajdują nazwiska, firmy i adresy. Opcjonalny duży model językowy jest domyślnie wyłączony.

Wyniki są łączone i usuwa się z nich powtórzenia, a nazwisko znalezione na pierwszej stronie zostaje oznaczone także na czwartej. Na końcu działają opisane wyżej filtry.

Żaden lokalny model nie znajduje wszystkich danych, dlatego wynik zawsze trafia do przeglądu. Domyślnie pliku z chronionymi obszarami nie da się pobrać, dopóki nie zostaną zweryfikowane: do tego czasu przycisk „Pobierz” otwiera wyjaśnienie i okno przeglądu.

Kiedy wybrać Presidio

Projekt Presidio powstał w Microsofcie, a dziś rozwija go społeczność. To dobre oprogramowanie i w wielu zastosowaniach lepszy wybór niż nasz produkt. Sprawdza się w potokach przetwarzania napisanych w Pythonie, które obsługują strumienie tekstu, na przykład wiadomości lub zgłoszenia.

Jako biblioteka daje kontrolę nad przetwarzaniem w kodzie i pozwala podłączyć analizator działający w chmurze przez ten sam interfejs. Zespół o takich potrzebach słusznie przy nim pozostaje.

Presidio pozwala dodać listy wyjątków i własne reguły rozpoznawania (recognizers), więc część naszych filtrów da się odtworzyć w istniejącym wdrożeniu. Trudniej ze skanami i zakrywaniem obszarów na stronie PDF, bo tego biblioteka nie obejmuje.

promptShield ma węższe zadanie: przetwarza gotowy dokument na jednym komputerze, czyli PDF, plik Word albo skan. Zakrywa obszary na stronie i odczytuje skany, czego potok tekstowy nie obejmuje. To właśnie z powodu tego węższego zakresu napisaliśmy własny silnik.

Przypadek skanów opisujemy osobno w tekście o anonimizacji zeskanowanych PDF-ów i obrazów.

Jak powtórzyć pomiar

Porównanie, którego nie da się powtórzyć, niewiele różni się od reklamy. Dlatego opublikowaliśmy skrypt testu i pliki CSV z wynikami: każdy może uruchomić oba narzędzia na tych samych dokumentach i porównać wyniki fragment po fragmencie.

Warto przy tym przejrzeć fragmenty zgłoszone tylko przez jedno narzędzie, bo to po nich widać, czy różnica to szum, czy przeoczenia.

Liczby 666 i 252 pochodzą z opublikowanego pomiaru. Od tego czasu silnik promptShield się zmienił, a testu nie powtórzyliśmy. Do czasu ponownego testu obie liczby traktujemy jako pomiar z dnia publikacji.

Najczęstsze pytania

Czy Presidio wykrywa więcej danych osobowych niż promptShield?

W opublikowanym teście Presidio w domyślnej konfiguracji zgłosiło więcej fragmentów: 666 wobec 252. Większość nadwyżki stanowiły jednak słowa, które i tak trzeba by odrzucić. Sama liczba nie mówi, które narzędzie przeoczyło mniej danych.

Czy Presidio to nadal projekt Microsoftu?

Już nie: projekt powstał w Microsofcie, a potem przeszedł pod zarząd społeczności. Nadal jest otwartym oprogramowaniem.

Jak sprawdzić narzędzie do wykrywania danych osobowych na własnych dokumentach?

Trzeba uruchomić je na kilku typowych plikach i przejrzeć każdy zgłoszony fragment. Warto liczyć osobno fragmenty zostawione, odrzucone i dane pominięte. Dopiero te trzy liczby razem pokazują jakość.

Czy promptShield znajduje wszystkie dane osobowe?

Żaden lokalny model tego nie gwarantuje. Dlatego aplikacja wymaga przeglądu przed pobraniem pliku, a użytkownik zatwierdza lub odrzuca każdy obszar.

Czy ten tekst był przydatny? Prosimy dać nam znać.

Udostępnij