隐私计算实训营第2期第4讲——SecretFlow与Secretnote的安装部署

教程文档如下: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

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值