By · Last updated 2026-06-05

Bumalik sa BlogGDPR & Pagsunod

Nabigo ang Self-Hosted PII sa mga Compliance Audit

Ang spaCy 3.4.4 ay gumagawa ng ibang resulta ng NER kaysa spaCy 3.5.1. Natuklasan ng isang financial services firm na 3% ng mga dokumento ay naiiba ang anonymization sa staging vs. production.

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

Bakit Nabibigo ang mga Self-Hosted PII Tool sa mga Compliance Audit

Ang GDPR ay nangangailangan ng patunay. Dapat mong ipakita na ang pag-aalis ng PII ay ginawa sa parehong paraan sa bawat pagkakataon. Sinusuri ito ng mga DPA auditor. Nais nilang makita ang isang malinaw at pare-parehong pamamaraan na ginamit sa lahat ng data.

Ang self-hosted na Presidio ay may tunay na problema dito. Hindi ito isang isyu sa config. Ito ay isang pangunahing limitasyon ng mga self-hosted na NLP tool.

Ano ang Environment Drift?

Ang self-hosted na Presidio ay tumatakbo sa dev, staging, at production. Bawat isa sa mga ito ay maaaring kumilos nang naiiba. Kaya ang parehong input ay maaaring magbigay ng iba't ibang resulta sa bawat isa.

Ito ay tinatawag na environment drift. Mayroon itong apat na pangunahing sanhi.

Model Version Drift

Ang mga spaCy model ay may bersyon. Ang model na en_core_web_lg 3.4.4 at en_core_web_lg 3.5.1 ay sinanay sa iba't ibang data. Gumagamit din sila ng iba't ibang disenyo. Kaya ang parehong dokumento ay maaaring magbigay ng iba't ibang resulta ng NER sa bawat bersyon.

Isang karaniwang setup ay ganito ang hitsura:

  • Dev: en_core_web_lg 3.4.4 — na-install sa simula ng proyekto
  • Staging: en_core_web_lg 3.5.0 — na-update sa panahon ng routine na trabaho
  • Production: en_core_web_lg 3.5.1 — na-update sa panahon ng security fix

Iyon ay tatlong setup. Tatlong bersyon ng model. Tatlong iba't ibang resulta ng deteksyon. Pumapasa ang mga pagsubok sa staging. Ngunit ang production ay nagpapatakbo ng ibang model. Kaya ang agwat ay nananatiling nakatago.

Dependency Version Drift

Ang spaCy 3.4.x at 3.5.x ay naiiba sa paraan ng paghati ng mga pangungusap. Nakakaapekto ang pagbabagong iyon sa kung paano nakikita ang mga pangalan malapit sa mga hangganan ng pangungusap. Ang mga pagbabagong ito ay nasa mga release note ng spaCy. Ngunit karamihan sa mga koponan ay hindi ito sinusuri para sa epekto ng PII.

Configuration Drift

Ang mga score threshold na itinakda sa dev ay maaaring hindi mailipat sa production. Ang mga custom word list ay maaari ring magkaiba sa pagitan ng mga setup. Ang mga agwat na ito ay karaniwan. Bihirang subaybayan ang mga ito. Tingnan ang aming GDPR compliance guide para sa kung ano ang hinahanap ng mga auditor.

Mga Pagkakaiba sa Hardware

Ang matematika sa mga NLP model ay hindi magkapareho sa lahat ng CPU at GPU. Ang isang consumer laptop at isang server ay maaaring magbigay ng bahagyang ibang resulta ng marka. Kaya ang ilang pangalan ay maaaring makita sa isang makina ngunit hindi sa isa pa.

Isang Tunay na Natuklasan ng Audit

Isang bangko ang sumubok ng kanilang self-hosted na Presidio setup.

Test setup: Presidio na may spaCy 3.4.4 sa staging cluster. Live setup: Presidio na may spaCy 3.5.1 sa production cluster.

Pinatakbo nila ang parehong set ng mga dokumento sa pamamagitan ng pareho. Pagkatapos ay inihambing nila ang mga resulta. Ang natuklasan: 3% ng mga dokumento ay nagkaroon ng iba't ibang resulta ng pag-aalis ng PII. Ang ilang pangalan ay nahuli sa staging ngunit hindi sa production. Ang iba ay nagkaroon ng iba't ibang natukoy na text span.

Ang natuklasan ng audit ay direkta: "Hindi maipakita ng firm ang pare-parehong paggamit ng mga teknikal na hakbang sa pag-aalis ng PII dahil sa mga pagkakaibang tukoy sa setup sa output ng deteksyon."

Ang GDPR Article 32 ay nangangailangan ng angkop na mga teknikal na hakbang. Ang mga panuntunan ng EDPB sa pag-aalis ng PII ay nangangailangan ng konsistensya at paulit-ulit na kakayahan. Ang isang 3% na rate sa 100,000 na dokumento bawat buwan ay nangangahulugang 3,000 na dokumento na may hindi pare-parehong resulta bawat buwan. Ang ilan ay mga false negative. Ang PII na mahahanap ng staging ay nananatili sa live na output. Iyon ay isang pagkabigo ng compliance.

