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

Примечание: этот проект находится на паузе.
PrivacyRaven — это библиотека для тестирования конфиденциальности систем глубокого обучения. С её помощью можно определять восприимчивость модели к различным атакам на конфиденциальность; оценивать методы машинного обучения, сохраняющие конфиденциальность; разрабатывать новые метрики и атаки на конфиденциальность; а также адаптировать атаки для установления происхождения данных и других сценариев использования.
PrivacyRaven поддерживает извлечение модели из «чёрного ящика» с использованием только меток, атаки на определение принадлежности к обучающему набору и (в скором времени) инверсию модели. Мы также планируем включить проверку дифференциальной приватности, автоматическую оптимизацию гиперпараметров, дополнительные классы атак и другие возможности; подробнее см. в GitHub Issues. PrivacyRaven был представлен на OpenMined Privacy Conference, Empire Hacking и в блоге Trail of Bits.
Системы глубокого обучения, особенно нейронные сети, широко распространились в самых разных приложениях, включая чувствительные к конфиденциальности сценарии, такие как распознавание лиц и медицинская диагностика. Однако эти модели уязвимы к атакам на конфиденциальность, которые направлены как на интеллектуальную собственность модели, так и на конфиденциальность обучающих данных. В недавней литературе можно наблюдать гонку вооружений между атаками на конфиденциальность и защитами в различных системах. И до сих пор у инженеров и исследователей не было инструментов анализа конфиденциальности, необходимых, чтобы противостоять этой тенденции. Поэтому мы разработали PrivacyRaven — инструмент обеспечения доверия к машинному обучению, который призван быть:
PrivacyRaven разбивает каждую атаку на несколько настраиваемых и оптимизируемых фаз. Для каждой атаки также предусмотрены различные интерфейсы. Интерфейс, показанный ниже, известен как основной интерфейс. PrivacyRaven также предоставляет обёртки вокруг конкретных конфигураций атак из литературы и функцию запуска всех атак.
Вот как можно запустить атаку по извлечению модели в PrivacyRaven:
#examples/extract_mnist_gpu.py
import privacyraven as pr
from privacyraven.utils.data import get_emnist_data
from privacyraven.extraction.core import ModelExtractionAttack
from privacyraven.utils.query import get_target
from privacyraven.models.victim import train_four_layer_mnist_victim
from privacyraven.models.four_layer import FourLayerClassifier
# Create a query function for a target PyTorch Lightning model
model = train_four_layer_mnist_victim()
def query_mnist(input_data):
# PrivacyRaven provides built-in query functions
return get_target(model, input_data, (1, 28, 28, 1))
# Obtain seed (or public) data to be used in extraction
emnist_train, emnist_test = get_emnist_data()
# Run a model extraction attack
attack = ModelExtractionAttack(
query_mnist, # query function
200, # query limit
(1, 28, 28, 1), # victim input shape
10, # number of targets
(3, 1, 28, 28), # substitute input shape
"copycat", # synthesizer name
FourLayerClassifier, # substitute model architecture
784, # substitute input size
emnist_train, # seed train data
emnist_test, # seed test data
)
Поскольку единственное основное требование к модели-жертве — это функция запроса, PrivacyRaven можно использовать для атак на широкий круг моделей независимо от фреймворка и способа распространения.
Другие классы атак запускаются аналогичным образом. Дополнительные сведения см. в папке examples.
poetry updatepoetry install.Если вы хотите использовать среду Jupyter Notebook, выполните poetry shell, а затем jupyter notebook.
Кроме того, если вы хотите запустить PrivacyRaven в Docker-контейнере, выполните chmod +x build.sh, а затем ./build.sh. Учтите, что в зависимости от объёма ресурсов, выделяемых вами для Docker, производительность PrivacyRaven может существенно снизиться.
Присоединяйтесь к нашему каналу #privacyraven в Empire Hacking, если вам нужна помощь в использовании или расширении PrivacyRaven. Официальный релиз в pip выйдет в ближайшее время.
Обратите внимание, что PrivacyRaven находится на раннем этапе разработки и быстро меняется. Пользователям рекомендуется регулярно обновляться и не применять PrivacyRaven в критически важных сценариях.
PrivacyRaven всё ещё находится в стадии разработки. Мы приглашаем вас вносить вклад любым возможным способом — хотите ли вы добавить новый метод синтеза или сделать функцию атаки более читаемой. Для начала посетите CONTRIBUTING.md.
Ворон на протяжении долгого времени ассоциировался с различными понятиями в разных культурах. Среди прочего, ворон обычно ассоциируется с пророчеством и прозорливостью. Естественно, мы назвали инструмент PrivacyRaven, потому что он предназначен для получения понимания о конфиденциальности глубокого обучения.
Основные сопровождающие:
Эта библиотека доступна под лицензией Apache License 2.0. Для получения исключения из условий, пожалуйста, свяжитесь с нами.
Хотя PrivacyRaven был построен на основе множества исследований по атакам на конфиденциальность машинного обучения, наиболее важными для разработки PrivacyRaven являются:
Это список публикаций, презентаций, записей в блогах и других публичных материалов, в которых обсуждается PrivacyRaven.