anonym.legal

By · Last updated 2026-05-27

กลับไปที่บล็อกเทคนิค

การทำข้อมูล ML Training ให้สอดคล้อง GDPR: ไม่ต้องเขียนโค้ดเพื่อปิดบัง 10,000 รายการ

GDPR จำกัดการใช้ข้อมูลส่วนบุคคลสำหรับ ML training นอกเหนือจากวัตถุประสงค์เดิม ทีมนักวิทยาศาสตร์ข้อมูลที่พึ่งสคริปต์ Python แบบสุ่มสุ่มสร้างปัญหาทบทวีคูณ นี่คือแนวทางที่ถูกต้อง

May 27, 20267 อ่านประมาณ
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

การทำข้อมูล ML Training ให้สอดคล้อง GDPR: ปิดบัง 10,000 รายการโดยไม่ต้องเขียนโค้ด

ทีมวิทยาศาสตร์ข้อมูลทุกทีมที่จัดการข้อมูลภายใต้ GDPR เคยเขียนสคริปต์ในลักษณะนี้:

import re
def anonymize_email(text):
    return re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', '[EMAIL]', text)

นี่ไม่ใช่การปฏิบัติตาม GDPR แต่เป็นเพียงการแทนที่ที่อยู่อีเมล ชุดข้อมูลยังคงมีชื่อ หมายเลขโทรศัพท์ รหัสบันทึกทางการแพทย์ และข้อมูลส่วนบุคคลอีกหลายสิบประเภทที่จะก่อให้เกิดความล้มเหลวด้านการปฏิบัติตามกฎระเบียบ

ช่องว่างระหว่าง "ฉันลบอีเมลออกแล้ว" กับ "ชุดข้อมูลนี้สอดคล้อง GDPR สำหรับ ML training" นั้นกว้างใหญ่ มีนัยสำคัญ และถูกประเมินต่ำเกินไปอย่างสม่ำเสมอ

เหตุใด GDPR จึงจำกัดการใช้ข้อมูล ML Training

หลักการจำกัดวัตถุประสงค์ของ GDPR (มาตรา 5(1)(b)) ระบุว่าข้อมูลส่วนบุคคลอาจเก็บรวบรวมได้เฉพาะเพื่อวัตถุประสงค์ที่กำหนด ชัดเจน และชอบด้วยกฎหมาย และจะต้องไม่ประมวลผลต่อไปในลักษณะที่ไม่สอดคล้องกับวัตถุประสงค์เดิม

ข้อมูลลูกค้าที่เก็บรวบรวมเพื่อการจัดส่งคำสั่งซื้อ ไม่ได้เก็บมาเพื่อฝึก recommendation model ข้อมูลบันทึกสุขภาพที่เก็บรวบรวมเพื่อการรักษา ไม่ได้เก็บมาเพื่อฝึกโมเดลทำนายการกลับเข้ารักษา ข้อมูลแบบสอบถามที่เก็บรวบรวมเพื่อรับข้อเสนอแนะผลิตภัณฑ์ ไม่ได้เก็บมาเพื่อฝึกโมเดลวิเคราะห์ความรู้สึก

การนำข้อมูลเหล่านี้มาใช้ใน ML training ต้องการ:

  1. ความยินยอมอย่างชัดแจ้งจากเจ้าของข้อมูลแต่ละรายสำหรับวัตถุประสงค์ ML training (ซับซ้อนในการดำเนินงาน มักเป็นไปไม่ได้ย้อนหลัง)
  2. การประเมินผลประโยชน์ที่ชอบธรรมซึ่งแสดงให้เห็นว่าวัตถุประสงค์การฝึกสอดคล้องกับการเก็บรวบรวมเดิม (ไม่แน่นอนทางกฎหมาย ขึ้นอยู่กับ DPA)
  3. การทำข้อมูลนิรนาม — ลบหรือแทนที่ข้อมูลส่วนบุคคลจนข้อมูลไม่เป็น "personal data" ตาม GDPR อีกต่อไป

การทำข้อมูลนิรนามที่ถูกต้องคือเส้นทางที่มีความยุ่งยากน้อยที่สุดและมีความแน่นอนทางกฎหมายมากที่สุด ความท้าทายคือการทำให้ถูกต้องและสม่ำเสมอ

