隐私计算实训营第四讲-SecretFlow 环境安装与部署

SecretFlow 环境安装与部署

SecretFlow环境的安装和部署指南,包括仿真模式和生产模式的配置方法。

1. 环境安装

要安装SecretFlow环境,请按照以下步骤操作:

1.1 创建并激活Conda环境

  1. 创建名为 sf 的新Conda环境,并指定Python版本为3.8:

    conda create -n sf python==3.8
    
  2. 激活新创建的 sf 环境:

    conda activate sf
    

1.2 安装SecretFlow库

在激活的Conda环境中,使用pip安装SecretFlow库:

pip install -U secretflow

2. 部署模式

SecretFlow支持两种部署模式:仿真模式和生产模式。两者的对比如下表所示。

部署模式场景如何部署Ray如何运行代码代码差异
仿真模式单机构内部局域网环境下的仿真实验。由多个仿真节点组成的单个Ray集群。选择任一节点执行一遍代码。sf.init 中填写 parties 参数。
生产模式正式生产环境,比如多个机构协作。每个机构都需要独立部署各自的Ray集群。每个机构都需要同时执行代码。sf.init 中填写 cluster_config 参数,剩余代码与仿真模式完全一样。

2.1 仿真模式

仿真模式适用于单机构内部局域网环境下进行仿真实验,包括单机仿真和集群模式仿真。

2.1.1 单机仿真

单机仿真模式下,使用以下代码在本地环境启动SecretFlow仿真:

在这里插入图片描述

2.1.2 集群模式仿真

在隐语的集群仿真模式下,每个Ray节点模拟一个机构,具体做法是通过给每个Ray节点添加机构名称标记,从而保证机构的计算被调度到相应的Ray节点上。 整体通信网络如下。

在这里插入图片描述

集群模式仿真允许在多个节点上进行仿真,模拟多机构环境。首先,在一台机器上启动主节点,然后在其他机器上启动更多节点并加入主节点构成的集群。

启动主节点

在第一台机器上,执行以下命令启动带有“alice”标识的主节点:

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

在另一台机器上,执行以下命令启动带有“bob”标识的节点,该节点会自动连接到主节点并加入集群:

ray start --address="127.0.0.1:9001" --resources='{"bob": 16}' --disable-usage-stats

当屏幕输出中出现 “Ray runtime started.” 意味着节点启动成功。现在由两个Ray节点构成的Ray集群已经搭建完毕。其中,头节点模拟机构alice,从节点模拟机构bob。你也可以继续重复上述步骤以启动带有其他参与方标识的节点

在这里插入图片描述

启动SecretFlow

现在你可以启动SecretFlow。下面这段代码表示alice和bob分别执行了一个返回输入值的函数。

提示

  1. 请使用主节点的 node-ip-addressport 填充 sf.initaddress 参数。
  2. 如果你启动了更多的节点(比如carol、davy等),记得在parties=['alice', 'bob']参数中添加新的参与方名称。

在这里插入图片描述

2.2 生产模式

生产模式适用于正式的生产环境,尤其是多个机构需要协作的场景。在生产模式下,每个参与方都需要独立部署自己的Ray集群,并且所有参与方需要同时运行代码。 与此同时,每一个参与方都要同时执行代码,才能完成任务的协作 。生产模式的架构如下图所示。

在这里插入图片描述

2.2.1 创建跨机构的SecretFlow集群

提示

  1. 请使用主节点的 node-ip-addressport 填充 sf.initaddress 参数。
  2. aliceaddress 请填写可以被bob访通的地址,并且选择一个 未被占用的端口 ,注意不要和Ray和SPU的端口冲突。
  3. bobaddress 请填写可以被alice访通的地址,并且选择一个 未被占用的端口 ,注意不要和Ray和SPU的端口冲突。
  4. 注意 self_party 为 自己 。
  5. 请注意sf.init不需要提供 parties 参数,而是需要提供 cluster_config 来描述两个机构之间的通信地址和端口。
  6. 为了确保alice和bob的端口能够被对方访问同时系统的防火墙不被关闭,您应该把alice和bob的IP地址加入到对方的IP白名单
  7. telnet 命令通常用于测试端口的可访问性。
