В современном мире, управляемом данными, все больше и больше исследователей и специалистов по обработке данных используют машинное обучение для создания лучших моделей или более инновационных решений для лучшего будущего.
Эти модели часто имеют тенденцию обрабатывать конфиденциальные или личные данные, что может вызвать проблемы с конфиденциальностью. Например, некоторые модели ИИ могут запоминать подробности о данных, на которых они обучались, и потенциально могут впоследствии раскрыть эти сведения.
Чтобы помочь измерить утечку конфиденциальных данных и снизить вероятность ее возникновения, существует математическая основа, называемая дифференциальной конфиденциальностью.
В 2020 году OpenMined создала оболочку Python для проекта Google Differential Privacy под названием PyDP. Библиотека предоставляет набор ε-дифференциально частных алгоритмов, которые можно использовать для создания совокупной статистики по наборам числовых данных, содержащих частную или конфиденциальную информацию. Таким образом, с помощью PyDP вы можете контролировать гарантию конфиденциальности и точность вашей модели, написанной на Python.
Что следует помнить о PyDP:
Чтобы установить PyDP, используйте менеджер пакетов PyPI:
pip install python-dp
(Если у вас есть pip3
отдельно для Python 3.x, используйте pip3 install python-dp
.)
Чтобы узнать больше о библиотеке PyDP, обратитесь к тщательно подобранному списку руководств и примерам кода.
Вы также можете начать с введения в PyDP (блокнот Jupyter) и демонстрации моркови (файл Python).
Пример: вычислить ограниченное среднее
# 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 )
Перейдите к ресурсам, чтобы узнать больше о дифференциальной конфиденциальности.
Пожалуйста, обратитесь к модели атаки базовой библиотеки дифференциальной конфиденциальности Google, чтобы узнать больше о наших предположениях и требованиях для безопасного использования PyDP.
Если у вас есть вопросы о библиотеке PyDP, присоединяйтесь к Slack OpenMined и проверьте канал #lib_pydp . Чтобы следить за изменениями исходного кода, присоединяйтесь к #code_dp_python .
Чтобы внести свой вклад в проект PyDP, прочтите руководство.
Запросы на вытягивание приветствуются. Если вы хотите внести серьезные изменения, сначала откройте вопрос, чтобы обсудить, что вы хотели бы изменить.
Обязательно обновляйте тесты по мере необходимости.
Лицензия Апач 2.0