ปัญหาของสคริปต์ทำข้อมูลนิรนามแบบเฉพาะกิจ

ทีมวิทยาศาสตร์ข้อมูลที่เขียนสคริปต์ Python แบบครั้งเดียวสำหรับแต่ละชุดข้อมูลใหม่ สร้างปัญหาทบทวีคูณ:

ความครอบคลุมไม่ครบถ้วน: สคริปต์ที่เขียนสำหรับ schema ของชุดข้อมูลหนึ่งพลาดข้อมูลส่วนบุคคลในคอลัมน์ที่เพิ่มมาหลังจากการอัปเดต schema ครั้งล่าสุด ฟิลด์บันทึกทางคลินิกที่เพิ่มมา 6 เดือนก่อน: ไม่อยู่ใน regex pattern

ความไม่สม่ำเสมอระหว่างชุดข้อมูล: ชุดข้อมูล A ถูกทำให้นิรนามด้วย script_v1.py ชุดข้อมูล B ด้วย script_v3.py ชุดข้อมูล C โดยสมาชิกทีมคนอื่นที่ไม่รู้จัก script_v3.py ชุดข้อมูล training ที่รวมกันมีวิธีการทำข้อมูลนิรนามสามแบบที่แตกต่างกัน DPO ไม่สามารถรับรองได้

ไม่มี audit trail: สคริปต์ทำงานแล้ว แต่เปลี่ยนแปลงอะไร? พบ entity อะไรบ้าง? ในแถวไหน? หากไม่มี metadata การประมวลผล การจัดทำเอกสารการปฏิบัติตามกฎระเบียบเป็นไปไม่ได้

Model drift: Pattern regex ที่ใช้ได้กับข้อมูลปี 2023 ไม่สามารถตรวจจับรูปแบบตัวระบุใหม่ที่เปิดตัวในปี 2024

แนวทางการประมวลผลแบบ Batch

ทีมวิทยาศาสตร์ข้อมูลของบริษัท Healthcare AI ต้องทำข้อมูลนิรนาม 8,000 บันทึกผู้ป่วยก่อนที่ทีม US จะเข้าถึงจากสำนักงาน EU ได้ (ข้อจำกัดการถ่ายโอนข้อมูลข้ามพรมแดน Schrems II ใช้บังคับ)

แนวทางดั้งเดิม: วิศวกรข้อมูลเขียนสคริปต์ทำข้อมูลนิรนามใน Python แบบกำหนดเอง เวลา: 2-3 วันในการพัฒนา 1-2 วันในการทดสอบและตรวจสอบกับ DPO 1 วันในการแก้ไข รวม: 4-6 วัน

แนวทาง Batch processing:

  1. Export 8,000 รายการเป็น CSV
  2. อัปโหลดเพื่อประมวลผลแบบ batch
  3. กำหนดค่าประเภท entity: PERSON, EMAIL_ADDRESS, PHONE_NUMBER, US_SSN, MEDICAL_RECORD, DATE_OF_BIRTH, LOCATION
  4. เลือกวิธีการ: Replace (แทนที่ด้วยข้อมูลปลอมที่สมจริงเพื่อรักษาโครงสร้างชุดข้อมูลสำหรับ ML training)
  5. ประมวลผล: 45 นาทีสำหรับ 8,000 รายการ
  6. ดาวน์โหลด CSV ที่ทำข้อมูลนิรนามแล้ว
  7. DPO ตรวจสอบ metadata การประมวลผล: 2 ชั่วโมง
  8. DPO อนุมัติ การแชร์ข้อมูลดำเนินต่อไป

เวลารวม: ประมวลผล 45 นาที + ตรวจสอบ DPO 2 ชั่วโมง เทียบกับ 4-6 วันสำหรับวิศวกรรม

Replace vs. Redact สำหรับข้อมูล ML Training

การเลือกวิธีการทำข้อมูลนิรนามมีความสำคัญต่อประโยชน์ใช้สอยของ ML:

Redact (การแทนที่ด้วย placeholder): แทนที่ข้อมูลส่วนบุคคลด้วย [REDACTED] หรือ token ที่คล้ายกัน สำหรับโมเดลที่ฝึกสำหรับงาน downstream (sentiment, classification, recommendation) token [REDACTED] จะรบกวนการสร้างแบบจำลองภาษาธรรมชาติ

