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

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

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

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

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

Категории

Все категории
Loading categories
Priv-QDNN — Исследовательская кодовая база для оценки конфиденциальности квантованных нейронных сетей: обучает целевые/теневые модели в режимах PTQ/QAT и выполняет атаки вывода членства (MIA, RMIA, white-box) с защитой на основе дифференциальной приватности (DP). | Kitploit
Инструменты/GitHubGitHub/jefffffffu/priv-qdnn
КонфиденциальностьМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHubjefffffffu/priv-qdnn

Priv-QDNN

Исследовательская кодовая база для оценки конфиденциальности квантованных нейронных сетей: обучает целевые/теневые модели в режимах PTQ/QAT и выполняет атаки вывода членства (MIA, RMIA, white-box) с защитой на основе дифференциальной приватности (DP).

Репозиторий
12 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

Priv-QDNN

Этот репозиторий содержит исследовательскую кодовую базу для оценки конфиденциальности квантованных глубоких нейронных сетей. Она поддерживает обучение целевых/теневых моделей в распространённых настройках посттренировочного квантования (PTQ) и квантования с учётом обучения (QAT), сохранение промежуточных признаков для атак на диск и запуск набора атак и метрик, связанных с выводом о членстве (например, MIA, RMIA, WhiteBoxMIA, WhiteBoxMIA_Partial). Кодовая база также интегрирует пути обучения с дифференциальной приватностью на основе Opacus для защищённых моделей (например, варианты dropout / DP / adversarial в предоставленных примерах скриптов).

Рабочий процесс оценки разделён на два этапа: (1) обучение (--training target|shadow|both) для материализации артефактов save/<attack_method>/..., и (2) оценка только атаками (--training None), которая загружает сохранённые постериоры/модели и выводит метрики в result/<attack_method>/....

Установка

Вам нужна машина с поддержкой NVIDIA GPU для типичных экспериментов. Мы рекомендуем колёса CUDA 12.1 для PyTorch (см. команды ниже). Используйте Python 3.10, чтобы соответствовать версиям, закреплённым в requirements.txt.

Вы можете установить большинство зависимостей с помощью:

conda create --name priv-qdnn python=3.10
conda activate priv-qdnn
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121

Примечания:

  • Для CPU-only PyTorch выполните pip install -r requirements.txt без --extra-index-url (CPU-колёса PyPI, если они доступны для вашей платформы).
  • Если вы используете пути квантования AdaRound / AIMET, вам потребуется рабочая установка aimet-torch (см. quantization/PTQ/adaround.py). Если pip не может разрешить aimet-torch на вашей платформе, сначала следуйте инструкциям по установке Qualcomm AIMET, а затем установите остальные зависимости.

Наборы данных

Наборы данных не включены в этот репозиторий. Поддерживаются четыре набора, и они различаются объёмом необходимой настройки.

CIFAR-100 и CINIC-10 (автоматически)

Оба загружаются при первом использовании в data/, поэтому ручной шаг не требуется — просто убедитесь, что у машины есть доступ к сети при первом запуске эксперимента.

  • CIFAR-100 загружается через torchvision.datasets.CIFAR100(..., download=True) в data/load_data.py.
  • CINIC-10 загружается и распаковывается функцией fetch_cinic10() в data/cinic10.py с зеркала Edinburgh DataShare. Это большой архив, поэтому заложите время и место на диске для первого запуска.

Texas100 и Location (вручную)

У этих двух нет автоматического загрузчика. Загрузите исходные архивы, распакуйте их в data/<dataset>/raw/, затем преобразуйте в файлы .npy, которые ожидают загрузчики.

Набор данныхИсходный архив
Texas100https://www.comp.nus.edu.sg/~reza/files/dataset_texas.tgz
Locationhttps://github.com/privacytrustlab/datasets (набор location)

Ожидаемая структура после распаковки:

data/texas/raw/texas/100/feats
data/texas/raw/texas/100/labels
data/location/raw/bangkok

Затем создайте разбиения на обучающую и тестовую выборки:

python data/prepare_tabular.py --dataset both

