一、SecretFlow安装
1. SecretFlow运行要求
- Python: 版本>= 3.8
- 操作系统:
- CentOS 7
- Anolis8
- Ubuntu 18.04/20.04
- macOS 11.1+
- WSL2
- 资源: ≥ 8核16GB
2. SecretFlow安装包
-
secretflow:
- 包含secretflow所有的requirements
- 体积较大
-
secretflow-lite:
- 仅包含基础功能(不包含深度学习等依赖库)
- 体积较小
3. SecretFlow安装方式
方式一:docker镜像
- docker hub:
docker run -it secretflow/secretflow-anolis8:latest docker run -it secretflow/secretflow-lite-anolis8:latest
- 阿里云:
docker run -it secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow-anolis8:latest docker run -it secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow-lite-anolis8:latest
方式二:pypi
pip install -U secretflow
pip install -U secretflow-lite
方式三:源码
- 下载源码并建立Python虚拟环境
git clone https://github.com/secretflow/secretflow.git cd secretflow conda create -n secretflow python=3.8 conda activate secretflow
- 安装secretflow
# 涉及到C++编译,建议使用镜像secretflow/release-ci:latest python setup.py bdist_wheel pip install dist/*.whl
二、SecretFlow部署 – 仿真模式
1. SecretFlow部署模式
- 仿真模式: 适合仿真实验,验证代码效果;既支持单机仿真,也支持多机仿真;只需要执行一次代码。
- 生产模式: 适合生产使用;安全增强;需要每一个参与方都执行代码。
2. SecretFlow和Ray
- SecretFlow使用Ray作为分布式计算调度框架。
- Ray集群由一个主节点和零或若干个从节点组成。
3. 仿真模式 – 单机仿真
单个节点模拟alice、bob两个参与方
address = 'local' # 表示启动一个本地的Ray节点
4. 仿真模式 – 集群仿真
部署两个节点,分别模拟alice、bob两个参与方
- 在第一台机器上部署Ray主节点,模拟参与方alice
- 在第二台机器上部署Ray从节点,模拟参与方bob
- 执行python代码
- 创建密态设备SPU
三、SecretFlow部署 – 生产模式
1. 生产模式 vs 仿真模式
- 安全增强
- 每一个参与方都是独立的Ray集群
- 所有参与方都需要执行代码
2. 生产模式
部署两个节点,分别模拟alice、bob两个参与方
- 在第一台机器上部署Ray主节点,模拟参与方alice
- 在第二台机器上部署Ray主节点,模拟参与方bob
- alice执行python代码
- bob执行python代码
- 创建密态设备SPU
3. 生产模式 – 使用KUSCIA解决多端口问题
KUSCIA定位: 屏蔽不同机构间基础设施的差异,为跨机构协作提供丰富且可靠的资源管理和任务调度能力。
- KUSCIA->统一网络基础设施->SPU、Ray通信多端口
4. 生产模式 – 使用SecretNote提升体验
四、F&Q
RAY编程模型:全局视角编程范式
- 全局视角: 全局视角(driver)编写所有代码,和单机代码一样体验
- 灵活计算模型: 支持同步异步、同构异构、CPU与GPU等
- 透明分布式: 无需关注分布式底层实现,remote装饰器即可实现自动分布式调度
- 复杂场景下更具优势