anonym.legal

By · Last updated 2026-06-05

Înapoi la BlogGDPR & Conformitate

Instrumentele PII auto-găzduite eșuează la auditurile de conformitate

spaCy 3.4.4 produce rezultate NER diferite față de spaCy 3.5.1. O firmă de servicii financiare descoperă că 3% din documente au fost anonimizate diferit în staging față de producție.

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

De ce instrumentele PII auto-găzduite eșuează la auditurile de conformitate

GDPR necesită dovezi. Trebuie să demonstrezi că eliminarea PII s-a făcut în același mod de fiecare dată. Auditorii DPA verifică asta. Vor să vadă o metodă clară, consecventă utilizată în toate datele.

Presidio auto-găzduit are o problemă reală aici. Nu este o problemă de configurare. Este o limită fundamentală a instrumentelor NLP auto-găzduite.

Ce este deriva de mediu?

Presidio auto-găzduit rulează în dev, staging și producție. Fiecare dintre acestea se poate comporta diferit. Astfel, aceeași intrare poate produce rezultate diferite în fiecare.

Aceasta se numește deriva de mediu. Are patru cauze principale.

Deriva versiunii modelului

Modelele spaCy sunt versionate. Modelul en_core_web_lg 3.4.4 și en_core_web_lg 3.5.1 au fost antrenate pe date diferite. Folosesc și proiecte diferite. Astfel, același document poate da rezultate NER diferite cu fiecare versiune.

O configurare obișnuită arată astfel:

  • Dev: en_core_web_lg 3.4.4 — instalat la începutul proiectului
  • Staging: en_core_web_lg 3.5.0 — actualizat în timpul lucrului de rutină
  • Producție: en_core_web_lg 3.5.1 — actualizat în timpul unui patch de securitate

Aceasta înseamnă trei configurări. Trei versiuni de modele. Trei rezultate de detecție diferite. Testele trec în staging. Dar producția rulează un model diferit. Astfel, decalajul rămâne ascuns.

Deriva versiunii de dependențe

spaCy 3.4.x și 3.5.x diferă în modul în care împart propozițiile. Acea schimbare afectează modul în care sunt găsite numele lângă limitele propoziției. Aceste schimbări sunt în notele de lansare spaCy. Dar cele mai multe echipe nu le verifică pentru impactul PII.

Deriva configurației

Pragurile de scor setate în dev pot să nu se transfere în producție. Listele de cuvinte personalizate pot de asemenea să difere între configurări. Aceste decalaje sunt frecvente. Sunt rareori urmărite. Consultați ghidul nostru de conformitate GDPR pentru ce caută auditorii.

Diferențe de hardware

Matematica în modelele NLP nu este identică pe toate CPU-urile și GPU-urile. Un laptop de consum și un server pot da rezultate de scor ușor diferite. Astfel, unele nume pot fi găsite pe o mașină, dar nu pe alta.

O constatare reală de audit

O bancă și-a testat configurarea Presidio auto-găzduit.

Configurare test: Presidio cu spaCy 3.4.4 pe clusterul staging. Configurare live: Presidio cu spaCy 3.5.1 pe clusterul de producție.

Au rulat același set de documente prin ambele. Apoi au comparat rezultatele. Constatarea: 3% din documente aveau rezultate diferite de eliminare PII. Unele nume au fost prinse în staging, dar nu în producție. Unele aveau intervale de text detectate diferite.

Constatarea de audit a fost directă: „Firma nu poate demonstra utilizarea consecventă a măsurilor tehnice de eliminare PII din cauza diferențelor specifice configurării în ieșirea de detecție.”

Articolul 32 GDPR necesită măsuri tehnice adecvate. Regulile EDPB privind eliminarea PII necesită consecvență și repetabilitate. O rată de 3% din 100.000 de documente pe lună înseamnă 3.000 de documente cu rezultate inconsecvente în fiecare lună. Unele sunt fals negative. PII pe care staging-ul l-ar prinde rămâne în ieșirea live. Aceasta este o eșuare de conformitate.

