Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/openai/privacy-filter
Оборонительные ИнструментыЭксфильтрация данныхСбор информацииКонфиденциальностьОбнаружение СекретовМашинное ОбучениеБезопасность ИИ
GitHubopenai/privacy-filter

privacy-filter

Двунаправленная модель классификации токенов для обнаружения и маскирования PII в тексте, с CLI для редактирования, оценки и дообучения на локальных серверах.

Репозиторий
2.7k2424 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

OpenAI Privacy Filter

OpenAI Privacy Filter — это двунаправленная модель классификации токенов для обнаружения и маскирования персональных данных (PII) в тексте. Она предназначена для высокопроизводительных рабочих процессов очистки данных, где командам нужна модель, которую можно запускать локально, и которая является быстрой, контекстно-зависимой и настраиваемой.

OpenAI Privacy Filter предварительно обучен авторегрессивно, чтобы получить контрольную точку с архитектурой, аналогичной gpt-oss, albeit меньшего размера. Затем мы преобразовали эту контрольную точку в двунаправленный классификатор токенов по таксономии меток приватности и дообучили с использованием контролируемой функции потерь классификации. (Подробности архитектуры gpt-oss см. в карточке модели gpt-oss.) Вместо генерации текста токен за токеном эта модель размечает входную последовательность за один прямой проход, а затем декодирует связные спаны с помощью ограниченной процедуры Витерби. Для каждого входного токена модель предсказывает распределение вероятностей по таксономии меток, которая состоит из 8 выходных категорий, описанных ниже.

Ключевые особенности:

  • Разрешительная лицензия Apache 2.0: идеально подходит для экспериментов, кастомизации и коммерческого развёртывания.
  • Малый размер: работает в веб-браузере или на ноутбуке — всего 1,5 млрд параметров и 50 млн активных параметров.
  • Возможность дообучения: адаптируйте модель к конкретным распределениям данных с помощью простого и экономичного по данным дообучения.
  • Длинный контекст: окно контекста в 128 000 токенов позволяет обрабатывать длинные тексты с высокой пропускной способностью и без разбиения на фрагменты.
  • Управление во время выполнения: настраивайте компромиссы между точностью и полнотой, а также длины обнаруживаемых спанов с помощью предустановленных рабочих точек.

Этот репозиторий

Этот репозиторий содержит локальный код, CLI и примеры ресурсов, используемых для запуска, оценки и дообучения контрольных точек Privacy Filter. Он предназначен для команд, которые хотят напрямую изучить реализацию и эксплуатировать модель в своей собственной среде.

Ресурсы репозитория: Лицензия и Политика безопасности.

Как использовать

  1. Установите пакет локально:
root@kitploit:~
pip install -e .

После этого у вас появится python-скрипт opf, который можно запускать напрямую или через python -m opf. Скрипт можно использовать 3 отдельными способами, как описано ниже.

  1. Запустите одноразовое редактирование:

По умолчанию opf ищет модель в каталоге, указанном переменной OPF_CHECKPOINT, или в ~/.opf/privacy_filter. Если модель не найдена в расположении ~/.opf/privacy_filter, она будет загружена.

root@kitploit:~
opf "Alice was born on 1990-01-02."

Код поддерживает работу как на GPU (по умолчанию), так и на CPU. Для запуска на CPU используйте флаг --device cpu:

root@kitploit:~
opf --device cpu "Alice was born on 1990-01-02."

Чтобы переопределить контрольную точку по умолчанию, передайте --checkpoint:

root@kitploit:~
opf --checkpoint /path/to/checkpoint_dir "Alice was born on 1990-01-02."

Режим редактирования поддерживает редактирование целого файла сразу

root@kitploit:~
opf -f /path/to/file

Редактирование также можно выполнять через каналы, что поддерживает сложные однострочники:

root@kitploit:~
cat /path/to/file | grep -e 'some_pattern' | opf

Если входные данные не предоставлены, opf запустится в интерактивном режиме. В этом режиме для каждого входного примера CLI выводит структурированный JSON, используя предварительный просмотр с ANSI-цветовой кодировкой, если терминал это поддерживает. Эти параметры можно контролировать с помощью флагов.

Обратитесь к opf redact --help для получения дополнительных флагов и информации о режиме редактирования.

  1. Запустите оценку на размеченном наборе данных:
root@kitploit:~
opf eval examples/data/sample_eval_five_examples.jsonl

Примеры оценочных фикстур в examples/data/sample_eval_five_examples*.jsonl являются только синтетическими примерами данных и не описывают реальных людей или реальные конфиденциальные записи. См. examples/data/README.md.

Обратитесь к opf eval --help для получения дополнительных флагов и информации о режиме оценки.

  1. Дообучите на своём собственном размеченном наборе данных:
root@kitploit:~
opf train /path/to/train.jsonl --output-dir /path/to/finetuned_checkpoint

