社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

SecretFlow:一款功能强大的隐私保护数据分析和机器学习统一框架

FreeBuf • 2 年前 • 329 次点击  

 关于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
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)
0x7fe932a1a640>
>>> bob(lambda x : x)(2)
0x7fe6fef03250>

(向右滑动,查看更多)


 许可证协议 


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


  项目地址 


SecretFlowhttps://github.com/secretflow/secretflow


参考资料

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


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



精彩推荐








Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/147856
 
329 次点击