隐语实训营-第4讲:SecretFlow和SecretNote的安装

简介: 介绍secretflow及其可视化工具secretfNote的安装,课程链接:https://www.bilibili.com/video/BV161421S7xY/?spm_id_from=333.999.0.0 下:https://www.bilibili.com/video/BV12r421t77V/?spm_id_from=333.999.0.0

SecretFlow的安装

说明一下,本人使用的是WSL2安装的

  1. conda的安装
    #下载anaconda
    wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh --no-check-certificate
    #安装anaconda
    bash Anaconda3-2022.10-Linux-x86_64.sh
    source ~/.bashrc
    
    在命令行输入'conda',查看环境是否安装好:
    1711271520988.png
  2. 创建conda虚拟环境
 conda create -n secretflow python=3.9

1711271611905.png
3.使用虚拟环境安装SecretFlow

#激活虚拟环境
conda activate secretflow
#安装secretflow(建议安装secretflow-lite,secretflow太大了)
pip install -U secretflow-lite -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

验证安装成功:
1711292509216.png
4.仿真模式
单机仿真

import secretflow as sf
sf.init(parties=['alice', 'bob'], address='local')
alice = sf.PYU('alice')
bob = sf.PYU('bob')
print(alice(lambda x:x+1)(2))
print(bob(lambda x:x-1)(2))

1711292909720.png
集群仿真

#启动主节点
ray start --head --node-ip-address="127.0.0.1" --port="8080" --resources='{"alice": 16}' --include-dashboard=False --disable-usage-stats

1711293244189.png

#启动从节点
ray start --address="127.0.0.1:8080" --resources='{"bob": 16}' --disable-usage-stats

1711295441741.png

import secretflow as sf
sf.init(parties=['alice', 'bob'], address='127.0.0.1:8080')
alice = sf.PYU('alice')
bob = sf.PYU('bob')
print(alice(lambda x:x)(2))
print(bob(lambda x:x)(2))

1711295615937.png
集群模式下启动SPU

import spu
import secretflow as sf
sf.init(parties=['alice', 'bob'], address='127.0.0.1:8080')

cluster_def={
    'nodes': [
        {
            'party': 'alice',
            # Please choose an unused port.
            'address': '127.0.0.1:8081',
            'listen_addr': '127.0.0.1:8081'
        },
        {
            'party': 'bob',
            # Please choose an unused port.
            'address': '127.0.0.1:8082',
            'listen_addr': '127.0.0.1:8082'
        },
    ],
    'runtime_config': {
        'protocol': spu.spu_pb2.SEMI2K,
        'field': spu.spu_pb2.FM128,
        'sigmoid_mode': spu.spu_pb2.RuntimeConfig.SIGMOID_REAL,
    }
}

spu = sf.SPU(cluster_def=cluster_def)
print(spu)

1711296198028.png
5.生产模式
在两台机器(我是用docker模拟的)启动一个cluster,主节点为bob:

ray start --head --node-ip-address="127.0.0.1" --port="8090" --resources='{"bob": 16}' --include-dashboard=False --disable-usage-stats

1711296556246.png

import spu
import secretflow as sf

cluster_config={
    'parties':{
        'alice':{'address':'127.0.0.1:8080'},
        'bob':{'address':'172.17.0.2:8090'}
    },
    'self_party':'alice'
}
sf.init(address='172.17.0.2:8090',cluster_config=cluster_config)

1711297613437.png

SecretNote的安装

只是一个可视化界面,不做详细功能介绍了,能打开可视化界面就行
1.启动容器
创建docker-compose.yml文件

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

启动两个镜像

docker compose up

2.可视化界面效果展示
注意使用自己的ip而不是127.0.0.1
1711300538221.png
安装并将两个节点加入secretNote后,可参照psi_example完成psi任务,PSI效果展示:
image.png

