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 評価)。

開始方法

  1. コアライブラリと RDS クライアントをインストールします:
    uv pip install "syft>=0.10.0" "syft-rds>=0.6.0"
    
    データ所有者はバックグラウンドサービスのために syft-bg も追加します。
  2. Google Cloud OAuth トークンでログインします(Colab は自動的にこれを行います)。
  3. 所有者側でデータセットを作成し、同期し、科学者がカタログを取得できるようにします。
  4. syft.resolve_dataset_file_path を介してデータセットを読み取り、結果を書き込むプレーンな Python スクリプト(analysis.py)を記述します。
  5. スクリプトをジョブとして送信し、所有者が承認し、ジョブがサンドボックスで実行され、科学者が出力を取得します。

主要パッケージ

パッケージ 役割
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 から直接取得されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト