Terug naar BlogTechnisch

GDPR ML-trainingsdata-anonimisering

GDPR beperkt het gebruik van persoonsgegevens voor ML-training buiten het oorspronkelijke verzamelingsdoel. Datawetenschappers die vertrouwen op ad-hoc Python-scripts creëren auditproblemen.

May 27, 20267 min lezen
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

Eén script is niet genoeg

Elk datawetenschapsteam heeft iets geschreven als dit:

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

Dit vervangt e-mailadressen. Meer doet het niet. De dataset bevat nog steeds namen, telefoonnummers en medische ID's. Ze faalt nog steeds bij een GDPR-audit.

De kloof tussen "ik heb de e-mails geanonimiseerd" en "deze dataset is GDPR-compliant" is groot. Teams onderschatten het constant.

Wat GDPR van ML-training vereist

GDPR Artikel 5(1)(b) beperkt doelverschuiving. Als gegevens zijn verzameld voor één doel, is het gebruik voor een ander doel — zoals ML-training — een aparte verwerkingsactiviteit die zijn eigen rechtsgrondslag vereist.

Recital 50 laat enige ruimte voor verenigbare doelen. Maar ML-training op klantgegevens die zijn verzameld voor dienstverlening valt zelden in die categorie. GDPR vereist gewoonlijk:

  • Expliciete toestemming voor ML-training, of
  • Ware anonimisering vóór training, zodat de gegevens buiten GDPR-bereik vallen

Wat ware anonimisering vereist

Voor ML-trainingsdata moet anonimisering:

  1. Alle directe identifiers verwijderen: namen, e-mails, telefoonnummers, ID-nummers, adressen
  2. Quasi-identifiers behandelen: leeftijd + functietitel + locatie kunnen samen identificeren
  3. k-anonimiteit overwegen: elke record moet overeenkomen met ten minste k-1 andere records op alle attributen
  4. Reproduceerbaar zijn: dezelfde input produceert dezelfde gemaskeerde output voor consistency van de dataset

Het ad-hoc script-probleem

Ad-hoc Python-scripts creëren audithiaten:

  • Inconsistentie: datawetenschapper A en B schrijven verschillende scripts, produceren inconsistente outputs
  • Geen auditlogboek: er is geen record van wat werd geanonimiseerd en wanneer
  • Onderhoud: scripts breken wanneer dataformaten veranderen
  • Dekking: scripts missen onbekende PII-types

De CNIL controleerde meerdere AI-bedrijven in 2024. Ze vonden ad-hoc anonimiseringsscripts die e-mails misten in gecombineerde velden, namen misten in niet-gestructureerde tekst en geen audittrail hadden. De bevinding: de anonimisering was onvoldoende.

Systeembenadering

anonym.legal's API integreert in ML-datapijplijnen:

from anonym_legal import AnonymClient
client = AnonymClient(api_key="...")
result = client.anonymize(text=record, entities=["PERSON", "EMAIL", "PHONE", "ID_NUMBER"])
anonymized_record = result.anonymized_text

Het auditlogboek per record documenteert welke entiteiten werden gevonden en vervangen. Dit is de GDPR-documentatie die een DPO of CNIL-auditor nodig heeft.

Klaar om uw gegevens te beschermen?

Begin met het anonimiseren van PII met 273 entiteitstypen in 48 talen.