首页 > 其他分享 >[隐私计算学习笔记]4——SecretFlow与SecretNote的安装部署

[隐私计算学习笔记]4——SecretFlow与SecretNote的安装部署

时间:2024-06-15 18:33:28浏览次数:20  
标签:secretflow SecretFlow -- alice SecretNote 隐私 address bob Ray

目录

1. SecretFlow介绍

2. 安装(亲测)

2.1 运行要求

2.2 安装方式

2.2.1 方式一:docker镜像

2.2.2 方式二:pypi

2.2.3 方式三:源码安装

3. 部署

3.1 前置知识——SecretFlow和Ray

3.2 仿真模式——实现快速验证

3.2.1单机仿真

3.2.2 集群仿真

3.3 生产模式——实现安全生产

4.关于SecretNote

5. 小结


1. SecretFlow介绍

SecretFlow是一个隐私保护数据分析和机器学习的统一框架,提供:

  • 设备抽象,将多方安全计算(MPC)、同态加密(HE)、可信执行环境(TEE)等隐私计算技术抽象为密文设备,将明文计算抽象为明文设备。
  • 基于抽象设备的计算图,使数据分析和机器学习工作流程能够表示为计算图。
  • 基于计算图的机器学习/数据分析能力,支持数据水平/垂直/混合分割等场景。

2. 安装(亲测)

        详细信息移步 SecretFlow开发者文档

2.1 运行要求

  • Python >= 3.8
  • 操作系统:CentOS 7 / Anolis8 / Ubuntu (18.04、20.04)/ macOS 11.1+ / WSL2
  • 资源:≥ 8核16GB

    本人配置:Python 3.8Ubuntu 18.0412处理器内核内存20GB

2.2 安装方式

    推荐使用Anaconda进行环境管理,创建虚拟环境过程本文不赘述。

2.2.1 方式一:docker镜像

  • 完全版本
docker run -it secretflow/secretflow-anolis8:latest

阿里云:

docker run -it secretflow-registry.cnhangzhou.cr.aliyuncs.com/secretflow-anolis8:latest

  • Lite版本
docker run -it secretflow/secretflow-lite-anolis8:latest

阿里云:

docker run –it secretflow-registry.cnhangzhou.cr.aliyuncs.com /secretflow-lite-anolis8:latest

2.2.2 方式二:pypi

  • 完全版本
pip install -U secretflow
  • Lite版本
pip install -U secretflow-lite

2.2.3 方式三:源码安装

Step1:下载源码

git clone https://github.com/secretflow/secretflow.git
cd secretflow

Step2:安装

  • 完全版本
python setup.py bdist_wheel