Lumipat ang bangko sa managed SaaS. Ang natuklasan ng audit ay nagsara. Tingnan ang aming security and compliance page para sa kung paano pinamamahalaan ng mga managed setup ang ito.

Bakit Naiiba ang mga Managed Service

Ang isang managed na serbisyo ay nagpapatakbo ng isang bersyon ng engine. Lahat ng user ay nagpapatakbo ng parehong bersyon sa parehong oras. Ang mga update ng model ay inilalapat mula sa isang lugar. Ang config ay pinamamahalaan din mula sa isang lugar, na may buong change log. Ang hardware ng user ay hindi nakakaapekto sa mga resulta.

Kaya ang parehong dokumento na naproseso ngayon ay nagbibigay ng parehong resulta sa susunod na buwan. Kung nagbago ang bersyon ng engine, ang pagbabagong iyon ay naka-log at may bersyon.

Ang pagkakaiba sa audit trail ay susi.

Self-hosted audit trail:

  • "Ginamit ang Presidio 2.2.35 na may spaCy en_core_web_lg 3.5.1 sa Ubuntu 22.04."
  • Parehong bersyon ba ito ng nasa staging? Hindi alam.
  • Nagbago ba ang model mula nang maproseso ang dokumentong ito? Hindi alam maliban kung sinusubaybayan.
  • Parehong score threshold ba ng nasa testing? Nakasalalay sa pamamahala ng config.

Managed service audit trail:

  • "Ginamit ang anonym.legal API, engine version 4.22.1, noong 2025-03-15T14:22:31Z."
  • Parehong bersyon ba para sa lahat ng user? Oo.
  • Nagbago ba ito? Ang mga bersyon ng engine ay naka-pin. Ang bersyon 4.22.1 ay palaging nangangahulugang parehong engine.
  • Paulit-ulit ba ang config? Oo. Naka-log ang preset ID. Ang config sa bersyong iyon ay maaaring makuha.

Malinaw ang managed trail. Ang self-hosted trail ay nangangailangan ng maingat na pagsubaybay na karamihan sa mga koponan ay nilalaktawan.

Paano Mapabuti ang Self-Hosted Consistency

Kung kinakailangan ang self-hosting, maaari mong bawasan ang drift sa apat na hakbang.

Una, i-pin ang mga bersyon ng model. I-lock ang mga eksaktong bersyon ng model sa lahat ng deploy file. Harangan ang mga auto-update. Subaybayan ang mga bersyon sa source control.

Susunod, i-freeze ang mga container image. Magtayo ng mga Docker image na may mga eksaktong bersyon ng model na nakapaloob. I-tag ang bawat image na may bersyon ng model, bersyon ng Presidio, at petsa. Huwag i-update ang mga base image nang hindi muna nasusubukan.

Gayundin, panatilihin ang config sa code. I-store ang lahat ng setting ng Presidio sa mga file na sinusubaybayan sa version control. Kasama dito ang mga detector, score threshold, at mga aktibong wika. I-deploy ang config kasama ang app.

Panghuli, subukan sa buong setup. Pagkatapos ng anumang update, patakbuhin ang isang nakatakdang set ng test document sa pamamagitan ng bagong setup. Ihambing ang mga resulta sa isang nakaimbak na sanggunian. I-automate ang pagsusuring ito. Tingnan ang FAQ para sa mga karaniwang tanong tungkol sa automated PII regression testing.

Nakakatulong ang mga hakbang na ito. Ngunit nagdaragdag din sila ng trabaho. Ang isang managed na serbisyo ay nagbibigay ng parehong konsistensya nang walang karagdagang pagsisikap.

Ang Buod

Ang pare-parehong pag-aalis ng PII ay hindi lumalabas sa mga sheet ng produkto. Ngunit nagiging kritikal ito kapag humingi ng katibayan ang mga auditor.

Kung walang aktibong pag-aalaga, ang mga self-hosted na PII tool ay nagde-drift. Ang mga pagbabago ng bersyon ay nagdaragdag ng mga tahimik na agwat. Ang mga agwat na iyon ay lumalabas bilang mga natuklasan ng audit.

Ang mga managed na serbisyo ay nagbibigay ng konsistensya bilang default. Ang engine ay tumatakbo mula sa isang lugar. Ang mga setup ng user ay hindi nakakaapekto sa mga resulta. Para sa mga koponan na nakatuon sa compliance, ito ay isang direktang kalamangan.

Mga Pinagkukunan

Handa nang protektahan ang iyong data?

Simulan ang anonymization ng PII gamit ang 285+ uri ng entidad sa 48 wika.

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.