在alice节点上启动SecretFlow
  1. Alice首先启动自己的Ray集群。
  2. 使用集群配置初始化SecretFlow,self_party字段修改为alice并运行代码。确保cluster_config参数正确配置,包括各参与方的通信地址和端口。
cluster_config = {
    'parties': {
        'alice': {'address': 'ip:port of alice', 'listen_addr': '0.0.0.0:port'},
        'bob': {'address': 'ip:port of bob', 'listen_addr': '0.0.0.0:port'}
    },
    'self_party': 'alice'
}
sf.init(address='alice ray head node address', cluster_config=cluster_config)
# 在这里运行你的代码

在bob节点上启动SecretFlow
  1. Bob首先启动自己的Ray集群,使用类似于alice节点的命令。
  2. Bob使用和Alice类似的集群配置初始化SecretFlow,self_party字段修改为bob,然后运行代码。
cluster_config = {
    'parties': {
        'alice': {'address': 'ip:port of alice', 'listen_addr': '0.0.0.0:port'},
        'bob': {'address': 'ip:port of bob', 'listen_addr': '0.0.0.0:port'}
    },
    'self_party': 'bob'
}
sf.init(address='bob ray head node address', cluster_config=cluster_config)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/483607.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

#Linux(SSH软件安装及简单使用)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)终端键入(root权限)安装 apt-get install openssh-server 安装时遇到报错 E: Could not get lock /var/lib/dpkg/…

LeetCode---389周赛

题目列表 3083. 字符串及其反转中是否存在同一子字符串 3084. 统计以给定字符开头和结尾的子字符串总数 3085. 成为 K 特殊字符串需要删除的最少字符数 3086. 拾起 K 个 1 需要的最少行动次数 一、字符串及其反转中是否存在同一子字符串 直接暴力枚举即可,代码…

网络行为管理系统招标模板

项目名称:网络行为管理系统招标 一、项目背景 随着信息技术的迅猛发展,网络安全和数据保护已成为企业和组织面临的关键挑战。为了确保网络环境的安全、合规,并实现对网络行为的有效管理和审计,我们特此启动网络行为管理系统的招…

maya打开bvh脚本

目录 maya打开脚本编辑器 运行打开bvh脚本 maya导出bvh脚本 maya打开脚本编辑器 打开Maya软件,点击右下角 “脚本编辑器” 运行打开bvh脚本 https://github.com/jhoolmans/mayaImporterBVH/blob/master/bvh_importer.py import os import re from typing impo…

OD C卷 - 反射计数

反射计数(200) 给定一个包含0 、1的二维矩阵;一个物体从给定的初始位置出发,在给定的速度下移动,遇到矩阵的边缘则发生镜面反射,无论物体经过0还是1,都不影响其速度;经过t时间单位后…

学习次模函数-第2章 定义

纵观本专著,我们认为及其幂集(即, 所有子集的集合),其基数为。我们也考虑一个实值集函数,使得。 与凸函数的一般约定相反(见附录A),我们不允许函数有无穷大的值。 次模分…

文件包含一-WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒

演示案例: 文件包含-原理&分类&利用&修复黑盒利用-VULWEB-有无包含文件白盒利用-CTFSHOW-伪协议玩法 #文件包含-原理&分类&利用&修复 1、原理 程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时&#xff0c…

基于物理的实时渲染 -- PBR

简介 PBR,或者用更通俗一些的称呼是指基于物理的渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。正因为基于物理的渲染目的便是为了使用一种更符合物理学规律的方式来模…

面试题(二)

目录 21.JVM中哪些是线程共享区 22.你们项⽬如何排查JVM问题 23.⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程? 24.怎么确定⼀个对象到底是不是垃圾? 25.GC Root 是什么? 26.JVM有哪些垃圾回收算法? 27.…

