By · Last updated 2026-06-05

Zurück zum BlogDSGVO & Compliance

Warum selbstgehostete PII-Tools Compliance-Audits...

spaCy 3.4.4 produziert andere NER-Ergebnisse als spaCy 3.5.1. Ein Finanzdienstleistungsunternehmen stellt fest...

June 5, 20266 min Lesezeit
compliance auditenvironment consistencyspaCy versionsself-hosted PIIreproducible anonymization

Warum selbst gehostete PII-Tools Compliance-Audits nicht bestehen

Die DSGVO verlangt Belege. Sie müssen zeigen, dass PII-Entfernung jedes Mal auf dieselbe Weise erfolgte. DPA-Prüfer prüfen dies direkt. Sie wollen eine klare, einheitliche Methode sehen, die für alle Daten gilt.

Selbst gehostetes Presidio hat hier ein echtes Problem. Es ist kein Konfigurationsfehler. Es ist eine grundlegende Einschränkung selbst gehosteter NLP-Tools.

Was ist Environment-Drift?

Selbst gehostetes Presidio läuft in Dev, Staging und Production. Jede dieser Umgebungen kann sich anders verhalten. Daher kann dieselbe Eingabe in jeder Umgebung zu anderen Ergebnissen führen.

Das nennt man Environment-Drift. Es gibt vier Hauptursachen.

Modellversions-Drift

spaCy-Modelle sind versioniert. Modell en_core_web_lg 3.4.4 und en_core_web_lg 3.5.1 wurden auf verschiedenen Daten trainiert. Sie verwenden auch verschiedene Architekturen. So kann dasselbe Dokument mit jeder Version andere NER-Ergebnisse liefern.

Ein typisches Setup sieht so aus:

  • Dev: en_core_web_lg 3.4.4 — installiert bei Projektstart
  • Staging: en_core_web_lg 3.5.0 — aktualisiert bei Routinearbeit
  • Production: en_core_web_lg 3.5.1 — aktualisiert bei einem Sicherheits-Patch

Das sind drei Setups. Drei Modellversionen. Drei verschiedene Erkennungsergebnisse. Tests bestehen in Staging. Aber Production nutzt ein anderes Modell. So bleibt die Lücke verborgen.

Abhängigkeitsversions-Drift

spaCy 3.4.x und 3.5.x unterscheiden sich in der Satztrennung. Diese Änderung beeinflusst, wie Namen an Satzgrenzen gefunden werden. Diese Änderungen stehen in den spaCy-Release-Notes. Aber die meisten Teams prüfen sie nicht auf PII-Auswirkungen.

Konfigurations-Drift

Score-Schwellenwerte aus Dev werden möglicherweise nicht in Production übernommen. Benutzerdefinierte Wortlisten können sich zwischen Setups unterscheiden. Diese Lücken sind häufig. Sie werden selten verfolgt. Lesen Sie unsere DSGVO-Compliance-Guide für das, was Prüfer suchen.

Hardware-Unterschiede

Berechnungen in NLP-Modellen sind nicht auf allen CPUs und GPUs identisch. Ein Laptop und ein Server können leicht unterschiedliche Scorewerte liefern. So werden manche Namen auf einem Gerät gefunden, auf einem anderen nicht.

Ein realer Audit-Befund

Eine Bank testete ihr selbst gehostetes Presidio-Setup.

Test-Setup: Presidio mit spaCy 3.4.4 auf dem Staging-Cluster. Live-Setup: Presidio mit spaCy 3.5.1 auf dem Production-Cluster.

Sie führten dieselben Dokumente durch beide Systeme. Dann verglichen sie die Ergebnisse. Befund: 3 % der Dokumente hatten unterschiedliche PII-Entfernungsergebnisse. Einige Namen wurden in Staging erkannt, aber nicht in Production. Andere hatten unterschiedliche Textspannen.

Der Audit-Befund war direkt: „Das Unternehmen kann keine einheitliche Anwendung technischer PII-Entfernungsmaßnahmen nachweisen, da die Erkennungsausgabe je nach Setup variiert."

DSGVO Art. 32 verlangt angemessene technische Maßnahmen. EDPB-Regeln zur PII-Entfernung fordern Konsistenz und Reproduzierbarkeit. Eine 3-%-Rate bei 100.000 Dokumenten pro Monat bedeutet 3.000 Dokumente mit inkonsistenten Ergebnissen pro Monat. Einige sind False Negatives. PII, die Staging erkennt, bleibt im Live-Output. Das ist ein Compliance-Fehler.

