今日のデータ主導の世界では、機械学習を使用してより良いモデルやより革新的なソリューションを作成し、より良い未来を実現する研究者やデータ サイエンティストがますます増えています。
これらのモデルは多くの場合、機密データや個人データを扱う傾向があり、プライバシーの問題を引き起こす可能性があります。たとえば、一部の AI モデルは、トレーニングされたデータの詳細を記憶することができ、これらの詳細が後で漏洩する可能性があります。
機密データの漏洩を測定し、その可能性を減らすために、差分プライバシーと呼ばれる数学的フレームワークがあります。
2020 年、OpenMined は、PyDP と呼ばれる Google の差分プライバシー プロジェクト用の Python ラッパーを作成しました。このライブラリは、プライベート情報や機密情報を含む数値データ セットの集計統計を生成するために使用できる、ε 差分プライベート アルゴリズムのセットを提供します。したがって、PyDP を使用すると、Python で作成されたモデルのプライバシーの保証と精度を制御できます。
PyDP について覚えておくべきこと:
PyDP をインストールするには、PyPI パッケージ マネージャーを使用します。
pip install python-dp
(Python 3.x 用に個別にpip3
がある場合は、 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 )
差分プライバシーについて詳しくは、リソースにアクセスしてください。
PyDP を安全な方法で使用するための前提条件と要件の詳細については、基盤となる Google Differential Privacy Library の攻撃モデルを参照してください。
PyDP ライブラリについて質問がある場合は、OpenMined の Slack に参加して#lib_pydpチャネルを確認してください。コード ソースの変更を追跡するには、 #code_dp_pythonに参加します。
PyDP プロジェクトに貢献するには、ガイドラインをお読みください。
プルリクエストは大歓迎です。大きな変更を導入したい場合は、まず問題を開いて、変更したい内容について話し合ってください。
必要に応じてテストを更新してください。
Apache ライセンス 2.0