Dans le monde actuel axé sur les données, de plus en plus de chercheurs et de data scientists utilisent l'apprentissage automatique pour créer de meilleurs modèles ou des solutions plus innovantes pour un avenir meilleur.
Ces modèles ont souvent tendance à traiter des données sensibles ou personnelles, ce qui peut entraîner des problèmes de confidentialité. Par exemple, certains modèles d’IA peuvent mémoriser des détails sur les données sur lesquelles ils ont été formés et pourraient potentiellement divulguer ces détails ultérieurement.
Pour aider à mesurer les fuites de données sensibles et à réduire les risques que cela se produise, il existe un cadre mathématique appelé confidentialité différentielle.
En 2020, OpenMined a créé un wrapper Python pour le projet Differential Privacy de Google appelé PyDP. La bibliothèque fournit un ensemble d'algorithmes ε-différentiellement privés, qui peuvent être utilisés pour produire des statistiques globales sur des ensembles de données numériques contenant des informations privées ou sensibles. Par conséquent, avec PyDP, vous pouvez contrôler la garantie de confidentialité et l’exactitude de votre modèle écrit en Python.
Choses à retenir à propos de PyDP :
Pour installer PyDP, utilisez le gestionnaire de packages PyPI :
pip install python-dp
(Si vous avez pip3
séparément pour Python 3.x, utilisez pip3 install python-dp
.)
Reportez-vous à la liste organisée de didacticiels et d'exemples de code pour en savoir plus sur la bibliothèque PyDP.
Vous pouvez également commencer avec une introduction à PyDP (un notebook Jupyter) et la démo carottes (un fichier Python).
Exemple : calculer la moyenne limitée
# 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 )
Accédez aux ressources pour en savoir plus sur la confidentialité différentielle.
Veuillez vous référer au modèle d'attaque de la bibliothèque de confidentialité différentielle sous-jacente de Google pour en savoir plus sur nos hypothèses et exigences pour utiliser PyDP en toute sécurité.
Si vous avez des questions sur la bibliothèque PyDP, rejoignez Slack d'OpenMined et consultez le canal #lib_pydp . Pour suivre les modifications de la source du code, rejoignez #code_dp_python .
Pour contribuer au projet PyDP, lisez les lignes directrices.
Les demandes de tirage sont les bienvenues. Si vous souhaitez introduire des changements majeurs, veuillez d'abord ouvrir un ticket pour discuter de ce que vous souhaitez changer.
Veuillez vous assurer de mettre à jour les tests le cas échéant.
Licence Apache 2.0