
Biblioteca de teste de privacidade para sistemas de aprendizado profundo, permitindo a avaliação da suscetibilidade a ataques de inferência de associação, extração de modelos e inversão de modelos, e a avaliação de técnicas de preservação de privacidade.

Nota: Este projeto está em pausa.
PrivacyRaven é uma biblioteca de teste de privacidade para sistemas de aprendizado profundo. Você pode usá-la para determinar a suscetibilidade de um modelo a diferentes ataques de privacidade; avaliar técnicas de aprendizado de máquina que preservam a privacidade; desenvolver novas métricas e ataques de privacidade; e reaproveitar ataques para proveniência de dados e outros casos de uso.
O PrivacyRaven suporta extração de modelo black-box somente com rótulos, inferência de associação e (em breve) ataques de inversão de modelo. Também planejamos incluir verificação de privacidade diferencial, otimização automatizada de hiperparâmetros, mais classes de ataques e outros recursos; consulte as issues do GitHub para mais informações. O PrivacyRaven foi apresentado na OpenMined Privacy Conference, no Empire Hacking e no blog da Trail of Bits.
Os sistemas de aprendizado profundo, particularmente as redes neurais, proliferaram em uma ampla gama de aplicações, incluindo casos de uso sensíveis à privacidade, como reconhecimento facial e diagnósticos médicos. No entanto, esses modelos são vulneráveis a ataques de privacidade que visam tanto a propriedade intelectual do modelo quanto a confidencialidade dos dados de treinamento. A literatura recente tem testemunhado uma corrida armamentista entre ataques e defesas de privacidade em vários sistemas. E até agora, engenheiros e pesquisadores não dispunham das ferramentas de análise de privacidade necessárias para rivalizar com essa tendência. Por isso, desenvolvemos o PrivacyRaven - uma ferramenta de garantia de aprendizado de máquina que visa ser:
O PrivacyRaven particiona cada ataque em múltiplas fases personalizáveis e otimizáveis. Diferentes interfaces também são fornecidas para cada ataque. A interface mostrada abaixo é conhecida como interface principal. O PrivacyRaven também fornece wrappers para configurações de ataque específicas encontradas na literatura e um recurso de executar todos os ataques.
Veja como você lançaria um ataque de extração de modelo no 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
)
Como o único requisito principal do modelo vítima é uma função de consulta, o PrivacyRaven pode ser usado para atacar uma ampla variedade de modelos, independentemente do framework e do método de distribuição.
As outras classes de ataques podem ser lançadas de maneira semelhante. Consulte a pasta examples para mais informações.
poetry updatepoetry install.Se você quiser usar um ambiente Jupyter Notebook, execute poetry shell seguido de jupyter notebook.
Além disso, se você quiser executar o PrivacyRaven em um contêiner Docker, execute chmod +x build.sh seguido de ./build.sh. Observe que, dependendo da quantidade de recursos alocada ao Docker, o desempenho do PrivacyRaven pode ser drasticamente afetado.
Sinta-se à vontade para entrar no nosso canal #privacyraven no Empire Hacking se precisar de ajuda para usar ou estender o PrivacyRaven. O lançamento oficial via pip chegará em breve.
Observe que o PrivacyRaven ainda está no início do desenvolvimento e passando por mudanças rápidas. Recomenda-se que os usuários atualizem com frequência e evitem aplicar o PrivacyRaven a casos de uso críticos.
O PrivacyRaven ainda é um trabalho em andamento. Convidamos você a contribuir como puder, seja para incorporar uma nova técnica de síntese ou para tornar uma função de ataque mais legível. Visite CONTRIBUTING.md para começar.
O corvo tem sido associado a uma variedade de conceitos em diferentes culturas ao longo do tempo. Entre eles, o corvo é comumente associado à profecia e à percepção. Naturalmente, nomeamos a ferramenta PrivacyRaven porque ela foi projetada para fornecer insights sobre a privacidade do aprendizado profundo.
Os principais mantenedores são:
Esta biblioteca está disponível sob a Apache License 2.0. Para uma exceção aos termos, entre em contato conosco.
Embora o PrivacyRaven tenha sido construído com base em uma infinidade de pesquisas sobre ataques à privacidade em aprendizado de máquina, as pesquisas mais críticas para o desenvolvimento do PrivacyRaven são:
Esta é uma lista de publicações, apresentações, posts de blog e outras mídias públicas que discutem o PrivacyRaven.