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 会自动执行此操作)。
- 在所有者端创建数据集,同步,并让科学家获取目录。
- 编写一个纯 Python 脚本(
analysis.py),通过syft.resolve_dataset_file_path读取数据集并写入结果。 - 将脚本作为作业提交,所有者批准,作业在沙盒中运行,科学家检索输出。
主要包
| 包 | 角色 |
|---|---|
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。
相关
- 项目
- 项目
- 项目
- 项目
- 项目