安装#
Secretflow目前提供Lite和Full两种版本,Lite版本不包含深度学习相关依赖所以体积更小,Full版本则包含了所有依赖。您可以根据自己的需求自行选择合适的版本。
最简单的尝试SecretFlow的方式是使用带有SecretFlow的 官方 docker image 。
或者你也可以 通过Python Package Index安装SecretFlow 。
对于高级用户,你可以 从源码安装SecretFlow 。
对于Windows用户,你可以 通过WSL2安装SecretFlow 。
安装之后,请不要忘记 快速尝试SecretFlow 确保安装成功。
额外说明:对于有可用GPU设备的用户,可以 尝试使用GPU支持
环境#
Python:3.8
pip: >= 19.3
OS: CentOS 7, Ubuntu 18.04
CPU/Memory: 推荐最低配置是 8C16G.
方式 1: 从pypi#
请安装 当前release 。
请注意python版本需要是3.8,你可以用conda构建一个虚拟环境。
conda create -n sf python=3.8
conda activate sf
之后,请使用pip安装SecretFlow。
完全版本
pip install -U secretflow
Lite版本
pip install -U secretflow-lite
方式2: 通过docker#
你也可以通过SecretFlow的docker image来尝试SecretFlow。
完全版本
docker run -it secretflow/secretflow-anolis8:latest
Lite版本
docker run -it secretflow/secretflow-lite-anolis8:latest
更多版本请查看 secretflow tags 。
方式3: 通过源码#
下载源码并建立Python虚拟环境
git clone https://github.com/secretflow/secretflow.git
cd secretflow
conda create -n secretflow python=3.8
conda activate secretflow
安装SecretFlow
完全版本
python setup.py bdist_wheel
pip install dist/*.whl
Lite版本
python setup.py bdist_wheel --lite
pip install dist/*.whl
方式4: 通过WSL#
隐语不直接支持Windows, 请使用WSL(Windows Subsystem for Linux)
在Windows上安装WSL2
在WSL中安装Anaconda
请在WSL的GNU/Linux中安装anaconda。
安装SecretFlow
创建conda环境
conda create -n sf python=3.8
激活conda环境
conda activate sf
之后,请使用pip安装SecretFlow。
完全版本
pip install -U secretflow
Lite版本
pip install -U secretflow-lite
使用WSL开发您的应用
在WSL上建立SecretFlow的开发环境以后,您可以使用基于WSL配置Pycharm Professional的解释器 或者也可以使用 基于WSL的Visual Studio Code在 Windows 操作系统上使用SecretFlow。
快速尝试#
你的第一个SecretFlow程序。
导入secretflow包。
>>> import secretflow as sf
创建一个包含Alice、Bob和Carol的本地集群。
>>> sf.init(parties=['alice', 'bob', 'carol'], address='local')
创建Alice的PYU设备,可以处理她的数据。
>>> alice_device = sf.PYU('alice')
让Alice说“Hello World”。
>>> message_from_alice = alice_device(lambda x:x)("Hello World!")
打印消息。
>>> message_from_alice
<secretflow.device.device.pyu.PYUObject object at 0x7fdec24a15b0>
我们看到Alice设备上的消息是一个PYU对象,在控制程序中。
通过揭示消息,在控制程序中打印文本。
>>> print(sf.reveal(message_from_alice))
Hello World!
GPU支持#
在您阅读之前#
如果您不需要GPU支持,请忽略此部分并跳到 快速尝试。
简介#
NVIDIA的CUDA和cuDNN通常用于加速机器学习模型的训练和推理。Tensorflow和PyTorch是两种广泛使用的机器学习框架,它们都支持GPU。在SecretFlow中,PyTorch和Tensorflow作为联邦学习的后端,其性能可以通过使用GPU来提升。
如果您想在SecretFlow中使用GPU加速,需要先完成 前置工作 进行环境配置。
接下来,有两种方式可以运行GPU版本的SecretFlow:
使用 官方的GPU Docker镜像
自行 构建 GPU Docker 镜像
镜像准备好后,您可以 运行容器并尝试使用GPU。
前置工作#
确保您的 NVIDIA 驱动程序可用并满足版本要求。
对于 CUDA 12,驱动程序的版本必须 >= 525.60.13,对于 Linux 上的 CUDA 11,驱动程序的版本必须 >= 450.80.02。
运行 NVIDIA 系统管理界面 (nvidia-smi) 以确保您的 NVIDIA 驱动程序可用并满足版本要求。
nvidia-smi
注意:我们目前仅提供基于CUDA11的GPU Docker镜像。当基于CUDA12的PyTorch和TensorFlow的GPU安装包发布时,我们将提供基于CUDA12的GPU Docker 镜像
遵循 NVIDIA 官方指南 在您的发行版上来设置NVIDIA Container Toolkit。
环境设置完成后,您可以构建/运行镜像。
方式1:从SecretFlow仓库中获取GPU镜像#
SecretFlow 的 GPU Docker 镜像已经在 SecretFlow 的Dockerhub 上发布您可以运行下列命令去获取最新的 GPU docker 镜像
docker pull secretflow/secretflow-gpu
对于更多的信息,请访问 GPU 镜像
方式2:自行构建 GPU Docker 镜像#
您也可以自行构建 Docker 镜像
下载代码
git clone https://github.com/secretflow/secretflow.git
cd secretflow/docker
使用Dockerfile文件构建一个镜像
docker build -f secretflow-gpu.Dockerfile -t secretflow-gpu .
运行容器并检查GPU是否可用#
运行容器
docker container run --runtime=nvidia -it --gpus all secretflow-gpu bash
说明:以下两个参数是必需的:
--runtime=nvidia
--gpus all
容器运行后,您可以使用 jupyter 笔记本 GPU Check 检查容器内 Tensorflow 和 PyTorch 对于 NVIDIA GPU 的可调用性。