
Обратная версия фильтра конфиденциальности OpenAI: та же модель на 1.5B, возвращает PII в виде структурированных отрезков вместо маскирования.
OpenAI выпустила Privacy Filter — модель, которая скрывает PII в тексте. Защитники используют её, чтобы данные не утекали.
Но у каждой защиты есть и обратная сторона. Атакующим тоже нужны PII. Из логов, дампов, заброшенных S3-корзин, украденных почтовых ящиков. Та же задача: найти всё личное в куче текста.
Privacy Filter маскирует. Privacy Parser извлекает.
Та же модель, та же таксономия меток, те же веса. Вместо <REDACTED> вы получаете структурированные отрезки — что, где, какого типа.
Защита: проверяйте свои данные до утечки. Атака: разбирайте чужие после.
Инструмент не знает, на чьей он стороне. Он просто хороший парсер.
uv venv
uv pip install -e ./privacy-filter
uv pip install -e ./pii_parser
При первом запуске загружается контрольная точка opf 1.5B (~3 ГБ) в ~/.opf/privacy_filter/.
from pii_parser.hybrid import HybridPIIParser
parser = HybridPIIParser(device="cpu")
result = parser.parse(
"Hi Quindle Testwick ([email protected] / +1-415-555-0102), "
"account 40702810500001234567, 14 Beautiful Ct, Anytown USA, "
"password Priv4cy-Filt3r-2026."
)
for s in result.spans:
print(f"{s.label:18} {s.text}")
private_person Quindle Testwick
private_email [email protected]
private_phone +1-415-555-0102
account_number 40702810500001234567
private_address 14 Beautiful Ct, Anytown USA
secret Priv4cy-Filt3r-2026
python -m pii_parser.cli_model "Alice paid 40702810500001234567 on 2026-05-17."
Гибрид = модель + слияние отрезков + regex-подстраховка. Используйте этот.
Таксономия opf v2 — 8 категорий:
private_person · private_email · private_phone · private_address ·
private_url · private_date · account_number · secret
text
↓
opf 1.5B → BIOES logits → Viterbi (tuned) → char spans
↓
span-merge (склеивает Quindle + Testwick)
↓
regex backstop (URL, secret, account — где модель ошибается)
↓
spans[]
python pii_parser/tests/test_hybrid.py
Фикстура F1: 0.929
Сценарии: 8/8 пройдено
Задержка: ~600 ms CPU
Apache-2.0.
| Бэкенд | Веса | Скорость | F1 |
|---|
PIIParser | none | µs | 1.000 |
ModelPIIParser | 1.5B | 500 ms CPU | 0.733 |
HybridPIIParser | 1.5B | 600 ms CPU | 0.929 |