
Librería de pruebas de privacidad para sistemas de deep learning, que permite evaluar la susceptibilidad a ataques de inferencia de membresía, extracción de modelos e inversión de modelos, y la evaluación de técnicas de preservación de la privacidad.

Nota: Este proyecto está en pausa.
PrivacyRaven es una biblioteca de pruebas de privacidad para sistemas de aprendizaje profundo. Puedes usarla para determinar la susceptibilidad de un modelo a diferentes ataques de privacidad; evaluar técnicas de aprendizaje automático que preservan la privacidad; desarrollar nuevas métricas y ataques de privacidad; y reutilizar ataques para la procedencia de datos y otros casos de uso.
PrivacyRaven admite extracción de modelos de caja negra solo con etiquetas, ataques de inferencia de pertenencia y (pronto) ataques de inversión de modelos. También planeamos incluir verificación de privacidad diferencial, optimización automática de hiperparámetros, más clases de ataques y otras características; consulta los problemas de GitHub para obtener más información. PrivacyRaven se ha presentado en la Conferencia de Privacidad de OpenMined, Empire Hacking y el blog de Trail of Bits.
Los sistemas de aprendizaje profundo, en particular las redes neuronales, se han proliferado en una amplia gama de aplicaciones, incluidos casos de uso sensibles a la privacidad como el reconocimiento facial y los diagnósticos médicos. Sin embargo, estos modelos son vulnerables a ataques de privacidad que apuntan tanto a la propiedad intelectual del modelo como a la confidencialidad de los datos de entrenamiento. La literatura reciente ha visto una carrera armamentista entre los ataques de privacidad y las defensas en varios sistemas. Y hasta ahora, los ingenieros e investigadores no han tenido las herramientas de análisis de privacidad que necesitan para rivalizar con esta tendencia. Por ello, desarrollamos PrivacyRaven, una herramienta de aseguramiento del aprendizaje automático que pretende ser:
PrivacyRaven divide cada ataque en múltiples fases personalizables y optimizables. También se proporcionan diferentes interfaces para cada ataque. La interfaz que se muestra a continuación se conoce como la interfaz principal. PrivacyRaven también proporciona envoltorios alrededor de configuraciones de ataque específicas encontradas en la literatura y una función para ejecutar todos los ataques.
Así es como lanzarías un ataque de extracción de modelos en 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
)
Dado que el único requisito principal del modelo víctima es una función de consulta, PrivacyRaven puede usarse para atacar una amplia gama de modelos independientemente del marco de trabajo y del método de distribución.
Las otras clases de ataques pueden lanzarse de manera similar. Consulta la carpeta examples para obtener más información.
poetry updatepoetry install.Si deseas usar un entorno de Jupyter Notebook, ejecuta poetry shell seguido de jupyter notebook.
Además, si deseas ejecutar PrivacyRaven en un contenedor Docker, ejecuta chmod +x build.sh seguido de ./build.sh. Ten en cuenta que, dependiendo de la cantidad de recursos que asignes a Docker, el rendimiento de PrivacyRaven puede verse afectado drásticamente.
No dudes en unirte a nuestro canal #privacyraven en Empire Hacking si necesitas ayuda para usar o extender PrivacyRaven. El lanzamiento oficial en pip llegará pronto.
Ten en cuenta que PrivacyRaven aún está en una etapa temprana de desarrollo y está experimentando cambios rápidos. Se recomienda a los usuarios actualizar con frecuencia y evitar aplicar PrivacyRaven a casos de uso críticos.
PrivacyRaven sigue siendo un trabajo en curso. Te invitamos a contribuir como puedas, ya sea incorporando una nueva técnica de síntesis o haciendo que una función de ataque sea más legible. Visita CONTRIBUTING.md para comenzar.
El cuervo ha sido asociado con una variedad de conceptos en diferentes culturas a lo largo del tiempo. Entre ellos, el cuervo se asocia comúnmente con la profecía y la perspicacia. Naturalmente, nombramos la herramienta PrivacyRaven porque está diseñada para proporcionar información sobre la privacidad del aprendizaje profundo.
Los mantenedores principales son:
Esta biblioteca está disponible bajo la Licencia Apache 2.0. Para una excepción a los términos, por favor contáctanos.
Si bien PrivacyRaven se construyó sobre una gran cantidad de investigaciones sobre ataques a la privacidad del aprendizaje automático, las investigaciones más críticas para el desarrollo de PrivacyRaven son:
Esta es una lista de publicaciones, presentaciones, publicaciones de blog y otros medios públicos que discuten PrivacyRaven.