第四课:SecretFlow与Secretnote的安装部署

首先必须感谢蚂蚁集团及隐语社区带来的隐私计算实训第二期的学习机会!
现在我从第四课开始记录,是因为第二期的前面四节课和第一期的课程相同,感兴趣的小伙伴可以参考我第一期的完整课程:

链接请点击: 隐私计算实训营第一期完整记录.

本期视频讲解请点击:
隐私计算实训营第二期第四课

虽然第四课也和第一期相同,但是在第一期里我们采用的是docker安装,本期我们在WSL2里采用pip方式来安装。

1、安装conda环境

1.1 下载Anaconca

我的WSL2是Ubuntu系统,首先安装conda环境,便于安装特定版本的python环境。
安装也比较简单,到清华镜像站下载Anaconda,我下载的是下图中的版本。
下载链接: Anaconda下载

Anaconda下载

1.2 开始安装

在你下载文件的目录中的shell中执行:

bash Anaconda3-2024.02-1-Linux-x86_64.sh

这里显示的licence内容比较长,需要一直按enter,直到显示:
Do you accept the license terms? [yes|no] ,输入yes即可继续安装。

安装Anaconda

1.3 激活conda环境

安装完毕后,建立自定义的python环境并激活环境。因为secretflow使用python3.10版本,于是我们建立3.10版本的环境。

建立环境:conda create -n sf python=3.10
激活环境: conda activate sf

如果执行上述命令时出错,conda未找到命令,则先把环境生效一下

打开文件:sudo vi ~/.bashrc
输入你conda的安装路径:export PATH=$PATH:/home/your_conda_path/anaconda3/bin
刷新:source ~/.bashrc

然后执行conda建立环境和激活命令就可以了。

2、安装Secretflow

2.1 pip方式安装

在sf的conda环境中,执行下面的命令:

pip install -U secretflow-lite

我的环境执行时这里报了个错误,缺少一个库gomp

缺少一个库

2.2 缺少的库安装

于是安装上这个库:

sudo apt install libgomp

然后执行下面命令开始安装

pip install -U secretflow-lite

开始安装secretflow

2.3 进行简单测试

安装完成后,进入python环境开始简单的测试:

>>> 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!")
>>> message_from_alice
>>> print(sf.reveal(message_from_alice))

以上命令执行效果如下图:

在这里插入图片描述

至此,Secretflow安装完毕。

3、安装SecretNote

SecretNote是类似Jupyter Notebook的方式来进行隐语的编程,最方便的方式还是采用docker,下面记录安装方式。

3.1 在线拉取镜像并启动容器

可以通过docker在线方式拉取SecretNote的镜像并启动容器。
首先新建一个docker-compose.yml文件,内容为

services:
  alice:
    image: 'secretflow/secretnote:1.5.0-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:1.5.0-amd64'
    platform: linux/amd64
    environment:
      - SELF_PARTY=bob
      - ALL_PARTIES=alice,bob
    ports:
      - 8092:8888
    entrypoint: /root/scripts/start.sh
    volumes:
      - /root/scripts

然后运行命令:

docker compose up -d 

即可,-d表示后台启动.
容器启动后就可以在浏览器中的localhost:8090进行访问,进而继续添加Alice和Bob节点,开始编程。

3.2 离线方式构建并启动容器

docker hub有时无法顺利的拉取镜像,即时是使用国内的源。那么可以使用离线下载镜像再启动容器的方式。
离线镜像下载链接,提取码:1hub

下载完成后,写一个Dockerfile文件,内容为:

FROM secretflow/secretnote:1.5.0-amd64

# 更新pip以避免潜在的版本冲突
RUN pip install --upgrade pip
 
# 安装matplotlib
#RUN pip install matplotlib -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

清华源比较好用一些,可以直接安装matplotlib。
然后同意写一个docker-compose.yml文件,内容如下:

services:
  alice:
    build: .
    platform: linux/amd64
    environment:
      - SELF_PARTY=alice
      - ALL_PARTIES=alice,bob
    ports:
      - 8090:8888
    entrypoint: /root/scripts/start.sh
    volumes:
      - /root/scripts
  bob:
    build: .
    platform: linux/amd64
    environment:
      - SELF_PARTY=bob
      - ALL_PARTIES=alice,bob
    ports:
      - 8092:8888
    entrypoint: /root/scripts/start.sh
    volumes:
      - /root/scripts

然后运行命令:

docker compose up -d 

容器启动后如图:

容器启动
这时就可以在浏览器中的localhost:8090进行访问,添加Alice和Bob节点,然后开始编程:

启动浏览器

至此,SecretNote安装和启动完毕。

离线方式参考链接:https://bbs.csdn.net/topics/618977738

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