Replace (การแทนที่ด้วยข้อมูลสังเคราะห์ที่สมจริง): แทนที่ "John Smith" ด้วย "David Chen" (ชื่อจริงแต่แตกต่าง) อีเมล "jsmith@company.com" กลายเป็น "dchen@synthetic.com" ชุดข้อมูลที่ได้รักษาการกระจายภาษาธรรมชาติ — โครงสร้างประโยค การวางตำแหน่ง entity รูปแบบการเกิดร่วมกัน — ซึ่งสำคัญสำหรับการฝึกโมเดล NLP

สำหรับข้อมูล ML training โดยเฉพาะ วิธี Replace คือวิธีที่เหมาะสม

Schrems II และการไหลของข้อมูลข้ามพรมแดน

คำตัดสิน Schrems II (CJEU, 2020) ทำให้ EU-US Privacy Shield เป็นโมฆะ ส่งผลทางปฏิบัติต่อวิทยาศาสตร์ข้อมูล: ข้อมูล training ที่มีต้นกำเนิดจาก EU ไม่สามารถส่งไปยังโครงสร้างพื้นฐาน ML ที่ตั้งอยู่ในสหรัฐอเมริกาได้โดยไม่มีมาตรการคุ้มครองการถ่ายโอนที่เพียงพอ

เหตุยกเว้นสำหรับข้อมูลนิรนาม: ข้อมูลที่ทำให้นิรนามอย่างถูกต้องไม่ใช่ข้อมูลส่วนบุคคลภายใต้ GDPR และไม่อยู่ภายใต้ข้อจำกัดการถ่ายโอน การทำข้อมูลนิรนามที่ถูกต้องจะขจัดปัญหา Schrems II โดยสิ้นเชิง

เอกสารสำหรับการอนุมัติ DPO

เมื่อส่งข้อมูล training ที่ทำให้นิรนามแล้วให้ DPO อนุมัติ ให้จัดเตรียม:

  1. คำอธิบายข้อมูลต้นฉบับ: ชุดข้อมูลเดิมคืออะไร วัตถุประสงค์การเก็บรวบรวมคืออะไร ประกอบด้วยประเภทข้อมูลส่วนบุคคลใดบ้าง
  2. การกำหนดค่าการทำข้อมูลนิรนาม: ตรวจจับและแทนที่ประเภท entity ใด ใช้วิธีการใด
  3. Metadata การประมวลผล: จำนวน entity ที่ตรวจจับต่อรายการ คะแนนความเชื่อมั่นในการตรวจจับ จำนวนรายการที่ประมวลผลทั้งหมด
  4. การประเมินความเสี่ยงที่เหลืออยู่: ความน่าจะเป็นที่บุคคลใดบุคคลหนึ่งจะถูกระบุตัวตนซ้ำจากชุดข้อมูลที่ทำให้นิรนามแล้ว
  5. วัตถุประสงค์ที่ตั้งใจ: จะฝึกโมเดล ML ใด วัตถุประสงค์การฝึกคืออะไร

สรุป

ข้อมูล ML training ที่สอดคล้อง GDPR สามารถทำได้โดยไม่ต้องสคริปต์แบบเฉพาะกิจ ไม่ต้องล่าช้าด้านวิศวกรรมหลายวัน และไม่ต้องเสียสละประโยชน์ใช้สอยของชุดข้อมูล วิธี Replace ทำข้อมูลนิรนามรักษาคุณสมบัติภาษาธรรมชาติที่ทำให้ข้อมูลมีประโยชน์สำหรับการฝึกโมเดล NLP ในขณะที่ลบคุณสมบัติข้อมูลส่วนบุคคลที่ก่อให้เกิดความรับผิด GDPR

45 นาทีของการประมวลผลแบบ batch คือความแตกต่างระหว่างการตรวจสอบการปฏิบัติตามที่ล่าช้ากำหนดเวลากับการอนุมัติ DPO ที่ตรงไปตรงมา

แหล่งข้อมูล:

พร้อมที่จะปกป้องข้อมูลของคุณหรือยัง?

เริ่มทำให้ PII เป็นนิรนามด้วยประเภทเอนทิตีมากกว่า 285 ประเภทใน 48 ภาษา.

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.