隐语实训营-第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的安装和部署
638 3
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
2976 0
|
8月前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
1230 1
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
|
6月前
|
人工智能 安全 Dubbo
Spring AI 智能体通过 MCP 集成本地文件数据
MCP 作为一款开放协议,直接规范了应用程序如何向 LLM 提供上下文。MCP 就像是面向 AI 应用程序的 USB-C 端口,正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一个将 AI 模型连接到不同数据源和工具的标准化方法。
2776 66
|
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工具,实现多节点代码自动执行和跟踪。
|
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适合多节点代码的可视化执行,但不适用于生产环境。
213 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协议。
918 0
|
Ubuntu Docker 容器
隐语实训营 第四课 安装部署secretflow&secretnote
`secretflow`推荐使用Docker部署,尤其在WSL环境中。运行命令`docker run -it secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow-lite-anolis8:latest`启动。对于`secretnote`,编辑`docker-compose.yml`文件,配置Alice和Bob节点,然后执行`sudo docker-compose up -d`部署。访问http://localhost:8090/,设置Alice的IP为127.0.0.1:8888,Bob的IP为虚拟机以太网地址:8092,完成。
306 0
|
12月前
|
运维 安全 数据安全/隐私保护
隐语(SecretFlow)联邦学习实训营第一期笔记
**摘要:** 本文探讨了数据可信流通的概念,强调了数据来源确认、使用范围界定、流程追溯和风险防范的重要性。数据流通分为内循环(安全域内)和外循环(跨域),其中外循环面临黑客攻击、内部泄露和数据滥用等风险。为建立技术信任,提出了身份验证、利益对齐、能力预期和行为审计四点要求,涉及隐私计算、可信计算等技术。隐语作为隐私计算框架,提供服务以支持数据安全流通,通过开源降低接入门槛,并具备统一架构、原生应用、开放拓展、高性能和多轮安全验证等优势。开源隐语助力解决数据权属和信任问题,促进数据要素的安全流通。
|
人工智能 Python
隐私计算实训营 第1期-第4讲 快速上手隐语SecretFlow的安装和部署
文档改进建议:明确Ray, K3S, Kuscia与SecretFlow的关系;结构化部署文档,区分顺序步骤与选择分支;提供从零开始的详细部署教程,补充缺失的前置步骤说明。