By · Last updated 2026-06-05

بازگشت به وبلاگGDPR و انطباق

ابزارهای PII خود-میزبان در حسابرسی‌های انطباق شکست می‌خورند

spaCy 3.4.4 نتایج NER متفاوتی نسبت به spaCy 3.5.1 تولید می‌کند. یک شرکت خدمات مالی کشف می‌کند که ۳٪ از اسناد در محیط staging در مقابل تولید به شکل متفاوتی ناشناس شده‌اند.

June 5, 20266 دقیقه مطالعه
compliance auditenvironment consistencyspaCy versionsself-hosted PIIreproducible anonymization

چرا ابزارهای PII خود-میزبان در حسابرسی‌های انطباق شکست می‌خورند

GDPR نیاز به اثبات دارد. باید نشان دهید که حذف PII هر بار به همان روش انجام شده است. حسابرسان DPA این را بررسی می‌کنند. می‌خواهند ببینند که یک روش روشن و سازگار در تمام داده‌ها استفاده شده است.

Presidio خود-میزبان یک مشکل واقعی اینجا دارد. این یک مشکل پیکربندی نیست. یک محدودیت اصلی ابزارهای NLP خود-میزبان است.

انحراف محیطی چیست؟

Presidio خود-میزبان در dev، staging، و production اجرا می‌شود. هر کدام از این‌ها می‌توانند به شکل متفاوتی رفتار کنند. بنابراین ورودی یکسان می‌تواند نتایج متفاوتی در هر کدام تولید کند.

این انحراف محیطی نام دارد. چهار علت اصلی دارد.

انحراف نسخه مدل

مدل‌های spaCy دارای نسخه هستند. مدل en_core_web_lg 3.4.4 و en_core_web_lg 3.5.1 روی داده‌های مختلف آموزش دیده‌اند. از طرح‌های مختلف هم استفاده می‌کنند. بنابراین همان سند می‌تواند نتایج NER متفاوتی با هر نسخه بدهد.

یک راه‌اندازی رایج این‌گونه است:

  • Dev: en_core_web_lg 3.4.4 — در شروع پروژه نصب شده
  • Staging: en_core_web_lg 3.5.0 — در طول کار معمول به‌روز شده
  • Production: en_core_web_lg 3.5.1 — در طول یک رفع امنیتی به‌روز شده

این سه راه‌اندازی است. سه نسخه مدل. سه نتیجه تشخیص متفاوت. آزمایش‌ها در staging می‌گذرند. اما production یک مدل متفاوت اجرا می‌کند. بنابراین شکاف پنهان می‌ماند.

انحراف نسخه وابستگی

spaCy 3.4.x و 3.5.x در نحوه تقسیم جملات تفاوت دارند. آن تغییر بر نحوه یافتن نام‌ها در نزدیکی شکستن جملات تأثیر می‌گذارد. این تغییرات در یادداشت‌های انتشار spaCy آمده‌اند. اما اکثر تیم‌ها آن‌ها را برای تأثیر PII بررسی نمی‌کنند.

انحراف پیکربندی

آستانه‌های امتیاز تنظیم‌شده در dev ممکن است به production منتقل نشوند. لیست‌های کلمات سفارشی هم می‌توانند بین راه‌اندازی‌ها متفاوت باشند. این شکاف‌ها رایج هستند. به ندرت پیگیری می‌شوند. برای آنچه حسابرسان به دنبالش هستند، راهنمای انطباق GDPR را ببینید.

تفاوت‌های سخت‌افزاری

ریاضیات در مدل‌های NLP در تمام CPU‌ها و GPU‌ها یکسان نیست. یک لپ‌تاپ مصرفی و یک سرور می‌توانند نتایج امتیاز کمی متفاوتی بدهند. بنابراین برخی نام‌ها ممکن است روی یک ماشین پیدا شوند اما روی دیگری نه.

یک یافته واقعی حسابرسی

یک بانک راه‌اندازی Presidio خود-میزبان خود را آزمایش کرد.

راه‌اندازی آزمایش: Presidio با spaCy 3.4.4 روی خوشه staging. راه‌اندازی زنده: Presidio با spaCy 3.5.1 روی خوشه production.

آن‌ها همان مجموعه اسناد را از هر دو عبور دادند. سپس نتایج را مقایسه کردند. یافته: ۳٪ از اسناد نتایج حذف PII متفاوتی داشتند. برخی نام‌ها در staging شناسایی شدند اما در production نه. برخی دارای محدوده‌های متن تشخیص‌داده‌شده متفاوتی بودند.

یافته حسابرسی مستقیم بود: «شرکت نمی‌تواند استفاده سازگار از اقدامات فنی حذف PII را به دلیل تفاوت‌های مختص به راه‌اندازی در خروجی تشخیص نشان دهد.»

GDPR ماده ۳۲ اقدامات فنی مناسب را می‌طلبد. قوانین EDPB درباره حذف PII نیازمند سازگاری و قابلیت بازتولید هستند. یک نرخ ۳٪ در طول ۱۰۰٬۰۰۰ سند در ماه یعنی ۳٬۰۰۰ سند با نتایج ناسازگار هر ماه. برخی منفی‌های کاذب هستند. PII که staging می‌گرفت در خروجی زنده باقی می‌ماند. این یک شکست انطباقی است.

