OpenAI隐私过滤器
一个在Apache 2.0下发布、可在浏览器中运行的PII模型。让我们来谈谈它实际解决了什么问题。
微信 ezpoda免费咨询:AI编程 | AI模型微调| AI私有化部署
AI模型价格对比 | AI工具导航 | ONNX模型库 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
多年来,这个笑话一直在自我书写。OpenAI。
这家公司的名字里包含"Open",就像"超大虾"里包含"超大"一样。好吧,看来压力足够让OpenAI开始认真出货了。
2026年4月22日,OpenAI在Apache 2.0下发布了一个15亿参数的双向token分类器,权重在Hugging Face上,代码在GitHub上,包含CLI工具,完整的模型卡中诚实地印有失败模式。隐私过滤器。一个可以在你的笔记本电脑或浏览器标签页中运行的PII检测器。无需API调用。无需订阅。没有"仅限研究使用"的星号。Apache 2.0意味着你可以明天就在你的企业产品中使用它并出售,而无需告知OpenAI。
功劳归于应得之人。这就是"开放"应该有的样子。
但等等。有趣的问题不是OpenAI是否做了一件好事。它确实做了。有趣的问题是,这个模型是否真正解决了它声称要解决的问题。解决什么问题。为谁解决。在什么条件下。以及它在哪些地方会失效。
这就是本文要讨论的。让我们开始吧。
声明:我自己测试它的时间不超过15分钟
1、隐私过滤器究竟是什么
去除营销术语后:
它是一个基于BIOES标记方案的八类隐私类别token分类器,构建在gpt-oss风格的自回归检查点之上,OpenAI随后将其改造,转换为双向带状注意力(带大小128,有效窗口257个token),并使用监督分类损失在合成和精选数据上进行后训练。
1.1 BIOES token分类器
BOES token分类器是一种专门的自然语言处理(NLP)模型,用于序列标注任务,如命名实体识别(NER),它为句子中的每个token打标签以识别特定实体的边界。与标准的BIO(开始、内部、外部)格式不同,BIOES添加了额外的标签来明确定义实体的结束和单token性质,提高了精度。
它不是LLM
它不会生成文本。它读取一系列token并为每个token输出一个33类标签:背景O,加上8个跨度类别各自的B-/I-/E-/S-标签。然后一个带约束的Viterbi解码器配合线性链转移评分将这些标签序列转换为连贯的跨度。一次前向传播完成。
这就是整个架构故事。8个transformer块。分组查询注意力,14个查询头,2个KV头,组大小7。带有128个专家的稀疏MoE,每个token进行top-4路由。d_model = 640。F32和BF16张量。
1.2 运行时声明
128,000 token的上下文窗口。带状注意力使计算成本保持相对平坦。量化的WebGPU构建版本(通过Transformers.js进行q4量化)可以在浏览器标签页中运行。在设备上运行。无需云端往返。
但关键在于:所有这些都只是容易的部分。困难的部分在于模型能识别什么和不能识别什么。这才是讨论其实用性的地方。
2、八个类别就是整个故事
隐私过滤器检测八种内容。把它们记下来,因为你的合规团队会问:
private_person:姓名、用户名、昵称private_email:个人电子邮件地址private_phone:与个人关联的电话号码private_address:与个人关联的物理地址private_url:面向私人受众的URL或IPprivate_date:出生日期或可识别身份的日期时间account_number:信用卡、银行账户、其他账户IDsecret:API密钥、密码、凭据
就这些。这就是整个分类体系。这意味着它不能用于医疗等领域的任何严肃工作。这只是一个非常表层的标注任务。但如果它有效,那么可以扩展到其他类别。
现在看看缺少了什么。社会安全号码。医疗记录号码。健康保险索赔号码。护照号码根据数据集映射在account_number下获得部分覆盖,但没有专门的passport类别。税务ID、EIN、驾照号码、生物识别标识符、作为PII的IP地址(与private_url不同)、车辆标识符、设备标识符、MAC地址、IMEI。这些都没有自己的类别。你只能希望它们落在最近的桶里或者被遗漏。
HIPAA的18个标识符?这个模型可能覆盖了一半,而且覆盖的那些是通用的,不是医疗上下文的。ICD-10代码、DEA号码、NPI号码、CPT代码,这些对模型来说都是不可见的。
GDPR对"个人数据"的定义是"与已识别或可识别的自然人相关的任何信息"。隐私过滤器捕获了表层标识符。它没有捕获准标识符。年龄 + 邮政编码 + 诊断在GDPR下仍然是PII。
隐私过滤器不知道这一点。
让我们现实一点。这是一个不错的通用PII编辑器。它不是HIPAA编辑器。它不是GDPR编辑器。它不是PCI-DSS编辑器。它是一个起点。
3、数字,以及它们在实际情况中的含义
以下是模型卡表1中的主要基准数字。
3.1 PII-Masking-300k(通用多语言合成PII)

