Späť na blogTechnické

GDPR-kompatibilný ML Training dát: Anonymizácia 10...

GDPR zakazuje používať osobné údaje na ML training mimo svojho pôvodného účelu zberu.

April 19, 20267 min čítania
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

GDPR-kompatibilný ML Training dát: Anonymizácia 10 000 záznamov bez kódovania

Každý datový tím spracovávajúci GDPR subjekty napísal niečo podobné:

import re
def anonymize_email(text):
    return re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}', '[EMAIL]', text)

Toto nie je GDPR kompatibilnosť. Je to výmena emailových adries. Dataset stále obsahuje mená, telefónne čísla, ID medicínskych záznamov a desiatky ďalších kategórií PII, ktoré spôsobia neúspechy kompatibility.

Medzera medzi "Mám jeden skript" a "Mám kompatibilný ML dataset" je kde väčšina projektov padá.

Reálny prípad: 10 000 záznamov pacientov

Hospital spravuje dataset s 10 000 pacientskych záznamov - každý s 47 poľami (meno, adresa, email, telefón, číslo poisťovne, diagnóza, lieky, lekár, dátum návštevy, nôsiteľ na internete...).

Data Science tím chce:

  • Trénovať model predikcie pacientskej návratnosti
  • Trénovať model diagnostiky podľa symptómov
  • Výskum vzorcov hospitalizácie

Zákonný tím hovorí: HIPAA + GDPR + štátne zákon o ochrane zdravia. Všetky PII musia byť odstránené alebo bezpečne anonymizované.

Datový vedec napíše script s regex na emaily, manuálne maska mená a ďalej. Výsledok: John D[REDACTED] a mobilný: +421 [REDACTED] 456.

Problém: Identifikátor poisťovne zostáva. Dátum narodenia + pohlavie + pošťovné smerovacia zóna + diagnóza sa môžu vzájomne prepájať s verejnými registrami. To nie je anonymizácia. To je slabá pseudonymizácia.

Čo sa stane bez poriadnej anonymizácie v GDPR

  • Pokuta: Až do 20 milión EUR alebo 4 % globálneho výnosu (podľa GDPR čl. 83)
  • Audit DPA: Národný regulátor dát (napr. AEPD v Španielsku, CNIL vo Francúzsku) môže zmrazovať procesovanie
  • Žaloby: Jednotlivci môžu nárokovať náhradu škody na základe Čl. 82
  • Reputácia: "Hospitál zneužil zdieľané zdravotné údaje"

Ako sa správne anonymizuje pre ML

1. Klasifikácia údajov

Nie všetky PII je rovnaké. GDPR rozlišuje:

  • Osobné údaje: Meno, email, telefón, číslo poisťovne → ANONYMIZOVAŤ
  • Špeciálne kategórie: Zdravotné údaje, diagnóza, lieky → ANONYMIZOVAŤ
  • Údaje odvodzovaní: Dátum + local → MASKU alebo ANONYMIZOVAŤ
  • Verejné údaje: Názov nemocnice, špecializácia → NECHAŤ

2. Techniky

Redakcia/Maskovanie:

Original: John Smith, +421902123456, diagnosis: Diabetes
Redacted: PERSON, +421-XXX-XXXX, diagnosis: MEDICAL_CONDITION

Problém: Re-identifikovateľné kombinovať s iným zdrojom údajov.

Nahradenie/Replace:

Original: [Patient Name, Birth Date, Zipcode, Diagnosis]
Replaced: [Patient_1, 1970-XX, 81XXX, [Endocrine Disorder]]

Problém: Dátum + počet kódov + diagnóza stále môžu byť prepojiteľné.

Hashovanie (true anonymizácia):

Original: John Smith, +421902123456
Hashed: SHA256(John Smith) = a3f9d7c2...
Hashed: SHA256(+421902123456) = 5e8f1b2c...

Výhoda: Nemôžete oddeliť naspäť. Pravá anonymizácia podľa GDPR čl. 4(1). Problém: Stratíte informácie. Ako potom spojíte pazientske záznamy tým istým pacientom cez medústavy?

Šifrovaný identifikátor (pseudonymizácia):