Die Bank wechselte dann zu verwalteten SaaS. Der Audit-Befund wurde geschlossen. Lesen Sie unsere Seite zu Sicherheit und Compliance für Details.

Warum verwaltete Dienste sich unterscheiden

Ein verwalteter Dienst betreibt eine Engine-Version. Alle Benutzer nutzen dieselbe Version zur selben Zeit. Model-Updates werden von einem Ort aus eingespielt. Die Konfiguration wird zentral mit vollem Änderungsprotokoll verwaltet. Hardware der Benutzer hat keinen Einfluss auf die Ergebnisse.

So liefert dasselbe Dokument, das heute verarbeitet wird, nächsten Monat dasselbe Ergebnis. Wenn sich die Engine-Version ändert, ist diese Änderung protokolliert und versioniert.

Der Unterschied im Audit-Trail ist entscheidend.

Selbst gehosteter Audit-Trail:

  • „Verwendet wurde Presidio 2.2.35 mit spaCy en_core_web_lg 3.5.1 auf Ubuntu 22.04."
  • War das dieselbe Version wie in Staging? Unbekannt.
  • Hat sich das Modell seit der Verarbeitung dieses Dokuments geändert? Unbekannt, wenn nicht verfolgt.
  • Ist der Score-Schwellenwert derselbe wie im Test? Abhängig vom Konfigurations-Management.

Verwalteter Dienst-Audit-Trail:

  • „Verwendet wurde anonym.legal API, Engine-Version 4.22.1, am 2025-03-15T14:22:31Z."
  • Dieselbe Version für alle Benutzer? Ja.
  • Hat sie sich geändert? Engine-Versionen sind fixiert. Version 4.22.1 bedeutet immer dieselbe Engine.
  • Ist die Konfiguration reproduzierbar? Ja. Preset-ID ist protokolliert. Konfiguration dieser Version ist abrufbar.

Der verwaltete Trail ist klar. Der selbst gehostete Trail erfordert sorgfältige Nachverfolgung, die die meisten Teams überspringen.

Konsistenz bei selbst gehosteten Setups verbessern

Wenn Selbst-Hosting erforderlich ist, können Sie Drift mit vier Schritten reduzieren.

Erstens: Modellversionen fixieren. Sperren Sie genaue Modellversionen in allen Deploy-Dateien. Blockieren Sie Auto-Updates. Verfolgen Sie Versionen in der Versionskontrolle.

Dann: Container-Images einfrieren. Erstellen Sie Docker-Images mit eingebetteten genauen Modellversionen. Markieren Sie jedes Image mit Modellversion, Presidio-Version und Datum. Aktualisieren Sie Base-Images nur nach Tests.

Außerdem: Konfiguration als Code. Speichern Sie alle Presidio-Einstellungen in versionskontrollierten Dateien. Dazu gehören Detektoren, Score-Schwellenwerte und aktive Sprachen. Deployen Sie Konfiguration mit der App.

Abschließend: Über Setups hinweg testen. Führen Sie nach jeder Aktualisierung eine feste Test-Dokumentmenge durch das neue Setup. Vergleichen Sie die Ergebnisse mit einer gespeicherten Referenz. Automatisieren Sie diese Prüfung. Besuchen Sie die FAQ für häufige Fragen zu automatisierten PII-Regressionstests.

Diese Schritte helfen. Aber sie erfordern auch Aufwand. Ein verwalteter Dienst bietet dieselbe Konsistenz ohne den Mehraufwand.

Fazit

Konsistente PII-Entfernung erscheint nicht in Produktbroschüren. Aber sie wird kritisch, wenn Prüfer nach Belegen fragen.

Ohne aktive Pflege driften selbst gehostete PII-Tools. Versionsänderungen fügen stille Lücken hinzu. Diese Lücken zeigen sich als Audit-Befunde.

Verwaltete Dienste bieten Konsistenz standardmäßig. Die Engine läuft von einem Ort aus. Benutzer-Setups haben keinen Einfluss auf die Ergebnisse. Für Compliance-orientierte Teams ist das ein direkter Vorteil.

Quellen

Bereit, Ihre Daten zu schützen?

Beginnen Sie mit der Anonymisierung von PII mit über 285 Entitätstypen in 48 Sprachen.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.