Banca s-a mutat apoi la SaaS gestionat. Constatarea de audit a fost închisă. Consultați pagina noastră de securitate și conformitate pentru cum gestionează configurările gestionate asta.

De ce serviciile gestionate sunt diferite

Un serviciu gestionat rulează o versiune de motor. Toți utilizatorii rulează aceeași versiune în același timp. Actualizările de modele sunt aplicate dintr-un singur loc. Configurarea este de asemenea gestionată dintr-un singur loc, cu un jurnal complet de modificări. Hardware-ul utilizatorului nu afectează rezultatele.

Astfel, același document procesat astăzi dă același rezultat luna viitoare. Dacă versiunea motorului s-a schimbat, acea schimbare este înregistrată și versionată.

Diferența urmei de audit este cheie.

Urma de audit auto-găzduită:

  • „Am folosit Presidio 2.2.35 cu spaCy en_core_web_lg 3.5.1 pe Ubuntu 22.04.”
  • A fost aceasta aceeași versiune ca în staging? Necunoscut.
  • S-a schimbat modelul de când a fost procesat acest document? Necunoscut dacă nu este urmărit.
  • Este pragul de scor același ca în testare? Depinde de gestionarea configurației.

Urma de audit a serviciului gestionat:

  • „Am folosit API-ul anonym.legal, versiunea motorului 4.22.1, la 2025-03-15T14:22:31Z.”
  • Aceeași versiune pentru toți utilizatorii? Da.
  • S-a schimbat? Versiunile de motor sunt fixate. Versiunea 4.22.1 înseamnă întotdeauna același motor.
  • Configurația este repetabilă? Da. ID-ul presetării este înregistrat. Configurația la acea versiune poate fi recuperată.

Urma gestionată este clară. Urma auto-găzduită necesită urmărire atentă pe care cele mai multe echipe o omit.

Cum să îmbunătățiți consecvența auto-găzduită

Dacă auto-găzduirea este necesară, puteți reduce deriva cu patru pași.

În primul rând, fixați versiunile modelelor. Blocați versiunile exacte ale modelelor în toate fișierele de implementare. Blocați actualizările automate. Urmăriți versiunile în controlul surselor.

Apoi, înghețați imaginile containerelor. Construiți imagini Docker cu versiunile exacte ale modelelor integrate. Etichetați fiecare imagine cu versiunea modelului, versiunea Presidio și data. Nu actualizați imaginile de bază fără testare prealabilă.

De asemenea, păstrați configurația în cod. Stocați toate setările Presidio în fișiere urmărite în controlul surselor. Aceasta include detectoarele, pragurile de scor și limbile active. Implementați configurația cu aplicația.

În final, testați în toate configurările. După orice actualizare, rulați un set fix de documente de test prin noua configurare. Comparați rezultatele cu o referință stocată. Automatizați această verificare. Consultați FAQ-ul pentru întrebări frecvente despre testarea automată de regresie PII.

Acești pași ajută. Dar adaugă și muncă. Un serviciu gestionat oferă aceeași consecvență fără efortul suplimentar.

Concluzia

Eliminarea consecventă a PII nu apare pe foile de produs. Dar devine critică când auditorii cer dovezi.

Fără îngrijire activă, instrumentele PII auto-găzduite derivează. Schimbările de versiune adaugă decalaje tăcute. Acele decalaje apar ca constatări de audit.

Serviciile gestionate oferă consecvență implicit. Motorul rulează dintr-un singur loc. Configurările utilizatorilor nu afectează rezultatele. Pentru echipele axate pe conformitate, acesta este un avantaj direct.

Surse

Pregătit să vă protejați datele?

Începeți să anonimizati PII cu 285+ tipuri de entități în 48 de limbi.

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.