freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

SecretFlow:一款功能强大的隐私保护数据分析和机器学习统一框架
2022-09-26 21:35:32
所属地 广西

关于SecretFlow

SecretFlow是一款功能强大的隐私保护数据分析和机器学习统一框架,为了实现框架功能,该工具实现了下列技术方法:

1、抽象设备层由封装了各种密码协议的普通设备和机密设备组成;

2、将高级算法建模为设备对象流和DAG的设备流层;

3、使用了水平或垂直分区数据进行数据分析和机器学习的算法层;

4、一个无缝集成数据处理、模型训练和超参数调整的工作流层;

工具体系架构和工作流

下图显示的是SecretFlow的整体架构:

下图显示的是SecretFlow的设备操作和对象流:

下图显示的是物理设备节点和逻辑设备节点:

下图显示的是该工具的逻辑计算图(设备流)和物理计算图:

工具安装

SecretFlow最简单的使用方法就是通过【官方Docker镜像】直接使用。除此之外,我们也可以直接通过源码来安装SecretFlow。

环境要求

1、Python:v3.8;

2、pip:>= v19.3;

3、OS:CentOS7或Ubuntu 18.04;

4、CPU/内存:至少8核16G;

选项1:通过PyPi安装

我们可以从PyPi获取最新版本的SecretFlow,注意,工具要求Python版本为v3.8,然后使用下列命令(conda)创建一个虚拟环境:

conda create -n sf python=3.8

conda activate sf

接下来,就可以使用pip来安装SecretFlow了:

pip install -U secretflow

选项2:通过Docker使用

我们可以从【这里】获取最新版本的SecretFlow Docker镜像:

export version={SecretFlow version}

例如:

export version=0.6.13b1

接下来运行镜像即可:

docker run -it secretflow/secretflow-anolis8:${version}

选项3:源码安装

下载工具源码并配置Python虚拟环境:

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

cd secretflow

 

conda create -n secretflow python=3.8

conda activate secretflow

安装SecretFlow:

python setup.py bdist_wheel

pip install dist/*.whl

工具测试

>>> import secretflow as sf

>>> sf.init(['alice', 'bob', 'carol'], num_cpus=8, log_to_driver=True)

>>> dev = sf.PYU('alice')

>>> import numpy as np

>>> data = dev(np.random.rand)(3, 4)

>>> data

<secretflow.device.device.pyu.PYUObject object at 0x7fdec24a15b0>

工具部署

SecretFlow可以部署到单独主机上或多个节点上。

独立模式

直接使用secretflow.init以独立模式运行SecretFlow:

>>> import secretflow as sf

>>> sf.init(['alice', 'bob', 'carol'], num_cpus=8, log_to_driver=True)

集群模式

开启头节点

开启一个头节点,标签为“alice”:

RAY_DISABLE_REMOTE_CODE=true \

RAY_SECURITY_CONFIG_PATH=config.yml \

RAY_USE_TLS=1 \

RAY_TLS_SERVER_CERT=servercert.pem \

RAY_TLS_SERVER_KEY=serverkey.pem \

RAY_TLS_CA_CERT=cacert.pem \

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

启动SecretFlow

>>> import secretflow as sf

# Replace with the `node-ip-address` and `port` of head node.

>>> sf.init(address='ip:port')

>>> 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>

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

SecretFlow:【GitHub传送门

参考资料

https://pypi.org/project/secretflow/

https://hub.docker.com/r/secretflow/secretflow-anolis8/tags

# 隐私安全 # 机器学习 # 隐私保护 # 敏感数据保护
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录