By · Last updated 2026-05-27

返回博客技术

GDPR合规的机器学习训练数据匿名化

GDPR限制将个人数据用于超出原始收集目的的机器学习训练。依赖临时Python脚本的数据科学团队面临合规漏洞、DPO审批延误和Schrems II跨境限制等问题。

May 27, 20267 分钟阅读
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

一个脚本远远不够

每个数据科学团队都写过类似这样的代码:

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

这段代码只能替换电子邮件地址,仅此而已。数据集中仍然包含姓名、电话号码和医疗ID,在GDPR审计中依然无法通过。

「我已经匿名化了邮箱」和「这个数据集符合GDPR」之间的差距相当大,团队往往低估了这一差距。

GDPR为何限制机器学习训练用途

GDPR第5(1)(b)条是关键规则,即目的限制原则。个人记录只能用于最初收集时的目的。

客户订单数据是为了履行订单而收集的,而非用于训练推荐模型。健康记录是为了诊疗而收集的,而非用于训练再入院预测模型。调查回答是为了产品反馈而收集的,而非用于训练情感分类器。

要将这些记录用于机器学习训练,团队需要满足以下三个条件之一:

  1. 从每位当事人处获得针对机器学习用途的明确同意——难以获得,事后往往不可行
  2. 证明机器学习用途具有合理利益——法律上存在不确定性,因数据保护机构而异
  3. 匿名化——替换或删除个人信息,使数据集在GDPR意义上不再属于个人数据

正确的匿名化提供了最强的法律确定性,难点在于每次都做到位。

临时脚本的问题

针对每个数据集编写新Python脚本的团队会积累复合性问题。

覆盖不完整。 针对某一模式构建的脚本会遗漏新字段。六个月前新增的临床记录列?不在正则表达式中。中间名字段?脚本只处理名和姓的模式。

缺乏一致性。 数据集A用script_v1处理,数据集B用script_v3处理,数据集C由不同团队成员处理。合并后的训练集应用了三种不同方法,数据保护官(DPO)无法对其进行认证。

没有审计追踪。 脚本运行了,但改了什么?发现了哪些实体?没有处理记录,合规就无从谈起。当数据保护机构(DPA)审计员问「您怎么知道这个训练集是干净的?」时,「我们运行了一个Python脚本」并不是答案。

模型漂移。 2023年有效的正则表达式可能漏掉2024年出现的新标识符格式,脚本不会自我更新。

批量处理实操演练

一支医疗AI团队需要匿名化8000份患者记录。美国团队需要从欧盟办公室获取访问权限,Schrems II判决适用——欧盟来源的记录在没有适当保障措施的情况下不能传输至美国基础设施。

传统路径: 数据工程师编写自定义脚本,需2至3天开发、1至2天DPO审查、1天迭代,合计4至6天,机器学习项目因此延期。

批量处理路径:

  1. 将8000份记录导出为CSV格式
  2. 上传至批量处理系统
  3. 设置实体类型:PERSON、EMAIL_ADDRESS、PHONE_NUMBER、US_SSN、MEDICAL_RECORD、DATE_OF_BIRTH、LOCATION
  4. 选择方法:替换(用真实感的合成值替代,保留数据结构)
  5. 处理:8000份记录约45分钟
  6. 下载清洁CSV文件
  7. DPO审查处理元数据——每条记录发现的实体、应用的方法:2小时
  8. DPO批准,数据传输进行

总用时:45分钟加2小时DPO审查,而非4至6天。

请参阅欧盟《人工智能法》训练数据指南,了解这些步骤如何满足第10条义务。

替换vs.编辑:机器学习用途的选择

匿名化方法对模型质量至关重要。

编辑将PII替换为[REDACTED]之类的占位符。这对PII检测模型有效,但对其他任务——情感分析、分类、推荐——会造成损害。模型会将[REDACTED]视为特殊token,无法从自然名称和数值的分布中学习。

替换将「张三」换成「李四」,将zhangsan@company.com换成lisi@synthetic.com。数据结构保持完整——实体位置、共现模式、句子流畅性全部保留。模型在真实的上下文中学习。

对于机器学习训练集,替换是正确的选择。模型不会学习假值,而是学习这些值周围的模式,这才是关键所在。

Schrems II与跨境数据传输

Schrems II判决(欧盟法院,2020年)使欧美隐私盾失效。欧盟来源的记录在没有适当传输保障的情况下不能进入美国机器学习基础设施——如AWS美国东部区域、GCP美国中部区域。

三种主要保障措施:

  • 包含传输影响评估的标准合同条款
  • 适用于集团内部传输的有约束力的公司规则
  • 匿名数据豁免——正确匿名化的文件在GDPR意义上不再属于个人数据,免于传输规则的约束

对于使用美国基础设施处理欧盟来源数据集的团队,正确的匿名化消除了Schrems II问题。清洁后的数据集不属于个人数据,可以自由传输。

这是批量匿名化最强大的实践价值之一——它不仅满足GDPR要求,还彻底消除了跨境数据流通的障碍。

如需了解传输限制的更多信息,请参阅GDPR目的限制指南

向DPO提交的材料

提交清洁训练集供DPO审批时,应包含以下五项内容:

  1. 数据来源说明。 原始数据集是什么?收集目的是什么?包含哪些个人数据类别?
  2. 匿名化配置。 检测并替换了哪些实体类型?应用了什么方法?
  3. 处理元数据。 每条记录的实体数量、置信度分数、处理的总记录数。
  4. 残余风险评估。 任何个人被重新识别的概率有多大?对于使用替换方法、覆盖285+实体类型的结构化文本匿名化,此概率极低。
  5. 预期用途。 将训练什么模型?训练目的是什么?

批量处理自动提供第2和第3项内容,第1、4、5项由数据科学家提供。

请参阅anonym.legal批量API,了解每个任务如何返回处理元数据。

价值收益

GDPR合规的机器学习数据集是可以实现的,无需自定义脚本,无需多天延误,也不会损失模型质量。

替换方法保留了对NLP训练至关重要的自然语言属性,同时删除了产生GDPR风险的个人信息。

45分钟的批量处理,是合规审查延误与DPO顺利签字之间的差距。

参考资料

准备好保护您的数据了吗?

开始使用 285 种实体类型在 48 种语言中匿名化 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.