Обратитесь к opf train --help для получения дополнительных флагов и информации о режиме дообучения.

Структура

  • opf/__main__.py: единая точка входа CLI для режимов redact, eval и train.
  • opf/_api.py: API для Python поверх стека выполнения и декодирования.
  • opf/_cli/: разбор аргументов командной строки и вспомогательные средства отрисовки в терминале.
  • opf/_core/: загрузка среды выполнения, преобразование спанов и общая логика декодирования.
  • opf/_eval/: загрузка наборов данных, предобработка, метрики и средства запуска оценки.
  • opf/_train/: разбор аргументов локального дообучения и средства запуска обучения.
  • opf/_model/: реализация трансформера, конфигурация контрольной точки и загрузка весов.
  • examples/data/: примеры оценочных файлов, а также воспроизводимые демонстрационные наборы данных для дообучения.
  • examples/scripts/finetuning/: запускаемые демонстрационные обвязки для дообучения.
  • FINETUNING.md: сфокусированное руководство по рабочему процессу дообучения и демонстрационным скриптам.
  • OUTPUT_SCHEMAS.md: форматы JSON-ответов и экспортируемых полезных нагрузок.
  • EVAL_AND_OUTPUT_MODES.md: описание режимов вывода для редактирования и оценки.

Детали модели

Описание модели

Privacy Filter — это модель двунаправленной классификации токенов с декодированием спанов. Она обучается поэтапно, начиная с авторегрессивного предварительного обучения. Затем предварительно обученная языковая модель модифицируется и дообучается как двунаправленный классификатор токенов с полосным вниманием (banded attention) с размером полосы 128 (эффективное окно внимания: 257 токенов, включая сам токен). Это означает:

  • Базовая модель — это авторегрессивно предварительно обученная контрольная точка.
  • Выходная голова языковой модели заменяется на голову классификации токенов по меткам приватности.
  • Дообучение — это контролируемая классификация на уровне токенов, а не предсказание следующего токена.
  • При выводе применяется ограниченное последовательное декодирование для получения связных меток спанов BIOES (Begin, Inside, Outside, End, Single).

С архитектурной точки зрения реализация в этом репозитории представляет собой стек в стиле pre-norm трансформерного энкодера с:

  • эмбеддингами токенов
  • 8 повторяющимися блоками трансформера
  • групповым вниманием к запросам (grouped-query attention) с ротационными позиционными эмбеддингами, с 14 головами запросов и 2 головами KV (размер группы = 7 запросов на голову KV)
  • разреженными блоками прямой связи со смесью экспертов (mixture-of-experts) с 128 экспертами всего (маршрутизация top-4 на токен)
  • финальной головой классификации токенов по меткам приватности (а не по токенам естественно-языкового словаря), с шириной остаточного потока d_model = 640.

По сравнению с итеративными авторегрессивными подходами, эта конструкция позволяет размечать все токены за один проход, что повышает пропускную способность. По сравнению с классическими подходами предварительного обучения на основе маскированных языковых моделей, это пост-обучающее преобразование авторегрессивной модели, а не нативная настройка masked-LM.

Форма вывода

Privacy Filter может обнаруживать 8 категорий спанов приватности:

  1. account_number
  2. private_address
  3. private_email
  4. private_person
  5. private_phone
  6. private_url
  7. private_date
  8. secret

Для выполнения классификации токенов каждая нефоновая категория спанов расширяется в классы токенов с граничными тегами: B-<label>, I-<label>, E-<label>, S-<label>, плюс фоновый класс O. Таким образом, общее число классов вывода на уровне токенов равно 33: 1 фоновый класс + 8 меток спанов * 4 граничных тега = 33 класса. Это означает, что выходная голова выдаёт 33 логита для каждого токена. Для последовательности длины T выход имеет форму [T, 33]; для батча размера B он имеет форму [B, T, 33].

Словарь меток токенов состоит из фоновой метки O плюс вариантов каждой категории приватности с тегами BIOES: account_number, private_address, private_email, private_person, private_phone, private_url, private_date и secret. Иными словами, для каждой категории модель предсказывает формы B-, I-, E- и S-, соответствующие началу, внутренней части, концу и однотокенному спану. Во время вывода эти логиты на уровне токенов декодируются в связные метки спанов BIOES с помощью ограниченного последовательного декодирования.

Обоснование последовательного декодирования и калибровка

Обоснование