بانک سپس به SaaS مدیریت‌شده منتقل شد. یافته حسابرسی بسته شد. برای نحوه مدیریت راه‌اندازی‌های مدیریت‌شده این موضوع، صفحه امنیت و انطباق را ببینید.

چرا سرویس‌های مدیریت‌شده متفاوت هستند

یک سرویس مدیریت‌شده یک نسخه موتور اجرا می‌کند. همه کاربران همزمان همان نسخه را اجرا می‌کنند. به‌روزرسانی‌های مدل از یک مکان اعمال می‌شوند. پیکربندی هم از یک مکان مدیریت می‌شود، با یک لاگ تغییر کامل. سخت‌افزار کاربر بر نتایج تأثیر نمی‌گذارد.

بنابراین همان سند پردازش‌شده امروز ماه آینده همان نتیجه را می‌دهد. اگر نسخه موتور تغییر کرده، آن تغییر ثبت و نسخه‌بندی شده است.

تفاوت مسیر حسابرسی کلیدی است.

مسیر حسابرسی خود-میزبان:

  • «از Presidio 2.2.35 با spaCy en_core_web_lg 3.5.1 روی Ubuntu 22.04 استفاده شد.»
  • آیا این همان نسخه staging بود؟ نامشخص.
  • آیا مدل از زمان پردازش این سند تغییر کرده؟ مگر پیگیری شود، نامشخص.
  • آیا آستانه امتیاز همانند آزمایش است؟ بستگی به مدیریت پیکربندی دارد.

مسیر حسابرسی سرویس مدیریت‌شده:

  • «از API anonym.legal، نسخه موتور 4.22.1، در 2025-03-15T14:22:31Z استفاده شد.»
  • همان نسخه برای همه کاربران؟ بله.
  • آیا تغییر کرده؟ نسخه‌های موتور ثابت هستند. نسخه 4.22.1 همیشه همان موتور را می‌گوید.
  • آیا پیکربندی قابل بازتولید است؟ بله. شناسه پیش‌تنظیم ثبت می‌شود. پیکربندی در آن نسخه قابل بازیابی است.

مسیر مدیریت‌شده روشن است. مسیر خود-میزبان نیاز به پیگیری دقیقی دارد که اکثر تیم‌ها از آن می‌گذرند.

چگونه سازگاری خود-میزبان را بهبود دهیم

اگر خود-میزبانی الزامی است، می‌توانید با چهار مرحله انحراف را کاهش دهید.

اول، نسخه‌های مدل را ثابت کنید. نسخه‌های دقیق مدل را در تمام فایل‌های استقرار قفل کنید. به‌روزرسانی‌های خودکار را مسدود کنید. نسخه‌ها را در کنترل منبع پیگیری کنید.

سپس، ایمیج‌های کانتینر را منجمد کنید. ایمیج‌های Docker را با نسخه‌های دقیق مدل بپزید. هر ایمیج را با نسخه مدل، نسخه Presidio، و تاریخ برچسب بزنید. ایمیج‌های پایه را بدون آزمایش اول به‌روز نکنید.

همچنین، پیکربندی را در کد نگه دارید. تمام تنظیمات Presidio را در فایل‌های پیگیری‌شده در کنترل نسخه ذخیره کنید. این شامل آشکارکننده‌ها، آستانه‌های امتیاز، و زبان‌های فعال می‌شود. پیکربندی را با برنامه مستقر کنید.

در نهایت، در تمام راه‌اندازی‌ها آزمایش کنید. پس از هر به‌روزرسانی، یک مجموعه سند آزمایشی ثابت را از طریق راه‌اندازی جدید اجرا کنید. نتایج را با یک مرجع ذخیره‌شده مقایسه کنید. این بررسی را خودکار کنید. برای سوالات رایج درباره آزمایش رگرسیون PII خودکار، FAQ را ببینید.

این مراحل کمک می‌کنند. اما کار اضافه هم اضافه می‌کنند. یک سرویس مدیریت‌شده همان سازگاری را بدون تلاش اضافه می‌دهد.

نتیجه نهایی

حذف PII سازگار روی برگه‌های محصول ظاهر نمی‌شود. اما وقتی حسابرسان درخواست شواهد می‌کنند، بحرانی می‌شود.

بدون مراقبت فعال، ابزارهای PII خود-میزبان منحرف می‌شوند. تغییرات نسخه شکاف‌های پنهانی اضافه می‌کنند. آن شکاف‌ها به صورت یافته‌های حسابرسی ظاهر می‌شوند.

سرویس‌های مدیریت‌شده سازگاری را به صورت پیش‌فرض ارائه می‌دهند. موتور از یک مکان اجرا می‌شود. راه‌اندازی‌های کاربر بر نتایج تأثیر نمی‌گذارند. برای تیم‌های متمرکز بر انطباق، این یک مزیت مستقیم است.

منابع

آماده‌اید داده‌های خود را محافظت کنید؟

شروع به ناشناس‌سازی PII با بیش از ۲۸۵ نوع نهاد در ۴۸ زبان.

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.