Jeden skrypt to za mało
Każdy zespół data science napisał coś podobnego:
import re
def anonymize_email(text):
return re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', '[EMAIL]', text)
To zastępuje adresy e-mail. I tylko to robi. Zbiór danych nadal zawiera imiona i nazwiska, numery telefonów oraz identyfikatory medyczne. Nie przejdzie audytu RODO.
Przepaść między stwierdzeniem „zanonimizowałem e-maile” a „ten zbiór jest zgodny z RODO” jest ogromna. Zespoły nieustannie ją bagatelizują.
Dlaczego RODO ogranicza wykorzystanie danych do trenowania ML
Kluczowym przepisem jest art. 5 ust. 1 lit. b) RODO — zasada ograniczenia celu. Dane osobowe mogą być wykorzystywane wyłącznie w celu, w jakim zostały zebrane.
Zamówienia klientów zebrano na potrzeby realizacji zamówień — nie po to, by trenować model rekomendacji. Dokumentacja medyczna powstała w celach leczniczych — nie do trenowania modelu przewidującego ponowne przyjęcia. Odpowiedzi ankietowe zebrano jako informacje zwrotne o produkcie — nie do trenowania klasyfikatora nastrojów.
Aby użyć tych danych do trenowania ML, zespół potrzebuje jednej z trzech rzeczy:
- Wyraźnej zgody każdej osoby na cel ML — trudnej do uzyskania, często niemożliwej wstecznie
- Oceny uzasadnionego interesu wykazującej zgodność użycia ML — prawnie niepewnej, zależnej od interpretacji organu nadzorczego
- Anonimizacji — zastąpienia lub usunięcia danych osobowych tak, by zbiór nie stanowił już danych osobowych w rozumieniu RODO
Właściwa anonimizacja daje największą pewność prawną. Wyzwanie polega na jej konsekwentnym prawidłowym wykonaniu.
Problem z doraźnymi skryptami
Zespoły piszące nowy skrypt Python dla każdego zbioru danych generują narastające problemy.
Niepełne pokrycie. Skrypt zbudowany dla jednego schematu pomija nowe pola. Kolumna z notatkami klinicznymi dodana sześć miesięcy temu? Nie ma jej w wyrażeniu regularnym. Pole z drugim imieniem? Skrypt obsługuje tylko wzorce imienia i nazwiska.
Brak spójności. Zbiór A przetworzono skryptem v1. Zbiór B użył v3. Zbiór C przetworzył inny członek zespołu. Scalony zbiór treningowy zawiera trzy różne metody. Inspektor ochrony danych nie może go poświadczyć.
Brak ścieżki audytu. Skrypt uruchomiono. Co zmienił? Które encje znaleziono? Bez zapisów z przetwarzania zgodność jest niemożliwa do wykazania. Gdy audytor z organu nadzorczego pyta „skąd wiadomo, że ten zbiór treningowy jest czysty?”, odpowiedź „uruchomiliśmy skrypt Python” nie wystarczy.
Dryft modelu. Wzorce regex działające w 2023 roku nie wychwytują nowych formatów identyfikatorów z 2024 roku. Skrypty nie aktualizują się samoczynnie.
Przewodnik po przetwarzaniu wsadowym
Zespół AI w ochronie zdrowia musi zanonimizować 8000 rekordów pacjentów. Zespół z USA potrzebuje dostępu z europejskiego biura. Obowiązuje Schrems II — rekordy z UE nie mogą trafiać do infrastruktury w USA bez odpowiednich zabezpieczeń.
Tradycyjna droga: Inżynier danych pisze niestandardowy skrypt. Dwa do trzech dni tworzenia. Jeden do dwóch dni przeglądu IOD. Jeden dzień iteracji. Łącznie: cztery do sześciu dni. Projekt ML się opóźnia.
Droga przez przetwarzanie wsadowe:
- Eksportuj 8000 rekordów jako CSV
- Prześlij do przetwarzania wsadowego
- Ustaw typy encji: PERSON, EMAIL_ADDRESS, PHONE_NUMBER, US_SSN, MEDICAL_RECORD, DATE_OF_BIRTH, LOCATION
- Wybierz metodę: Replace (podmienia realistycznymi wartościami syntetycznymi, zachowując strukturę)
- Przetwarzanie: 45 minut dla 8000 rekordów
- Pobierz czysty CSV
- IOD sprawdza metadane z przetwarzania — liczby encji per rekord, zastosowane metody: 2 godziny
- IOD zatwierdza. Transfer przebiega bez przeszkód.
Łączny czas: 45 minut plus 2 godziny przeglądu IOD — zamiast czterech do sześciu dni.
Szczegóły dotyczące wymogów art. 10 Aktu o AI znajdziesz w przewodniku po danych treningowych dla EU AI Act.
Replace vs. Redact w kontekście ML
Metoda anonimizacji ma znaczenie dla jakości modelu.
Redact zastępuje PII tokenem, np. [REDACTED]. Sprawdza się w modelach do wykrywania PII. Dla innych zadań — analizy nastrojów, klasyfikacji, rekomendacji — szkodzi. Model uczy się, że [REDACTED] to specjalny token. Nie może uczyć się z naturalnego rozkładu imion i wartości.
Replace zamienia „Jan Kowalski” na „Piotr Nowak”. Zamienia „jkowalski@firma.pl” na „pnowak@synthetic.pl”. Struktura pozostaje nienaruszona. Rozmieszczenie encji, wzorce współwystępowania, przepływ zdań — wszystko zachowane. Model uczy się z realistycznego kontekstu.
Dla zbiorów treningowych ML właściwym wyborem jest Replace. Model nie uczy się fałszywych wartości — uczy się wzorców wokół nich. To właśnie ma znaczenie.
Schrems II i transfery transgraniczne
Wyrok Schrems II (TSUE, 2020) unieważnił Tarczę Prywatności UE–USA. Dane z UE nie mogą trafiać do infrastruktury ML w USA — AWS US-East, GCP US-Central — bez odpowiednich zabezpieczeń transferu.
Trzy główne zabezpieczenia to:
- Standardowe Klauzule Umowne z Oceną Skutków Transferu
- Wiążące Reguły Korporacyjne dla transferów wewnątrz grupy spółek
- Derogacja dla danych zanonimizowanych — pliki właściwie zanonimizowane przestają być danymi osobowymi w rozumieniu RODO i są wyłączone z zasad transferu
Dla zespołów korzystających z infrastruktury w USA z zestawami danych pochodzącymi z UE prawidłowa anonimizacja eliminuje problem Schrems II. Czysty zbiór danych nie jest danymi osobowymi. Może być swobodnie przesyłany.
To jedna z najważniejszych praktycznych korzyści anonimizacji wsadowej. Nie tylko spełnia wymogi RODO — całkowicie usuwa tarcia transgraniczne.
Więcej o ograniczeniach transferu znajdziesz w przewodniku po zasadzie ograniczenia celu RODO.
Co przekazać IOD
Składając czysty zbiór treningowy do zatwierdzenia przez IOD, dołącz pięć elementów:
- Opis źródła. Czym był pierwotny zbiór? Jaki był cel jego pobrania? Jakie kategorie danych osobowych zawierał?
- Konfiguracja anonimizacji. Jakie typy encji wykrywano i zastępowano? Jaką metodę zastosowano?
- Metadane z przetwarzania. Liczby encji per rekord, poziomy ufności, łączna liczba przetworzonych rekordów.
- Ocena ryzyka rezydualnego. Jakie jest prawdopodobieństwo ponownej identyfikacji osoby? Dla anonimizacji metodą Replace z 285+ typami encji na tekście strukturalnym prawdopodobieństwo to jest bardzo niskie.
- Planowane zastosowanie. Jaki model będzie trenowany? Jaki jest cel trenowania?
Przetwarzanie wsadowe dostarcza elementów 2 i 3 automatycznie. Elementy 1, 4 i 5 przygotowuje data scientist.
Szczegóły dotyczące zwracanych metadanych znajdziesz w opisie interfejsu API wsadowego anonym.legal.
Co zyskujesz
Zbiory ML zgodne z RODO są osiągalne bez niestandardowych skryptów, bez wielodniowych opóźnień i bez utraty jakości modelu.
Metoda Replace zachowuje właściwości języka naturalnego ważne dla trenowania NLP. Usuwa dane osobowe stwarzające ryzyko naruszenia RODO.
45 minut przetwarzania wsadowego to różnica między przedłużonym przeglądem zgodności a prostą akceptacją IOD.