--dataset принимает texas, location или both. Используйте --raw_root, чтобы указать другое расположение (по умолчанию data/<dataset>/raw), и --test_size / --seed, чтобы изменить разбиение (по умолчанию 0.2 и 41).

Эта команда записывает файлы, которые загружает data/tabular_datasets.py:

data/<dataset>/{train_feats,train_labels,test_feats,test_labels}.npy

Если эти файлы .npy отсутствуют, любой запуск с --dataset_name texas или --dataset_name location завершается с ошибкой FileNotFoundError, в которой указан отсутствующий путь.

Структура кода Priv-QDNN

  • attack: реализации атак и точки входа для оценки (MIA, RMIA, WhiteBox_MIA и т. д.).
  • training: циклы обучения целевых/теневых моделей и варианты защищённого обучения (ветки DP / состязательного обучения, утилиты).
  • model: определения моделей и обёртки, используемые при обучении и в атаках.
  • quantization: конвейеры и вспомогательные средства квантования PTQ/QAT (включая интеграцию AIMET AdaRound).
  • data: вспомогательные средства загрузки наборов данных, скрипты подготовки и обёртки Dataset для PyTorch.
  • dp: утилиты дифференциальной приватности, используемые в путях DP-обучения.
  • example: shell-скрипты для сквозных экспериментов (сбор данных для MIA + оценка только атак / защиты).
  • experiment: механистические исследования, лежащие в основе анализа из статьи — оценки запоминания в стиле LOOD (memorization.py) и таблицы квантования нормы градиента (grad_norm_quantization_table.py, grad_norm_range_normalized_table.py).
  • plot: генерация рисунков и таблиц для статьи; выходные PDF и CSV сохраняются в plot/figures/.
  • main.py: единая точка входа CLI (--training переключает между режимами обучения и оценки только атак).
  • parameter_parser.py: все аргументы командной строки и значения по умолчанию.
  • extract_last_layer_grad_norm.py: L2-нормы градиента классификатора последнего слоя для каждого образца для подмножеств членов и не-членов, используемые в таблицах из experiment/.

Демонстрационные эксперименты

Сбор данных для membership inference + MIA только с атакой (CIFAR-100)

Следующий шаблон соответствует предполагаемому рабочему процессу репозитория: обучение с MIA для заполнения save/MIA/..., затем запуск MIA с --training None.

# Stage 1: train target + shadow and save MIA artifacts
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --training both \
  --num_epochs 50 --trials 3 \
  --device cuda:0

# Stage 2: attack-only MIA evaluation (confidence threshold attack only)
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --compleaknr_attacks confidence \
  --training None \
  --trials 3 \
  --device cuda:0

Для каждого запуска атаки консоль будет выводить прогресс соответствующей реализации атаки (например, метрики по каждому испытанию для MIA; запуски только атаки сохраняются в result/MIA/...).

Выбор чёрных атак для запуска

--compleaknr_attacks управляет записью MIA только для атаки:

  • confidence — запускает только атаку по порогу уверенности. Она использует только сохранённые апостериорные вероятности, поэтому работает быстро и не требует файлов моделей.
  • all (значение по умолчанию для аргумента) — запускает все шесть чёрных вариантов: порог уверенности, порог энтропии, модифицированную энтропию, две атаки на основе обучения (LR/RF по апостериорным вероятностям и по апостериорным вероятностям плюс метка), а также SAMIA.

Обратите внимание, что у двух режимов разные требования. Первые пять вариантов читают только сохранённые апостериорные вероятности, но SAMIA дополнительно загружает сохранённые целевые и теневые модели из save/MIA/.../target/<trial>/model.pth и save/MIA/.../shadow/0/model.pth и запрашивает их на возмущённых входах для оценки чувствительности выхода. Это по-прежнему чёрная атака в том смысле, что используются только выходы модели — никаких градиентов или внутренних активаций — но она требует наличия этих контрольных точек и работает значительно медленнее.

Если вы опустите --compleaknr_attacks, запустятся все шесть. Передайте confidence явно, как указано выше, если вам нужен только быстрый путь или если контрольные точки моделей недоступны.

Пакетные скрипты (защита + MIA)

Вы также можете воспроизвести более крупные серии запусков через:

Скачать инструмент