教程文档如下:SecretFlow
另一个很详细的操作指南
install-secretflow-on-windows.md · 有证教师/secretflow_everyday - 码云 - 开源中国 (gitee.com)
1. SecretFlow安装
Secretflow目前提供Lite和Full两种版本,Lite版本不包含深度学习相关依赖所以体积更小,Full版本则包含了所有依赖。您可以根据自己的需求自行选择合适的版本。
最简单的尝试SecretFlow的方式是使用带有SecretFlow的 官方 docker image 。
或者你也可以 通过Python Package Index安装SecretFlow 。
对于高级用户,你可以 从源码安装SecretFlow 。
对于Windows用户,你可以 通过WSL2安装SecretFlow 。
安装之后,请不要忘记 快速尝试SecretFlow 确保安装成功。
额外说明:对于有可用GPU设备的用户,可以 尝试使用GPU支持
环境
Python:3.10
pip: >= 19.3
OS: CentOS 7, Ubuntu 20.04
CPU/Memory: 推荐最低配置是 8C16G.
由于 CI 资源限制, macOS x64 安装包已不再提供.
2.windows环境安装隐语
wsl子系统准备
隐语不直接支持Windows, 请使用WSL(Windows Subsystem for Linux)
在Windows上安装WSL2 请遵循中文指南或英文指南安装WSL。请确保WSL版本为2。 中文指南地址:https://learn.microsoft.com/zh-cn/windows/wsl/install
GNU/Linux推荐使用Ubuntu。
接下来,在powershell中运行。
查看发行版(科学的上网很有必要)
wsl --list --online
安装Ubuntu 2204(过程中需要设置用户名和口令)
wsl --install Ubuntu-22.04
安装后的查看列表(2代表是wsl2的版本,符合要求)
PS C:\Users\95762> wsl -l -v NAME STATE VERSION Ubuntu-22.04 Running 2
安装隐语
在wsl子系统安装好之后,基本可以按照Linux的方式去安装Secretflow了。
在WSL中安装Anaconda 请在WSL的GNU/Linux中安装anaconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh
确保conda的环境变量生效。 配置虚拟环境。
conda create -n sf python=3.8 conda activate sf
安装secretfow(-i部分为指定阿里源)
pip install -U secretflow -i https://mirrors.aliyun.com/pypi/simple/
可能缺失的依赖
sudo apt-get update sudo apt-get install libgomp1
我在执行sudo apt-get update语句时遇到了Network Unreachable的问题,无论是否科学上网都是这个结果。
可以通过换源解决:
sudo sed -i 's/http:\/\/archive.ubuntu.com/https:\/\/mirror.sjtu.edu.cn/g' /etc/apt/sources.list
测试sf
测试代码
import secretflow as sf sf.init(parties=['alice', 'bob', 'carol'], address='local') alice_device = sf.PYU('alice') message_from_alice = alice_device(lambda x:x)("Hello World!") print(sf.reveal(message_from_alice))
成功运行
安装secretnote
使用docker-compose来启动2个节点。
先找一个空目录,例如创建一个note目录
mkdir note cd note
创建docker-compose.yml文件,文件内容可以直接用github提供的。
services: alice: image: 'secretflow/secretnote:unstable-amd64' platform: linux/amd64 environment: - SELF_PARTY=alice - ALL_PARTIES=alice,bob ports: - 8090:8888 entrypoint: /root/scripts/start.sh volumes: - /root/scripts bob: image: 'secretflow/secretnote:unstable-amd64' platform: linux/amd64 environment: - SELF_PARTY=bob - ALL_PARTIES=alice,bob ports: - 8092:8888 entrypoint: /root/scripts/start.sh volumes: - /root/scripts
上述方式会创建2个secretnote节点,alice和bob,docker内两个节点的侦听端口都是8888,宿主机通过8090和8092与docker端口对应。
启动2个容器。
docker compose up
up 会重建容器,如果需要停止、重启、启动等,可以用stop、restart、start等命令。
docker compose stop docker compose restart docker compose start
如果使用down命令,会停止并删除运行的docker容器。另外,在启动docker时,可以用-d参数,这样docker容器可以在后台运行。
启动成功后,在浏览器中,可以通过如下链接打开。 http://{宿主机IP}:8090/secretnote/secretflow