После того как классификатор токенов выдаёт логиты на уровне токенов, мы декодируем метки с помощью ограниченного декодера Витерби, используя линейно-цепочечное переходное оценивание, вместо взятия независимого argmax для каждого токена. Декодер обеспечивает соблюдение допустимых граничных переходов BIOES и оценивает полные пути меток с начальными, переходными и конечными членами, а также шестью параметрами смещения переходов, которые управляют сохранением фона, входом в спан, продолжением спана, закрытием спана и передачей от границы к границе. Эта глобальная оптимизация пути предназначена для улучшения связности спанов и стабильности границ за счёт того, что каждое решение по токену зависит от структуры на уровне последовательности, а не только от локальных логитов, особенно в зашумлённом тексте или тексте со смешанным форматом, где одни только локальные решения по токенам могут давать фрагментированные или несогласованные границы.

Калибровка рабочей точки

Параметры последовательного декодирования могут препятствовать пребыванию в фоне, одновременно поощряя вход в спан и его продолжение, что даёт более широкое и более непрерывное маскирование для улучшения полноты, или наоборот для улучшения точности. Во время выполнения пользователи могут настраивать параметры, управляющие этим компромиссом.

Метаданные модели

  • Разработано: OpenAI

  • Финансируется: OpenAI

  • Предоставлено: OpenAI

  • Тип модели: модель двунаправленной классификации токенов для обнаружения спанов приватности

  • Язык(и): преимущественно английский; сообщается о выборочной оценке многоязычной устойчивости

  • Лицензия: Apache 2.0

  • Веса модели: https://huggingface.co/openai/privacy-filter

  • Демо: https://huggingface.co/spaces/openai/privacy-filter

  • Карточка модели: OpenAI Privacy Filter Model Card

Предвзятость, риски и ограничения

Риск: чрезмерная зависимость

Privacy Filter — это вспомогательное средство для редактирования и минимизации данных, а не гарантия анонимизации, соответствия требованиям или безопасности. Чрезмерная зависимость от инструмента как от универсального заявления об анонимизации создаёт риск недостижения желаемых целей приватности. Privacy Filter лучше всего использовать как один из нескольких слоёв в целостном подходе к приватности на этапе проектирования.

Ограничение: статическая политика меток

Модель будет идентифицировать только те спаны персональных данных, которые соответствуют обученной таксономии и определениям меток. Реальные сценарии использования приватности разнообразны и сложны, и определения подходящих политик меток и границ решений могут различаться. Таким образом, настройки модели по умолчанию могут не удовлетворять специфическим для организации требованиям управления без калибровки/дообучения.

Privacy Filter не поддерживает динамическую настройку политик меток во время выполнения; вместо этого изменение политик требует дальнейшего дообучения модели. Нативный набор меток и связанные с ним границы решений могут подходить не для каждого сценария использования. Например, политика обучения модели направлена на приоритизацию персональных идентификаторов, часто по замыслу сохраняя контекст, который не сильно связан с личностью; некоторые пользователи могут захотеть изменить этот выбор.

Производительность может снижаться на неанглийском тексте, нелатинских письменностях, шаблонах именования защищённых групп или доменах, которые выходят за пределы распределения по сравнению с обучением модели.

Режимы отказа

Как и все модели, Privacy Filter может ошибаться, например: недосмотр редких личных имён, региональных соглашений об именовании, инициалов, обращений с обилием титулов или специфичных для домена идентификаторов; избыточное редактирование публичных сущностей, организаций, местоположений или нарицательных существительных, когда локальный контекст неоднозначен; фрагментированные или смещённые границы спанов в тексте со смешанным форматом, длинных документах или тексте с обилием пунктуации и артефактов вёрстки; пропущенные секреты для новых форматов учётных данных, специфичных для проекта шаблонов токенов или секретов, разделённых окружающим синтаксисом; и избыточное редактирование безобидных высокоэнтропийных строк, заполнителей, хешей, примеров учётных данных или синтетических примеров, напоминающих секреты.

Эти ограничения могут взаимодействовать с демографическими, региональными и доменными вариациями. Например, имена и идентификаторы, которые недостаточно представлены в обучающих данных или следуют соглашениям, отличным от доминирующего обучающего распределения, могут с большей вероятностью быть пропущены или иметь несогласованные границы.

Предостережение при развёртывании в условиях высокого риска

Дополнительная осторожность оправдана в высокочувствительных условиях, таких как медицинские, юридические, финансовые, кадровые, образовательные и государственные рабочие процессы. В этих условиях как ложноотрицательные, так и ложноположительные результаты могут быть дорогостоящими: пропущенные спаны могут раскрыть конфиденциальную информацию, в то время как избыточное маскирование может удалить существенный контекст, необходимый для проверки, аудита или принятия последующих решений.

Рекомендации

  • Используйте Privacy Filter как часть целостного подхода к приватности на этапе проектирования, а не как универсальное заявление об анонимизации.
  • Проводите оценку в домене с локальными ссылками на политики перед вводом в эксплуатацию.
  • Используйте дообучение под конкретную задачу, когда политика отличается от базовых границ.
  • Сохраняйте пути человеческой проверки для высокочувствительных рабочих процессов.
Скачать инструмент