pip install dist/*.whl
  • Lite版本 
python setup.py bdist_wheel --lite

pip install dist/*.whl

测试SecretFlow是否安装成功,如下图安装成功显示:

3. 部署

3.1 前置知识——SecretFlow和Ray

  • Ray集群由一个主节点和零或若干个从节点组成。

“Ray is an open-source unified framework for scaling AI and Python applications like machine learning. It provides the compute layer for parallel processing so that you don’t need to be a distributed systems expert." 

        详细信息移步  Ray开发者文档

  • SecretFlow使用Ray作为分布式计算调度框架。

3.2 仿真模式——实现快速验证

特性:

  • 适合仿真实验,验证代码效果
  • 支持单机仿真、多机仿真
  • 只需执行一次代码

3.2.1单机仿真

        使用 secretflow.init 在单机模式下运行SecretFlow。该模式会直接启动只有一个节点的ray集群,并且当程序退出时会自动关闭。

示例:单个节点模拟alice、bob两个参与方

>>> import secretflow as sf
>>> sf.init(parties=['alice', 'bob'], address='local')
>>> alice = sf.PYU('alice')
>>> bob = sf.PYU('bob')
>>> alice(lambda x : x + 1)(2)
<secretflow.device.device.pyu.PYUObject object at 0x7fe932a1a640>
>>> bob(lambda x : x - 1)(2)
<secretflow.device.device.pyu.PYUObject object at 0x7fe6fef03250>

3.2.2 集群仿真

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

示例:部署两个节点,分别模拟alice、bob两个参与方 

        Step1:在第一台机器上部署Ray主节点,模拟参与方alice(自行填写主节点ip和port)

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

        Step2: 在第二台机器上部署Ray从节点,模拟参与方bob

ray start --address="{Ray主节点的通信地址}" --resources=' {"bob": 16} '  --disable-usage-stats

        Step3:执行Python代码

>>> import secretflow as sf
>>> sf.init(parties=['alice', 'bob'], address='{Ray主节点的通信地址}')
>>> alice = sf.PYU('alice')
>>> bob = sf.PYU('bob')
>>> alice(lambda x : x)(2)
<secretflow.device.device.pyu.PYUObject object at 0x7fe932a1a640>
>>> bob(lambda x : x)(2)
<secretflow.device.device.pyu.PYUObject object at 0x7fe6fef03250>

3.3 生产模式——实现安全生产

特性:

  • 从仿真模式到生产模式只需极少量代码修改
  • 适合生产使用
  • 安全性增强
  • 每一个参与方都是独立的Ray集群
  • 需要每个参与方都执行代码

示例:部署两个节点,分别模拟alice、bob两个参与方

        Step1: 在第一台机器上部署Ray主节点,模拟参与方alice

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

         Step2: 在第二台机器上部署Ray主节点,模拟参与方bob

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

        Step3:alice执行Python代码

注:

  • cliuster_config中的address分别填写alice/bob的通信地址(不要和Ray的端口冲突)
  • cluster_config中的self_party为alice
  • sf.init中的address填写alice的Ray主节点ip和port
import secretflow as sf
cluster_config ={
    'parties': {
        'alice’: {'address': 'ip:port of alice'},
        'bob': {'address': 'ip:port of bob'},
    },
    'self_party': 'alice',
}

sf.init(address='{Ray head node address of alice}',cluster_config=cluster_config)

        Step4:bob执行Python代码

注:

  • cliuster_config中的address分别填写alice/bob的通信地址(不要和Ray的端口冲突)
  • cluster_config中的self_party为bob
  • sf.init中的address填写bob的Ray主节点ip和port
import secretflow as sf
cluster_config ={
    'parties': {
        'alice’: {'address': 'ip:port of alice'},
        'bob': {'address': 'ip:port of bob'},
    },
    'self_party': 'bob',
}

sf.init(address='{Ray head node address of bob}',cluster_config=cluster_config)

注:生产模式中可以使用KUSCIA解决多端口问题,KUSCIA屏蔽不同机构间基础设施的差异,为跨机构协作提供丰富且可靠的资源管理和任务调度能力。

4.关于SecretNote

        生产模式中需要各参与方独立执行代码,SecretNote提供同一页面执行多方代码功能,实现“单操作界面,多节点执行”,同时还可以进行多节点代码运行跟踪,提升用户体验。

        SecretNote作为工具,其安装部署及使用请参考如下资源:

5. 小结

        本篇文章详细介绍了SecretFlow的安装部署方式,并实际应用使读者可以快速上手,熟悉操作流程。同时针对SecretFlow高级工具套件SecretNote进行简要介绍,但为了文章可读性,该工具的详细安装部署流程未在本文体现,请读者按需移步相关开发文档。

(PS:感谢您读完,坚持不易,谢谢大家支持!)

标签:secretflow,SecretFlow,--,alice,SecretNote,隐私,address,bob,Ray
From: https://blog.csdn.net/weixin_42551843/article/details/139703984

相关文章

  • 隐语课程学习笔记5-隐私保护机器学习算法概要
    隐语课程第5课,简单介绍了隐语的算法能力,包括预处理、隐私求交、决策树模型、线性回归模型、神经网络模型,并且支持数据水平切分(横向联邦)、垂直切分(纵向联邦)、混合切分(横纵向联邦)。隐语提供了包括对DataFrame的封装,以及提供联邦ndarray的封装,和python的使用基本一致,上手较快,比......
  • 安全防护与隐私保护:淘宝在线扭蛋机用户数据安全的深度解析
    淘宝在线扭蛋机作为一种集购物与娱乐于一体的新型平台,用户数据的安全性至关重要。本文将深入探讨如何采取有效措施,确保在线扭蛋机用户数据的安全性,防止数据泄露和滥用。一、构建多层次安全防护体系为了应对复杂的网络安全威胁,我们将构建多层次的安全防护体系。这包括网络层......
  • <方块二消>小游戏隐私协议
    <方块二消>小游戏隐私协议欢迎您使用<臣妾要告发熹贵妃工作室>开发的<方块二消>小游戏!在使用本游戏之前,请您仔细阅读以下隐私协议。个人信息的收集与使用1为了提供更好的游戏体验和服务,我们可能会收集一些您的个人信息,例如您的设备标识符、操作系统版本、游戏进度等。2我们承......
  • 隐私计算开源助力数据要素流通
    主讲老师:李宏宇课程链接:第2讲:隐私计算开源助力数据要素流通丨隐私计算实训营第2期_哔哩哔哩_bilibili 1、数据要素流转与数据内外循环     这是数据的生命周期也是数据流转的链路图,我们可以发现数据流转可以分为数据采集加工和数据价值释放两个部分,而数据价值......
  • 苹果将推出“Apple Intelligence”AI系统,专注于隐私和广泛应用|TodayAI
    据彭博社报道,苹果公司将在下周的 WWDC2024 开发者大会上揭晓其全新的AI系统——“AppleIntelligence”,该系统将适用于iPhone、iPad和Mac设备。这一新系统将结合苹果自身技术和OpenAI的工具,为用户提供一系列新的AI功能,同时重点关注隐私保护和广泛应用。与其他......
  • Coolmuster iOS 数据擦除:隐私保护的终极方案
    手机和平板电脑是我们不可或缺的伙伴,它们存储着我们的照片、联系人、私人消息以及工作文件。然而,当这些设备需要更换或者出售时,如何确保存储在其中的数据不被他人恢复和滥用,成为了一个严峻的问题。CoolmusteriOS数据擦除,一款专为iOS用户设计的应用程序,提供了一种安全、彻底的......
  • 隐私计算资料汇总
    1.隐私计算体系隐私计算体系是一个涉及多个技术和方法集合的系统,旨在在保护数据隐私的同时实现数据分析和计算。以下是对隐私计算体系的清晰分点表示和归纳:一、隐私计算的定义隐私计算(PrivacyComputing)是一种面向隐私信息全生命周期保护的计算理论和方法,它涉及在数据所有权......
  • 盲盒小程序用户隐私保护策略探讨
    一、引言随着盲盒小程序的普及,用户隐私保护和数据安全问题愈发凸显其重要性。在这个数字化时代,用户信息的泄露和滥用可能导致严重的后果。因此,本文将探讨盲盒小程序中如何有效保护用户隐私,确保用户信息的安全。二、用户隐私保护的重要性用户隐私保护不仅关乎用户的个人权益......
  • 苹果电脑如何清理最近打开的文稿记录 Mac如何移除浏览痕迹保护隐私
    日常使用苹果电脑的过程中,我们经常会打开各种文稿,浏览网页等操作。然而,这些操作可能会留下一些记录,涉及到个人隐私和数据安全问题。下面我们来看看苹果电脑如何清理最近打开的文稿记录,Mac如何移除浏览痕迹保护隐私的相关内容。一、苹果电脑如何清理最近打开的文稿记录苹果电......
  • 负责任的人工智能:新技术如何尊重数据隐私?
    微信搜索关注公众号网络研究观获取更多。今年早些时候,欧洲议会议员批准了欧盟的《人工智能法案》,这是支持负责任地使用人工智能的立法领域的一个重要里程碑。 目标是推动以人为本、值得信赖的人工智能的应用,同时支持创新。该法案的主要要求包括:●禁止将人工智能技术......