一文读懂OpenAI Privacy Filter:本地部署的开源PII脱敏模型5分钟全解 一文读懂OpenAI Privacy Filter本地部署的开源PII脱敏模型5分钟全解【免费下载链接】privacy-filterOpenAI Privacy Filter项目地址: https://gitcode.com/gh_mirrors/pr/privacy-filterOpenAI Privacy Filter 是一个可本地部署的开源 PII 脱敏模型用于在文本中自动检测并遮盖个人信息姓名、邮箱、电话、地址等 8 类敏感片段。它体积小巧1.5B 总参数 / 50M 激活参数、支持 128K 长上下文且采用 Apache 2.0 协议可自由用于生产环境。本文将带你 5 分钟跑通安装、脱敏、评估与微调全流程。一、它是什么为什么值得关注Privacy Filter 是一个双向 token 分类模型不像大语言模型那样逐字生成文本它一次前向传播就能给整段文本的每个词元打上隐私标签再用受约束的 Viterbi 解码拼出连贯的敏感片段。相比传统的正则匹配或迭代生成式方案它的优势在于⚡快单次前向完成标注吞吐量高适合大规模数据清洗流水线小能在笔记本甚至浏览器中运行CPU/GPU 均可长上下文128,000 token 窗口处理长文档无需分块️可调运行时可配置精确率/召回率的权衡operating points可微调用你自己的标注数据适配特定隐私策略架构上它基于类 gpt-oss 的自回归预训练检查点改造而来将语言模型输出头替换为隐私标签分类头采用 8 层 Transformer、分组查询注意力14 个 Q 头 / 2 个 KV 头和 128 专家的稀疏 MoE 前馈层top-4 路由。核心实现在 opf/_model/model.py解码逻辑在 opf/_core/decoding.py。二、8 类隐私标签模型能识别什么模型输出 8 个隐私片段类别每个类别在 token 级再展开为 BIOES 边界标签B/I/E/S 背景 O共 33 个输出类别标签含义示例account_number账号银行卡号private_address私人地址14 Beautiful Courtprivate_email私人邮箱userexample.comprivate_person人名Aliceprivate_phone私人电话(415) 555-0102private_url私人链接含 token 的 URLprivate_date私人日期1990-01-02secret密钥/凭证sk-test-XYZ987仓库自带的示例数据集 examples/data/sample_eval_five_examples.jsonl 就演示了这些标签的标注格式注意示例数据均为合成数据不涉及真实人员。三、快速安装与一键脱敏5分钟上手1. 安装 Python 包pip install -e .安装后你会得到一个名为opf的命令行工具默认在 GPU 上运行加--device cpu可切换到 CPU。首次运行时模型权重会自动下载到~/.opf/privacy_filter或OPF_CHECKPOINT环境变量指定的目录下载逻辑见 opf/_common/checkpoint_download.py。2. 一句话脱敏opf Alice was born on 1990-01-02.输出会变成类似PRIVATE_PERSON was born on PRIVATE_DATE.的结构化结果。还支持三种实用输入方式opf -f /path/to/file # 整文件脱敏 cat file.txt | grep pattern | opf # 管道处理 opf # 不带参数进入交互模式不加参数直接运行opf会进入交互模式逐条输入文本即可获得 JSON 结构化输出终端支持时会带 ANSI 彩色预览。输出格式详见 OUTPUT_SCHEMAS.md。四、评估模式用标注数据集测模型准不准如果你有带标注的数据集可以一条命令跑评估opf eval examples/data/sample_eval_five_examples.jsonl评估支持两种模式决策思路参考 EVAL_AND_OUTPUT_MODES.md--eval-mode typed标注体系与 OPF 一致时输出分类别精确率/召回率/F1--eval-mode untyped标注体系不同时只比对片段位置是否命中并额外报告ground_truth_label_recall指标计算在 opf/_eval/metrics.py运行器在 opf/_eval/runner.py。五、微调让模型适配你的隐私策略 ⭐这是 Privacy Filter 最有价值的能力——当你公司的什么算敏感与模型默认策略不一致时例如想把某类凭证归为secret而非account_number可以用少量标注数据重新训练。最小微调命令opf train /path/to/train.jsonl --output-dir /path/to/output训练数据格式与 eval 相同text字段 label/spans标注。--output-dir会写出config.json、model.safetensors、finetune_summary.json和USAGE.txt完整流程见 FINETUNING.md。两个开箱即用的微调 Demo仓库提供了可复现的演示脚本非常适合新手理解微调前后对比Demo 脚本演示场景examples/scripts/finetuning/finetune_secret_demo.sh把基线识别为ACCOUNT_NUMBER的字符串重训为secret类别examples/scripts/finetuning/finetune_custom_label_demo.sh自定义标签空间只识别新类别custom_secret自定义标签空间通过--label-space-json指定示例见 examples/data/finetuning_custom_label_demo/label_space.json。微调运行器源码在 opf/_train/runner.py。六、项目结构速览路径作用opf/main.pyCLI 统一入口redact / eval / trainopf/_api.pyPython API 接口opf/_core/运行时加载、span 转换、解码逻辑opf/_eval/数据集加载与评估opf/_train/本地微调opf/_model/Transformer 实现与权重加载examples/data/示例评估数据与微调 demo 数据集依赖极少torch、numpy、safetensors、tiktoken、huggingface_hub 等Python ≥ 3.10见 pyproject.toml。七、注意事项别过度依赖 ️官方明确提醒见 README.md 的 Bias, Risks, and Limitations 章节Privacy Filter 是数据最小化辅助工具不是匿名化或合规保证应作为隐私设计中多层防线的一环标签策略是静态的变更策略需重新微调无法运行时动态配置在非英文文本、罕见姓名、跨域凭证等场景下可能漏检或误遮盖医疗、法律、金融等高敏场景务必保留人工审核通道结语OpenAI Privacy Filter 把高吞吐 可本地化 可微调三件事做到了一个 1.5B 的小模型里对需要在自有环境中做 PII 脱敏的团队来说是一个难得的 Apache 2.0 开源选择。从pip install -e .到opf一句话脱敏5 分钟内即可验证效果再用自带的微调 Demo 逐步把隐私策略调成你自己的样子就是完整的落地路径。【免费下载链接】privacy-filterOpenAI Privacy Filter项目地址: https://gitcode.com/gh_mirrors/pr/privacy-filter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考