Token级别F1为0.960意味着:对于数据集说应该编辑的每100个PII token,模型正确标记了其中的96个,而对于模型标记的每100个token,有94个确实是PII。Span级别F1为0.926更严格。它要求模型准确获得PII跨度的确切起始和结束位置。这更难。
对人类的翻译:在一份包含50个PII token的1,000词文档中,模型会遗漏大约1个token,并可能标记3个实际上不是PII的token。对于一般文档,这是可靠的。对于信用卡数据,其中"遗漏一个数字仍然是泄露",这是不可接受的。你的阈值完全取决于泄露的token意味着什么。
3.2 CredData(源代码中的凭据)

再读一遍这个数字。在代码库中的凭据检测上,Span级别F1为0.617。这很糟糕。不是灾难性的,但很糟糕。这意味着当模型试图识别代码文件中API密钥或密码的确切边界时,它在约62%的情况下能正确获得边界。如果你在扫描代码仓库中提交的秘密,你会遗漏三分之一的泄露凭据或错误对齐它们的边界。
作为参考,GitHub自己的秘密扫描运行在已知的提供商特定正则表达式模式(AWS、Stripe、GCP等)上,当格式匹配时以接近100%的精确度捕获这些内容。隐私过滤器试图泛化。泛化比格式匹配更难。
有一个不那么明显的事实:如果你想在代码仓库中找到泄露的AWS密钥,使用GitHub的扫描器或TruffleHog,而不是隐私过滤器。如果你想在任意文本中找到通用的"看起来像密码"的字符串,隐私过滤器是我见过的最好的开源权重选项。
3.3 多语言(PII-Masking-300k原生)

六种欧洲语言。全部在0.91 F1以上。令人尊敬。尽管这些语言并非都源于拉丁语系。
3.4 多语言合成(分布外)

如果你是一位在豪萨语客户记录上运营的尼日利亚王子,隐私过滤器开箱即用将遗漏大约四分之一的PII token。
微调,或准备面对泄露。
这不是模型的缺陷。这是从以拉丁文字欧洲数据为主的训练分布中所能学到的特性的结果。这是事实。据此规划。
4、它在哪些地方真正有效
让我给你一个隐私过滤器发挥作用的具体场景。
想象你运营一个中等规模的SaaS。大约20万用户,主要是英语使用者,主要是北美和西欧。你的支持团队收到包含姓名、电子邮件地址、电话号码,以及偶尔的信用卡信息的客户工单(没有人应该在工单中粘贴信用卡,但他们还是这样做了)。你想记录这些工单用于分析,将它们输入LLM进行自动分流,并保留它们以备留存。你不想将原始PII发送给第三方LLM API。
这就是隐私过滤器的典型部署场景。
你在摄入管道中运行opf CLI。每张工单在进入分析数据仓库和LLM之前都会被扫描。96%的PII token被替换为<PRIVATE_EMAIL>或<PRIVATE_PHONE>占位符。漏网的4%?你有一个第二层,可能是基于正则表达式的,捕获隐私过滤器可能遗漏的定义明确的格式。你还有一个低置信度标记的人工审查队列。
4.1 成本:零推理费用
一切都在你现有的CPU服务器上运行,或在你的浏览器中进行客户端掩码处理,文本永远不会离开用户的机器。延迟:在笔记本电脑硬件上,每个典型工单长度不到100毫秒。
在这种情况下,隐私过滤器是一个完胜。它替代了AWS Comprehend PII(按千字符收费并将数据发送到AWS),或Microsoft Presidio(基于规则,会遗漏依赖上下文的PII),或自定义微调的BERT模型(你现在不需要训练了)。
4.2 现在翻转场景,看它无用的地方
你运营一家医院的临床文档系统。医生口述包含患者姓名、MRN、诊断、药物剂量、保险ID、就诊日期、提供者姓名、NPI号码的记录。你想在将记录发送给计费供应商之前编辑18个HIPAA标识符。
不要将隐私过滤器原样用于此目的。微调它。或者不要上线。
5、压力测试最重要
模型卡中最诚实的部分是第7.5节。OpenAI使用对抗性格式对模型进行了压力测试,并在结果不好时也发布了数字。对此表示尊重。让我们看看他们发现了什么。
5.1 线索位置非常重要
模型严重依赖上下文线索。如果你说"我的电话号码是442 222 47571",隐私过滤器看到"电话号码"并自信地标记这些数字。如果你只粘贴"442 222 47571"而没有上下文,隐私过滤器对account_number的召回率从0.797降到0.214,对private_phone从0.919降到0.318。
当你移除上下文线索时,召回率下降了一半以上。
用人的话说:隐私过滤器并不是真正的"电话号码检测器"。它是一个"上下文暗示的可能PII检测器"。如果你的数据是原始数字字符串或没有周围自然语言的剥离数据库转储,你不会得到基准测试所承诺的结果。
5.2 换行是一场灾难
第7.5.4节显示了当URL跨行分割时会发生什么:
https://
www.linkedin.com/
in/
marissa.
carter-1987
模型将"marissa"分类为private_person,将"carter-1987"分类为private_person。实际答案是private_url。在line_breaks对抗性测试上的精确度:0.453。一半的预测是错误的。
为什么这很重要?因为真实世界的文本有换行。PDF有换行。电子邮件头有换行。日志文件有换行。如果你的摄入管道没有预处理并重新组装这些内容,你在真实数据上的召回率和精确度将比基准数字低20个百分点。
5.3 语音拼写字母可以轻松击败它
语音拼写的精确度:0.273。召回率0.694。当有人将电话号码或电子邮件拼写为"charlie oscar mike"时,模型看到"charlie"和"oscar"并自信地将它们标记为private_person。误报激增。有用的背景:社会工程攻击有时使用语音拼写来绕过检测,而隐私过滤器在这里很容易被欺骗。
5.4 其他对抗性维度