RabbitMQ 01

01.定义 02.功能

18个西语常用前置词用法大全,柯桥西班牙语培训

西语词类有九种:名词、冠词、形容词、代词、动词、副词、感叹词、前置词和连接词。 其中,“前置词”也就是我们俗称的“介词”,它是一种不变词类,本身没有独立的词汇意义,在句中与名词、形容词、动词等连用&#xff0…

BM43 包含min函数的栈(Stack)

import java.util.*; import java.util.Stack;public class Solution {Stack<Integer> s1 new Stack<Integer>();//存最小的元素Stack<Integer> s2 new Stack<Integer>();public void push(int node) {s1.push(node);if(s2.isEmpty() || s2.peek() &…

2024-03-23 问AI: 介绍一下深度学习中的ReLU函数

文心一言 ReLU&#xff08;Rectified Linear Unit&#xff09;函数是深度学习领域中常用的一种激活函数。它具有简单、计算高效且在某些情况下能有效缓解梯度消失问题等优点&#xff0c;因此在神经网络中得到了广泛的应用。 ReLU函数的定义非常简单&#xff0c;其数学表达式为…

Element Plus 基本使用

一、概述 1.1介绍 Element Plus 基本使用 element-ui 是基于vue 开发的一套ui组件库&#xff0c;提供丰富的网页开发组件&#xff0c;可用快速开发网站&#xff0c;降低前端开发成本版本 element目前有两个版本 element-ui&#xff1a;基于vue2element-plus: 基于vue3 官网地址…

2-dubbo源码 : 源码环境搭建

好的开始是成功的一半&#xff0c;阅读源码也是一样。 很多同学在下定决心阅读一个开源框架之后&#xff0c;就一头扎进去&#xff0c;迷失在代码“迷宫”中。此时&#xff0c;有同学意识到&#xff0c;需要一边 Debug 一边看&#xff1b;然后又有一批同学在搭建源码环境的时候…

鸿蒙一次开发,多端部署(十五)常见问题

如何查询设备类型 设备类型分为default&#xff08;默认设备&#xff09;、tablet、tv、wearable、2in1等&#xff0c;有多种查询设备类型的方式。 通过命令行的方式查询设备类型。 通过命令行查询指定系统参数&#xff08;const.product.devicetype&#xff09;进而确定设备…

Java基础-常用类

文章目录 1.Math类2.System类1.exit代码 结果2.arraycopy参数解释代码结果 3.currentTimeMillens代码结果 3.大数处理方案基本介绍BigInteger类介绍代码结果 BigDecimal类介绍代码结果 4.日期类对于IDEA类图中的属性![image-20240101190844530](https://img-blog.csdnimg.cn/im…

能降低嵌入式系统功耗的三个技术

为电池寿命设计嵌入式系统已经成为许多团队重要的设计考虑因素。优化电池寿命的能力有助于降低现场维护成本&#xff0c;并确保客户不需要不断更换或充电电池&#xff0c;从而获得良好的产品体验。 团队通常使用一些标准技术来提高电池寿命&#xff0c;例如将处理器置于低功耗…

RIPGeo代码理解(六)main.py(运行模型进行训练和测试)

​代码链接:RIPGeo代码实现 ├── preprocess.py # 预处理数据集并为模型运行执行IP聚类 ├── main.py # 运行模型进行训练和测试 ├── test.py #加载检查点,然后测试 一、导入各种模块和数据库 import torch.nnfrom lib.utils import * import argparse i…

162、应急响应——网站入侵篡改指南Webshell内存马查杀漏洞排查时间分析

文章目录 IIS&.NET—注入—基于时间配合日志分析Apache&PHP—漏洞—基于漏洞配合日志分析Tomcat&JSP—弱口令—基于后门配合日志分析查杀常规后门查杀内存马 需要了解&#xff1a; 异常检测、处置流程、分析报告等 网站被入侵会出现异常&#xff1a;流量异常、防护…