Original: Patient ID 12345, Name: John Smith
Pseudonym: 7f8e9d3c (AES256 encrypted patient_id_jsmith, klúč v trezore)
Dataset: [{patient_pseudo: 7f8e9d3c, age: 47, diagnosis: Diabetes}]

Výhoda: Môžete spájať záznamy iným zdrojom údajov bez odhalenia identity. Problém: Ak dôjde k úniku šifry, všetko je späť na stole.

Správny prístup: GDPR-kompatibilný ML Pipeline

  1. Klasifikujte všetky stĺpce - ktorý PII, ktorý špeciálna kategória
  2. Poľa príjme redakciu: Email → [EMAIL], Phone → [PHONE]
  3. Poľa primajú hash: NONCE + SHA256(value) = nevratný identifikátor
  4. Poľa primajú šifrovanie: Dátum, Zipcode s AES-256, klúč v HSM
  5. Vytvorte audit trail: Čo bolo anonymizované, kedy, kto
  6. Testovanie: Skúste re-identifikovať dataset. Ak sa vám to nepodarí, je to anonymizované.

Nástroje na podporu GDPR Pipeline

Ad-hoc Python scripts

Výhoda: Kontrola, flexibilnosť Nevýhoda: Bez verzionácie, bez auditného záznamu, bez reprodukovateľnosti

Silikonová údajová skladovňa (Snowflake, BigQuery)

Výhoda: Škála, SQL, kontajnerizácia Nevýhoda: Stále potrebujete algoritmus anonymizácie. Sú to len fronta na údaje.

Dedikovaná anonymizácia

Výhoda: GDPR audit trail, opakovateľnosť, preukazujúci algoritmický výber Nevýhoda: Ďalší nástroj na učenie

Kde dlhé časové výzvy - 45 minút

Datasety 10k záznamov s 47 poľami:

  • Neoptimalizovaný Python: 4-6 hodín, bez audit trail
  • Snowflake SQL + custom UDF: 1-2 hodiny + hady na ladenie
  • anonym.legal batch: 8-12 minút na anonymizáciu + 2 minúty audit trail + 1 minúta kontroly

Pracovný tok

  1. CSV nahrať: patients.csv (10 000 riadkov)
  2. Konfigurácia: "Anonymizovať meno, email, telefón. Hešovať ID poisťovne. Sifrovať dátum. Ponechať diagnózu bez zmeny."
  3. Výstup: patients-anonymized.csv + audit-log.json
  4. Overenie: Hľadajte osobný identifikátor. Nástroj nemôže dešifrujte bez klúča.
  5. ML Tím: Trénovať na pseudonymizovaných údajoch.

Otázka audítora: "Ako si zaisťuješ, že je to anonymizované?"

Odpoveď:

"Áno. V našom pipeline:

  1. Identifikátory sú hešované s SHA-256 bez soli (nevratné).
  2. Citlivé dátumy sú šifrované s AES-256-GCM, klúč v HSM.
  3. Audit log zaznamenáva všetko: Ktorý stĺpec, ktorá technika, kedy.
  4. Výstupný dataset nemôže byť retrospektívne dešifrovaný.
  5. Testovní: Preskúmali sme výstup s našimi bezpečnostnými tímom. Bez šifrovacieho kľúča nie je možný opakovaný identifikátor."

A súdny proces? Zákonný tím dokumentuje si výsledky testov. Cieľ: GDPR regulátor čl. 32 "Bezpečnosť spracovania". Ak si to zdokumentoval a je to rozumné, je to dostatočné.

Súhrn

Regex-only anonymizácia na ML tréningových dátach je GDPR riziko. Pravá anonymizácia vyžaduje:

  • Klasifikácia: Ktorý PII?
  • Algoritmus: Hešovanie, šifrovanie, redakcia
  • Overenie: Testovať re-identifikovateľnosť
  • Audit: Zdokumentovať techniku

Tento proces sa zvyčajne berie 4-6 hodín za 10k dataset s ad-hoc nástrojmi. Batch anonymizácia to robí za 45 minút + audit trail.

Pripravení chrániť vaše údaje?

Začnite anonymizovať PII s 285+ typmi entít v 48 jazykoch.