By · Last updated 2026-06-05

Tilbage til BlogGDPR & Overholdelse

Selvhostede PII-Værktøjer Fejler Compliancerevisioner

spaCy 3.4.4 producerer andre NER-resultater end spaCy 3.5.1. Et finansielt selskab opdagede, at 3% af dokumenterne var forskelligt anonymiseret i staging vs. produktion — et direkte revisionsfund under GDPR Artikel 32.

June 5, 20266 min læsning
compliance auditenvironment consistencyspaCy versionsself-hosted PIIreproducible anonymization

Hvorfor Selvhostede PII-Værktøjer Fejler Compliancerevisioner

GDPR kræver bevis. Du skal vise, at PII-fjernelse blev udført på samme måde hver gang. DPA-revisorer kontrollerer dette. De vil se en klar, konsistent metode anvendt på tværs af alle data.

Selvhostet Presidio har et reelt problem her. Det er ikke et konfigurationsproblem. Det er en kernebegrænsning ved selvhostede NLP-værktøjer.

Hvad Er Miljødrift?

Selvhostet Presidio kører i dev, staging og produktion. Hver af disse kan opføre sig på en anden måde. Så det samme input kan producere forskellige resultater i hvert miljø.

Dette kaldes miljødrift. Det har fire primære årsager.

Modelversion-Drift

spaCy-modeller er versionerede. Modellen en_core_web_lg 3.4.4 og en_core_web_lg 3.5.1 er trænet på forskellige data. De bruger også forskellige designs. Så det samme dokument kan give forskellige NER-resultater med hver version.

En almindelig opsætning ser sådan ud:

  • Dev: en_core_web_lg 3.4.4 — installeret ved projektstart
  • Staging: en_core_web_lg 3.5.0 — opdateret under rutinearbejde
  • Produktion: en_core_web_lg 3.5.1 — opdateret under et sikkerhedspatch

Det er tre opsætninger. Tre modelversioner. Tre forskellige detektionsresultater. Test består i staging. Men produktion kører en anden model. Så kløften forbliver skjult.

Afhængighedsversion-Drift

spaCy 3.4.x og 3.5.x adskiller sig i, hvordan de opdeler sætninger. Denne ændring påvirker, hvordan navne opdages nær sætningsskift. Disse ændringer er i spaCy-udgivelsesnoterne. Men de fleste teams kontrollerer dem ikke for PII-effekt.

Konfigurationsdrift

Scoretærskler indstillet i dev overføres måske ikke til produktion. Brugerdefinerede ordlister kan også adskille sig mellem opsætninger. Disse kløfter er almindelige. De spores sjældent. Se vores GDPR-compliancevejledning for, hvad revisorer ser efter.

Hardware-Forskelle

Mat i NLP-modeller er ikke identisk på alle CPU'er og GPU'er. En forbrugerlaptop og en server kan give let forskellige scoreresultater. Så visse navne opdages måske på én maskine men ikke på en anden.

Et Virkeligt Revisionsfund

En bank testede deres selvhostede Presidio-opsætning.

Testopsætning: Presidio med spaCy 3.4.4 på staging-clusteret. Live opsætning: Presidio med spaCy 3.5.1 på produktions-clusteret.

De kørte det samme sæt dokumenter gennem begge. Derefter sammenlignede de resultaterne. Fundet: 3% af dokumenterne havde forskellige PII-fjernelsesresultater. Visse navne blev fanget i staging men ikke i produktion. Visse havde forskellige detekterede tekstspænd.

Revisionsfundet var direkte: "Firmaet kan ikke demonstrere konsistent brug af tekniske PII-fjernelsesforanstaltninger på grund af opsætningsspecifikke forskelle i detektionsoutput."

GDPR Artikel 32 kræver passende tekniske foranstaltninger. EDPB-regler om PII-fjernelse kræver konsistens og reproducerbarhed. En rate på 3% ud af 100.000 dokumenter om måneden betyder 3.000 dokumenter med inkonsistente resultater hver måned. Nogle er falske negativer. PII, som staging ville opfange, forbliver i live-outputtet. Det er en compliance-fejl.

Banken skiftede derefter til managed SaaS. Revisionsfundet blev lukket. Se vores sikkerheds- og complianceside for, hvordan managed opsætninger håndterer dette.

Hvorfor Managed Tjenester Er Anderledes

En managed tjeneste kører én motorversion. Alle brugere kører den samme version på samme tid. Modelopdateringer anvendes fra ét sted. Konfiguration styres også fra ét sted med en fuld ændringslog. Brugerens hardware påvirker ikke resultaterne.

Så det samme dokument behandlet i dag giver det samme resultat næste måned. Hvis motorversionen ændrede sig, er den ændring logget og versioneret.

Revisionssporforskellen er afgørende.

Selvhostet revisionsspor:

  • "Brugte Presidio 2.2.35 med spaCy en_core_web_lg 3.5.1 på Ubuntu 22.04."
  • Var dette den samme version som i staging? Ukendt.
  • Har modellen ændret sig siden dette dokument blev behandlet? Ukendt, medmindre det er sporet.
  • Er scoretærsklen den samme som under test? Det afhænger af konfigurationsstyring.

Managed tjeneste revisionsspor:

  • "Brugte anonym.legal API, motorversion 4.22.1, klokken 2025-03-15T14:22:31Z."
  • Samme version for alle brugere? Ja.
  • Har den ændret sig? Motorversioner er låste. Version 4.22.1 betyder altid den samme motor.
  • Er konfigurationen reproducerbar? Ja. Forudindstillings-ID er logget. Konfigurationen på den version kan hentes frem.

Det managed spor er klart. Det selvhostede spor kræver omhyggelig sporing, som de fleste teams springer over.

Sådan Forbedres Selvhostet Konsistens

Hvis selvhosting er nødvendig, kan du reducere drift med fire trin.

For det første, fastlås modelversioner. Lås præcise modelversioner i alle deploy-filer. Bloker automatiske opdateringer. Spor versioner i kildekontrol.

Dernæst, frys containerimages. Byg Docker-images med præcise modelversioner indlejret. Mærk hvert image med modelversionen, Presidio-versionen og datoen. Opdater ikke basisimages uden at teste først.

Derudover, hold konfigurationen i kode. Gem alle Presidio-indstillinger i filer sporet i versionskontrol. Dette inkluderer detektorer, scoretærskler og aktive sprog. Deploy konfigurationen med applikationen.

Endelig, test på tværs af opsætninger. Kør efter enhver opdatering et fast sæt testdokumenter gennem den nye opsætning. Sammenlign resultaterne med en gemt reference. Automatiser denne kontrol. Se FAQ for hyppige spørgsmål om automatiseret PII-regressionstest.

Disse trin hjælper. Men de tilføjer også arbejde. En managed tjeneste giver den samme konsistens uden den ekstra indsats.

Konklusionen

Konsistent PII-fjernelse fremgår ikke af produktblade. Men det bliver kritisk, når revisorer beder om dokumentation.

Uden aktiv opmærksomhed driver selvhostede PII-værktøjer. Versionsskift tilføjer stille kløfter. Disse kløfter viser sig som revisionsfund.

Managed tjenester leverer konsistens som standard. Motoren kører fra ét sted. Brugeropsætninger påvirker ikke resultaterne. For compliance-fokuserede teams er dette en direkte fordel.

Kilder

Klar til at beskytte dine data?

Begynd at anonymisere PII med 285+ enhedstyper på tværs af 48 sprog.

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.