好消息:emoji替换和最小姓名片段的效果出奇地好。
坏消息:标准的混淆技巧如name [at] domain [dot] com将精确度降到0.56。任何有意规避这个模型的人都可以轻而易举地做到。
这不是一个对抗性鲁棒工具。它是用于非试图逃避的用户格式良好的文本的编辑工具。
6、单跳推理墙
图2是那个悄无声息地具有毁灭性的图。模型在"单跳推理"上的召回率(PII类型由上下文中较早的别名定义,比如"当我说'marigold'时我指的是我的公用事业账户号码")从零上下文距离的0.802召回率下降到128k token上下文长度的0.585。
128k上下文窗口是一个规格表数字。对于关于什么是PII什么不是的实际跨文档推理,有效上下文要短得多。如果你的文档是一个聊天记录,其中说话者说"我的密码代号是'blue',我稍后给你",模型不会在30k个token之后可靠地将"blue"连接回一个秘密值。
这是一个真正的限制。伪别名敏感数据在大规模上会泄露。模型无法在长文档中追踪它们。
7、微调的故事才是真正的故事
这个模型的救星在于:模型卡第7.4.2节展示了在SPY数据集(医疗咨询和法律问题)上的微调效率,这故意超出了基础模型的训练分布。

我还将类别线索敏感度数字拉到了配套文件中,因为线索位置的故事是这个模型最重要的运营事实,它值得拥有自己的表格。

用1%的训练数据从0.545提升到0.879。13个epoch。在笔记本电脑上完成。
这才是关键部分。基础模型是一个通用的英语为主的PII检测器。可微调的检查点加上opf train CLI就是一个领域适配器工厂。每个需要自定义标签分类体系或特定策略编辑的行业都可以在几千个领域内示例上微调这个模型,并获得接近饱和的性能。
医疗系统:在使用自定义标签集(涵盖MRN、NPI、DEA、ICD和提供者姓名)的去标识化临床语料库上微调。法律事务所:在案例文档上微调以捕获律师执业号码、案件ID和律师-客户特权标记。银行:在客户通信上微调以捕获路由号码、支票号码、贷款ID。
CLI只需三个命令。
opf "Alice was born on 1990-01-02."
opf train /path/to/train.jsonl --output-dir /path/to/checkpoint
opf eval /path/to/eval.jsonl
就这样。一次pip install即可投入生产。不需要MLOps基础设施,不需要GPU集群(虽然有帮助),没有API成本。
8、这有多大可能解决"隐私问题"?
完全取决于你所说的"隐私问题"是什么意思。
如果你的意思是"我想在记录支持工单之前去除姓名和电子邮件地址":这完全解决了。9/10。
如果你的意思是"我想要符合HIPAA的去标识化":这不能解决。你需要安全港的18标识符列表具有高召回率,你需要专家判定,你需要可审计性。隐私过滤器开箱即用不提供任何这些。通过积极的微调和包装策略层:也许6/10。不要单独依赖它。作为独立合规工具3/10。
如果你的意思是"我想防止代码提交中的凭据泄露":使用专门构建的秘密扫描器。隐私过滤器在CredData上的0.617 span F1离你需要的差得远。4/10。
如果你的意思是"我想在将用户查询发送给第三方LLM之前进行编辑":这是最佳场景。8/10。特别是当你结合正则表达式回退和人工审查队列时。
如果你的意思是"我想要符合GDPR的匿名化":没有模型能做到这一点。GDPR匿名化要求证明即使有辅助数据,数据也无法被重新识别,这对于大多数真实数据集在数学上是不可能的。隐私过滤器是一个编辑工具,不是匿名化工具,OpenAI在模型卡第4.1节中明确表示了这一点。在你的法律团队之前阅读该节。
如果你的意思是"我想要面向全球客户群的多语言PII检测":主要语言7/10,代表性不足的语言5/10,重要的提醒是微调可以快速缩小差距。

