面向多行业服务提供商的本地 PII 和 PHI 脱敏工作流
构建无需云依赖即可处理医疗、法律、金融和政府数据的本地 PII/PHI 脱敏管道的技术指南。
训练数据在使用之前,必须先移除其中的敏感信息。这是 HIPAA、GDPR 以及多数数据处理协议下的法律要求。对同时服务多个行业的服务提供商来说,难点在 于「敏感」的定义因行业而异,可接受的脱敏方法也因法规而异。
医疗客户需要按 HIPAA 安全港标准移除 PHI。法律客户需要保护受律师与客户特权保护的信息。金融客户需要移除账号和社会安全号码。政府客户需要剥离涉密标识。而且他们全都期望脱敏在本地完成,因为把数据送到云 API 去做实体识别,恰恰是他们雇你来防止的那种数据暴露。
本文讲的是如何构建本地的 PII/PHI 脱敏工作流,在不依赖云的前提下满足多行业的要求。
PII 与 PHI:各行业要求你脱敏什么
PII(个人可识别信息)
PII 指任何能够识别到特定个人的信息。在 GDPR 之下,这个定义很宽,涵盖任何「与已识别或可识别的自然人相关」的数据。在美国法规下,定义因场景而异,但一般包括:
- 全名
- 社会安全号码
- 驾照号码
- 电子邮箱
- 电话号码
- 实际住址
- 出生日期
- 生物特征标识
- 金融账号
PHI(受保护的健康信息)
PHI 是 HIPAA 专有的类别,在 PII 之外还包括与健康相关的数据。HIPAA 的安全港方法列出了 18 类标识符,必须全部移除,数据才被视为已去标识化:
| 序号 | 标识符 | 示例 |
|---|---|---|
| 1 | 姓名 | 患者全名 |
| 2 | 地理信息 | 地址、邮编(人口少于 20,000 时取前 3 位) |
| 3 | 日期 | 除年份外的所有日期(89 岁以上患者连年份也要处理) |
| 4 | 电话号码 | 所有电话号码 |
| 5 | 传真号码 | 所有传真号码 |
| 6 | 电子邮箱 | 所有邮箱地址 |
| 7 | SSN | 社会安全号码 |
| 8 | MRN | 病历号 |
| 9 | 医保计划编号 | 保险受益人编号 |
| 10 | 账号 | 金融账号 |
| 11 | 证书/执照编号 | 专业执照 |
| 12 | 车辆标识 | 车牌、车辆识别码 |
| 13 | 设备标识 | 序列号、UDI |
| 14 | URL | 网址 |
| 15 | IP 地址 | 网络地址 |
| 16 | 生物特征标识 | 指纹、声纹 |
| 17 | 照片 | 正面全脸照片 |
| 18 | 其他任何唯一标识 | 兜底条款,涵盖各类唯一 ID |
各行业特有的敏感实体
在标准的 PII/PHI 之外,每个行业还有各自领域内的敏感数据:
| 行业 | 额外的敏感实体 |
|---|---|
| 医疗 | 诊断编码、与患者绑定的药品名称、治疗日期、医患通信 |
| 法律 | 案件编号、对方当事人姓名、和解金额、受特权保护的通信、封存案件中的法官姓名 |
| 金融 | 账号、路由号、与可识别账户绑定的交易金额、信用分、贷款条款 |
| 政府 | 密级、涉密项目代号、设施代码、人员标识 |
| 建筑 | 投标金额、专有技术规格、分包商报价、场地门禁凭证 |
本地脱敏的几种方法
所有脱敏都必须在本地完成,不得为了实体识别把数据发送到外部 API。以下是四种主要方法及其取舍。
1. 正则表达式匹配
最简单也最可预测的方法。为已知的实体格式定义模式,并替换匹配项。
优点:确定性强、速度快、不依赖模型、可在物理隔离环境中运行,对定义良好的模式漏检率为零。
缺点:只能抓到格式可预测的实体,无法识别姓名、非规范格式的地址或依赖上下文的实体。对短模式误报率高(例如 6 位数字既可能是病历号,也可能是页码)。
最适合:社会安全号码(\d{3}-\d{2}-\d{4})、电话号码、邮箱地址、格式已知的账号、标准格式的日期。
2. 本地 NER 模型
命名实体识别模型在本地运行,用于识别人名、机构名和地名这类实体。spaCy 的 en_core_web_trf、Flair NER 或微调过的 BERT 变体,都可以完全在本地运行。
优点:能识别没有固定格式的实体(姓名、机构)。可针对特定领域的实体做微调。不依赖云端。
缺点:Transformer 模型要达到可用吞吐通常需要 GPU。准确度因领域而异,用新闻语料训练的通用 NER 模型在临床记录上表现会明显下滑。需要下载模型并在本地部署。
最适合:人名、机构名、地名,以及其他缺乏统一格式的实体。
3. 基于本地大模型的识别
在本地跑一个语言模型(如 Llama 3.1 8B、Qwen 2.5 7B),配上 PII 识别的提示词 ,让模型逐段读取文本并标出敏感实体。
优点:能处理依赖上下文的判断(比如「Dr. Smith」是医生姓名,而「Smith & Wesson」是产品名)。改一下提示词就能识别新的实体类型。可以一次处理多种实体类型。
缺点:比正则和 NER 慢。非确定性,不同次运行可能给出不同结果。算力需求可观(8B 以上的模型需要 6 到 16GB 显存)。在物理隔离环境中需要预先载入模型权重。
最适合:复杂或含糊的实体、依赖上下文的识别,以及需要灵活性的跨领域脱敏。
4. 基于字典的匹配
维护一份已知敏感值的清单(医生姓名、机构名称、已批准药品列表),并据此匹配。
优点:对已知实体精确率很高。速度快。完全确定。
缺点:只能抓到字典里有的实体。需要持续维护。无法识别此前未收录的实体。
最适合:已知实体清单(员工姓名、设施代码、客户公司名称),以及作为其他方法的补充。
推荐的多层方案
生产级脱敏没有哪一种方法单独够用。实务上的做法是分层:
- 正则层:抓住所有格式可预测的实体(社会安全号码、电话、邮箱、日期、账号)
- 字典层:抓住客户提供清单中的所有已知实体
- NER 模型层:抓住正则漏掉的人名、机构名和地名
- 验证环节:对统计样本做人工复核,衡量脱敏的完整程度
顺序很重要。先跑正则和字典匹配可以减轻 NER 模型的负担,并提供一个基线,让模型只需做补充。
替换策略
你如何替换识别出的实体,会同时影响合规性和数据可用性。
掩码
把实体替换为通用标记:[NAME]、[SSN]、[DATE]。
优点:简单,保留文本结构,清楚地标出实体被移除的位置。 缺点:破坏了实体类型信息,而这些信息对模型训练可能有用。同类型的多个实体无法区分。
假名化
把实体替换为逼真但虚构的值:「John Smith」换成「Robert Chen」,「555-12-3456」换成「555-98-7654」。
优点:保留语义结构。训练数据保有真实实体的「形状」,有助于提升模型在下游任务上的表现。在 GDPR 之下,假名化数据适用另一套(限制更少的)处理基础。 缺点:需要一张映射表,而这张表本身就是敏感的。存在与真实值撞车的风险。
删除
把实体整个删掉,不留痕迹。
优点:保护力度最强,不留任何残余信息。 缺点:破坏文本结构,句子变成不连贯的片段,作为训练数据质量很差。
各行业的推荐做法
| 行业 | 推荐策略 | 理由 |
|---|---|---|
| 医疗 | 假名化或掩码 | HIPAA 安全港要求移除标识符,而假名化能保留临床语境 |
| 法律 | 掩码 | 受特权保护的内容必须被清楚标示为已脱敏 |
| 金融 | 掩码 | 把账号替换成 [ACCOUNT] 可以保留交易结构 |
| 政府 | 删除或掩码 | 涉密标识不得留下任何残余信息 |
验证脱敏是否彻底
脱敏的可靠程度取决于验证。一条声称移除了 PII、实际却漏掉 3% 姓名的流水线,比完全不脱敏更糟,因为它制造了一种虚假的合规感。
统计抽样
人工复核随机抽取的一批已脱敏记录。行业惯例是抽 5% 到 10%,对来自新数据源的第一批数据应提高抽样比例。
注入已知实体
在脱敏之前注入带有已知 PII 模式的记录,事后核实它们是否全部被抓到。这样能得到一个可量化的检出率。
交叉方法验证
对脱敏后的输出再跑一遍另一种独立的识别方法。如果方法 B 找到了方法 A 漏掉的实体,说明流水线有缺口。
脱敏审计报告
把验证结果写成文档:样本量、检出率、测试过的实体类型、误报率、漏报率。这份报告会成为你交付给客户的成果的一部分。
在实践中做集成脱敏
从零搭一条多层脱敏流水线,包括正则、NER、字典、验证和日志,大约需要 60 到 120 小时的工程投入,另外每接入一个新的客户行业还有持续的维护成本。
Ertas Data Suite 在其 Clean 模块中内置了 PII/PHI 脱敏能力。它完全在本地运行,不依赖云端,支持按行业配置实体类型,并把每一次脱敏事件(实体类型、位置、替换方法、操作者 ID、时间戳)记入统一的审计链路。脱敏日志可以作为合规文档包的一部分导出。
结语
PII/PHI 脱敏是原始客户数据与可用训练数据之间的那道闸门。对多行业服务提供商而言,难点不只是识别实体,更在于同时应对医疗、法律、金融和政府客户各不相同的要求,而且全程在本地完成,并产出能证明脱敏彻底的审计证据。
这一步做错了,下游的一切,标注、模型、部署,都会继承那份合规风险。
Ship AI that runs on your users' devices.
Free plan with 30 credits/mo, no card required. Paid plans from $10/mo USD.