相关文章
|
Ubuntu 调度 Docker
2024.3.21隐语训练营第4讲笔记:SecretFlow & SecretNote安装部署
本文介绍了SecretFlow和SecretNote的安装和部署
716 3
|
Java API 微服务
Java 后台开发的新趋势与应用
【4月更文挑战第5天】Java 后台开发正经历变革,新兴趋势包括:微服务架构(Spring Boot/Spring Cloud)、容器化(Docker/Kubernetes)、响应式编程(Reactor、RxJava、Spring WebFlux)、函数即服务(FaaS)、无服务器架构、API First 开发、自动化测试/CI/CD 和 AI/ML 集成。这些趋势提升效率,简化运维,强化系统响应性,为开发者创造更多可能性。
253 6
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
3248 0
|
2月前
|
存储 BI API
一文读懂数据中台和数据仓库的区别
本文深入解析了“数据中台”与“数据仓库”的区别,从定义、功能、架构设计、数据处理、应用场景等多个维度进行对比,帮助企业更清晰地理解二者的核心差异与适用场景。数据仓库重在存储与分析历史数据,服务于高层决策;数据中台则强调数据的实时处理与服务化输出,直接赋能一线业务。文章还结合企业规模、业务需求与技术能力,给出了选型建议,助力企业在数字化转型中做出更科学的选择。
|
10月前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
1439 1
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
|
8月前
|
人工智能 安全 Dubbo
Spring AI 智能体通过 MCP 集成本地文件数据
MCP 作为一款开放协议,直接规范了应用程序如何向 LLM 提供上下文。MCP 就像是面向 AI 应用程序的 USB-C 端口,正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一个将 AI 模型连接到不同数据源和工具的标准化方法。
3587 107
|
Ubuntu Linux Docker
课4-隐语SecretFlow、SecretNote安装部署
SecretFlow是支持Python 3.8及以上版本的隐私计算框架,兼容CentOS 7、Anolis8、Ubuntu 18.04等等。它提供两种安装包:所有需求的大体积`secretflow`和仅含基础功能的小体积`secretflow-lite`。用户可通过Docker、pip或源码安装。安装后,可使用Docker镜像在本地部署,并通过Ray进行集群仿真。更多详细信息和部署指南可在官方手册中找到。此外,SecretFlow还提供了类似Jupyter Notebook的SecretNote工具,实现多节点代码自动执行和跟踪。
|
10月前
|
机器学习/深度学习 自然语言处理 搜索推荐
探索深度学习中的注意力机制及其在现代应用中的影响
探索深度学习中的注意力机制及其在现代应用中的影响
243 1
|
算法 安全 大数据
隐私计算实训营第5讲-------隐私求交和隐语PSI介绍以及开发实践
隐私求交(Private Set Intersection, PSI)是利用密码学技术在不暴露数据集以外信息的情况下找到两集合的交集。隐语SPU支持三种PSI算法:ECDH(适合小数据集)、KKRT(基于Cuckoo Hashing和OT Extension,适合大数据集)和BC22PCG(使用伪随机相关生成器)。ECDH基于椭圆曲线 Diffie-Hellman,KKRT利用OT Extension实现高效处理,而BC22PCG通过压缩满足特定相关性的随机数减少通信量。此外,还有基于Oblivious Pseudo-Random Function (OPRF)的PSI协议。
1122 0
|
Ubuntu 数据可视化 Docker
第4讲笔记:SecretFlow & SecretNote安装部署
安装SecretFlow需在Ubuntu虚拟机上用Anaconda创建Python 3.8环境,名称为secretflow,然后在环境中运行`conda create -n secretflow python=3.8`,`source activate secretflow`和`pip install -U secretflow`。SecretFlow部署可选仿真或生产模式。仿真模式包括单机(模拟Alice、Bob)和集群仿真,生产模式涉及多节点部署,注意各节点间的通信配置。SecretNote适合多节点代码的可视化执行,但不适用于生产环境。
247 1