9、领域依赖仍然是主导因素
让我直白地陈述这条经验法则:
隐私过滤器的开箱即用有用性与你的领域专业化程度成反比。
- 通用英语支持电子邮件?准备好了。
- 西班牙语零售聊天?准备好了。
- 有HIPAA要求的临床记录?积极微调或者不要上线。
- 带有律师-客户特权标记的法律诉状?微调。
- 带有ACH路由号码、SWIFT代码和IBAN变体的金融交易日志?针对特定格式微调。
- 低资源语言客户服务?微调。并接受性能下降。
- 带有大量标点符号、换行符和混合格式的日志?在输入模型之前预处理,然后还是需要微调。
- 带有秘密的源代码?将TruffleHog或GitHub秘密扫描与此一起使用,而不是替代它们。
模型卡作者在第4.5节中写了这句话,埋在限制之下:"我们建议将隐私过滤器作为整体隐私设计方法的一部分,而不是作为 blanket 匿名化声明的基础。"这句话就是整个故事。这是一层。不是唯一的一层。
10、OpenAI做对了什么,功劳归于应得之人
让我停止模棱两可,说他们做得好的地方。
他们发布了完整的架构。他们发布了失败模式。他们发布了逐语言的细分,包括表现差的语言。他们发布了对抗性评估数字,包括语音拼写字母灾难。他们发布了一跳推理的悬崖。他们在Apache 2.0下开源了权重,而不是某种自定义的"可接受使用"许可。他们发布了CLI。他们发布了微调工具。他们使其可以通过WebGPU在浏览器中以q4量化运行。
这就是"开放模型发布"应该有的样子。与典型的企业模型发布相比:模糊的基准测试、没有失败模式、"仅限研究使用"许可、API门控的权重。OpenAI在这里没有做任何这些。
当然,生活不公平,但这不意味着我们需要接受公司通常发布的模糊框架。这一次是具体而诚实的。记在心里。
11、这是公司名称的救赎之路吗?
不是。这是一个模型。一次宽松的发布。基础模型部门仍然发布封闭的前沿模型。API仍然是业务。但这次发布,具体来说,值得称赞。
窄范围部署。始终微调。
11.1 不要盲目信任它
隐私过滤器是一个真正有用的、真正开放的、真正小巧的PII检测器,解决了一类狭窄但常见的问题:在格式良好的英语(和主要欧洲语言)文本从通用领域进入日志系统或第三方LLM之前进行编辑。在这个范围内,它可能是目前可用的最好的开源权重选项,而且是免费的。
11.2 在这个范围之外,它是一个起点
不是合规工具。不是匿名化工具。不是凭据扫描器。不是对抗性鲁棒的编辑器。不是合规判定系统。OpenAI在模型卡中也这样说了。读一读。
如果你正在构建一个需要PII编辑的产品,而且你不在受监管的行业:明天就部署它。如果你在医疗、金融、法律、人力资源、教育或政府领域:在领域内数据上微调它,用策略层包装它,并让人类参与循环。如果你在使用非拉丁文字语言或对抗性用户做一些不寻常的事情:你还有更多工作要做。
这是我的观点。你应该做你觉得合适的事。
另外,为此赞扬OpenAI。狭义地赞扬。
针对这次具体的发布。使用宽松许可、诚实的模型卡和真正的工具。这就是我想要更多看到的。更多狭义的、专注的、有用的、开放模型,带有诚实的失败模式文档。更少的表演性开放,更少的"开放权重但附带条件",更少的封闭权重概念产品配上关于民主化的营销文案。
又一个模型发布了。它们中的大多数不值得多看一眼。这一个值得。
原文链接: OpenAI Privacy Filter Model: 1.5B OpenSource model
汇智网翻译整理,转载请标明出处