OpenMined/PySyft
Perform data science on data that remains in someone else's server
PySyft – プライバシー保護データサイエンスプラットフォーム
機能
PySyft を使用すると、データ所有者は生データを自分のマシンに保持し、データサイエンティストはそのプライベートデータ上で実行される Python ジョブを送信できます。所有者のデバイスから出るのは、所有者が明示的に承認した結果のみです。通常のクラウドファイルサービス(Google Drive、Microsoft 365)を介して動作するため、特別なサーバーは必要ありません。
主要な概念
- リモートデータサイエンス(RDS)クライアント –
login_do/login_dsオブジェクトは、データ所有者とデータサイエンティストの役割を表します。 - データセット – 所有者はモックバージョン(公開)とプライベートバージョン(実データ)を作成します。科学者はモックデータを探索し、プライベートバージョンで自動的に実行されるジョブを送信できます。
- ジョブ – Python スクリプトがアップロードされ、所有者側の仮想環境でサンドボックス化され、実行され、承認された出力が同期されます。
- 権限とピアツーピア認証 – データ交換の前に、各コラボレーターを追加して承認する必要があります。
- トランスポート非依存、オフラインファースト – 現在は Google Drive を介して実装されていますが、同期レイヤーは交換可能です。ピアがオフラインでも作業は継続され、後で同期されます。
- エンクレーブ – 追加のセキュリティのためのオプションの分離実行環境(例:二重盲検 LLM 評価)。
開始方法
- コアライブラリと RDS クライアントをインストールします:
データ所有者はバックグラウンドサービスのためにuv pip install "syft>=0.10.0" "syft-rds>=0.6.0"syft-bgも追加します。 - Google Cloud OAuth トークンでログインします(Colab は自動的にこれを行います)。
- 所有者側でデータセットを作成し、同期し、科学者がカタログを取得できるようにします。
syft.resolve_dataset_file_pathを介してデータセットを読み取り、結果を書き込むプレーンな Python スクリプト(analysis.py)を記述します。- スクリプトをジョブとして送信し、所有者が承認し、ジョブがサンドボックスで実行され、科学者が出力を取得します。
主要パッケージ
| パッケージ | 役割 |
|---|---|
syft-rds |
リモートデータサイエンスクライアント – ログイン、データセット、ジョブ API |
syft-datasets |
データセット作成、バージョン管理、モック/プライベート分離 |
syft-job |
ジョブ定義、送信、サンドボックス化実行 |
syft-permissions / syft-perms |
きめ細かいアクセス制御 |
syft-bg |
バックグラウンドサービス、メール通知、TUI ダッシュボード |
syft-notebook-ui |
Jupyter 内で結果を表示するためのヘルパー |
典型的なユースケース
病院(データ所有者)は患者記録を Google Drive のプライベートフォルダに保存します。研究者(データサイエンティスト)は統計サマリーを計算する分析スクリプトを作成します。スクリプトは病院に送信され、分離された仮想環境内で実行され、承認されたサマリーのみが返されます – 生の患者データは病院から出ることはありません。
コミュニティとサポート
OpenMined 財団によって開発されたこのプロジェクトは、オープンソース(Apache 2.0)であり、ヘルプのための活発な Slack コミュニティがあります。リポジトリにはユニットテストと統合テストスイートが含まれており、コントリビューターはローカルテストに just test-* コマンドを使用することが推奨されています。
上記の詳細はすべて、リポジトリの README から直接取得されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト