No mundo atual, orientado por dados, cada vez mais investigadores e cientistas de dados utilizam a aprendizagem automática para criar modelos melhores ou soluções mais inovadoras para um futuro melhor.
Esses modelos geralmente tendem a lidar com dados confidenciais ou pessoais, o que pode causar problemas de privacidade. Por exemplo, alguns modelos de IA podem memorizar detalhes sobre os dados nos quais foram treinados e podem vazar esses detalhes posteriormente.
Para ajudar a medir o vazamento de dados confidenciais e reduzir a possibilidade de isso acontecer, existe uma estrutura matemática chamada privacidade diferencial.
Em 2020, OpenMined criou um wrapper Python para o projeto de privacidade diferencial do Google chamado PyDP. A biblioteca fornece um conjunto de algoritmos ε-diferencialmente privados, que podem ser usados para produzir estatísticas agregadas sobre conjuntos de dados numéricos contendo informações privadas ou confidenciais. Portanto, com PyDP você pode controlar a garantia de privacidade e precisão do seu modelo escrito em Python.
Coisas para lembrar sobre PyDP:
Para instalar o PyDP, use o gerenciador de pacotes PyPI:
pip install python-dp
(Se você tiver pip3
separadamente para Python 3.x, use pip3 install python-dp
.)
Consulte a lista selecionada de tutoriais e exemplos de código para saber mais sobre a biblioteca PyDP.
Você também pode começar com uma introdução ao PyDP (um notebook Jupyter) e a demonstração de cenouras (um arquivo Python).
Exemplo: calcular a média limitada
# Import PyDP
import pydp as dp
# Import the Bounded Mean algorithm
from pydp . algorithms . laplacian import BoundedMean
# Calculate the Bounded Mean
# Basic Structure: `BoundedMean(epsilon: float, lower_bound: Union[int, float, None], upper_bound: Union[int, float, None])`
# `epsilon`: a Double, between 0 and 1, denoting the privacy threshold,
# measures the acceptable loss of privacy (with 0 meaning no loss is acceptable)
x = BoundedMean ( epsilon = 0.6 , lower_bound = 1 , upper_bound = 10 )
# If the lower and upper bounds are not specified,
# PyDP automatically calculates these bounds
# x = BoundedMean(epsilon: float)
x = BoundedMean ( 0.6 )
# Calculate the result
# Currently supported data types are integers and floats
# Future versions will support additional data types
# (Refer to https://github.com/OpenMined/PyDP/blob/dev/examples/carrots.py)
x . quick_result ( input_data : list )
Acesse os recursos para saber mais sobre privacidade diferencial.
Consulte o modelo de ataque da Biblioteca de Privacidade Diferencial do Google subjacente para saber mais sobre nossas suposições e requisitos para usar o PyDP de maneira segura.
Se você tiver dúvidas sobre a biblioteca PyDP, entre no Slack do OpenMined e verifique o canal #lib_pydp . Para acompanhar as alterações na fonte do código, junte-se a #code_dp_python .
Para contribuir com o projeto PyDP, leia as diretrizes.
Solicitações pull são bem-vindas. Se você quiser introduzir mudanças importantes, abra primeiro uma edição para discutir o que você gostaria de mudar.
Certifique-se de atualizar os testes conforme apropriado.
Licença Apache 2.0