En el mundo actual impulsado por los datos, cada vez más investigadores y científicos de datos utilizan el aprendizaje automático para crear mejores modelos o soluciones más innovadoras para un futuro mejor.
Estos modelos suelen tratar datos sensibles o personales, lo que puede provocar problemas de privacidad. Por ejemplo, algunos modelos de IA pueden memorizar detalles sobre los datos con los que han sido entrenados y podrían filtrar estos detalles más adelante.
Para ayudar a medir la fuga de datos confidenciales y reducir la posibilidad de que esto suceda, existe un marco matemático llamado privacidad diferencial.
En 2020, OpenMined creó un contenedor de Python para el proyecto de Privacidad Diferencial de Google llamado PyDP. La biblioteca proporciona un conjunto de algoritmos ε-diferencialmente privados, que se pueden utilizar para producir estadísticas agregadas sobre conjuntos de datos numéricos que contienen información privada o confidencial. Por tanto, con PyDP puedes controlar la garantía de privacidad y la precisión de tu modelo escrito en Python.
Cosas para recordar sobre PyDP:
Para instalar PyDP, use el administrador de paquetes PyPI:
pip install python-dp
(Si tiene pip3
por separado para Python 3.x, use pip3 install python-dp
).
Consulte la lista seleccionada de tutoriales y código de muestra para obtener más información sobre la biblioteca PyDP.
También puede comenzar con una introducción a PyDP (un cuaderno de Jupyter) y la demostración de zanahorias (un archivo de Python).
Ejemplo: calcular la media acotada
# 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 )
Vaya a recursos para obtener más información sobre la privacidad diferencial.
Consulte el modelo de ataque de la Biblioteca de privacidad diferencial de Google subyacente para obtener más información sobre nuestras suposiciones y requisitos para utilizar PyDP de forma segura.
Si tiene preguntas sobre la biblioteca PyDP, únase a Slack de OpenMined y consulte el canal #lib_pydp . Para seguir los cambios en la fuente del código, únase a #code_dp_python .
Para contribuir al proyecto PyDP, lea las pautas.
Las solicitudes de extracción son bienvenidas. Si desea introducir cambios importantes, primero abra un problema para discutir lo que le gustaría cambiar.
Asegúrese de actualizar las pruebas según corresponda.
Licencia Apache 2.0