OpenAI Privacy Filter:把 PII 偵測做成本地隱私預處理層,在資料進 LLM 前先脫敏
OpenAI Privacy Filter 是 Apache 2.0 的 PII token-classification 模型,可在本地或瀏覽器執行,偵測姓名、地址、email、電話、日期、URL、帳號與 secret 等 8 類隱私 span,適合作為醫療、法律、客服、金融等 LLM workflow 的前置脫敏層。
這篇 Threads 提到 OpenAI 開源的 Privacy Filter,方向很值得收進知識庫:在資料送進大模型之前,先用一個專門模型把個人隱私資訊(PII)偵測與脫敏,讓 LLM workflow 多一層本地隱私預處理。
原文提到它像是一個「隱私預處理層」:醫療、法律、客服、金融等場景,在把文本交給大模型前,先把姓名、電話、email、地址等敏感資訊替換成 placeholder,降低資料外洩風險。
不過我補查 OpenAI GitHub / Hugging Face README 後,有幾個細節要校正:
- 官方 README 寫的是 Apache 2.0 license,不是 MIT。
- 模型是 1.5B total parameters、50M active parameters,不是單純 0.6B。
- 它偵測 8 類 privacy span,不是只有 4 類。
- 模型定位是 bidirectional token-classification model with span decoding,不是一般生成式小模型。
Privacy Filter 做什麼
OpenAI Privacy Filter 是用來偵測與遮罩 personally identifiable information 的模型。它不是逐 token 生成文字,而是在一次 forward pass 中對輸入序列做 token classification,然後用 constrained Viterbi procedure 解碼成 coherent spans。
官方列出的 8 類 privacy span 包括:
- account_number
- private_address
- private_email
- private_person
- private_phone
- private_url
- private_date
- secret
每一類會被展開成 BIOES boundary labels,所以 token-level output classes 共 33 類。
為什麼這比規則引擎有價值
傳統 PII 偵測常靠 regex 或規則引擎,例如 email、電話、身分證格式。但真實資料常會有:
- 中英文混雜
- 空白、符號、全半形干擾
- 姓名與地址沒有固定格式
- 同一欄位有上下文才知道是不是 PII
- 使用者故意打散敏感資訊
專門訓練的 token-classification model 比純規則更能看上下文,也更適合處理非標準格式。這也是 Threads 原文強調 robustness 的原因。
使用方式
官方 repo 提供 CLI:
pip install -e .
opf "Alice was born on 1990-01-02."
opf --device cpu "Alice was born on 1990-01-02."
opf -f /path/to/file
cat /path/to/file | grep -e 'some_pattern' | opf
Hugging Face 也支援 Transformers pipeline:
from transformers import pipeline
classifier = pipeline(
task="token-classification",
model="openai/privacy-filter",
)
classifier("My name is Alice Smith")