SecretFlow:一款功能强大的隐私保护数据分析和机器学习统一框架
2022-10-3 09:4:30 Author: FreeBuf(查看原文) 阅读量:10 收藏

 关于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.8conda 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开源许可证协议。   

  项目地址 

SecretFlowhttps://github.com/secretflow/secretflow

参考资料

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

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

精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651197829&idx=4&sn=634164eb315e699dd783d86050c6a582&chksm=bd1d830e8a6a0a184b99bcc81ad1021228f96975f0dc36e6509f81c5e96e36d4311cfc8b7aaf#rd
如有侵权请联系:admin#unsafe.sh