首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SecretFlow:一款功能强大的隐私保护数据分析和机器学习统一框架

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

作者头像
FB客服
发布于 2022-11-14 15:48:53
发布于 2022-11-14 15:48:53
1.5K0
举报
文章被收录于专栏:FreeBufFreeBuf

关于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)创建一个虚拟环境:

代码语言:javascript
复制
conda create -n sf python=3.8
conda activate sf

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

代码语言:javascript
复制
pip install -U secretflow

选项2:通过Docker使用

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

代码语言:javascript
复制
export version={SecretFlow version}

例如:

代码语言:javascript
复制
export version=0.6.13b1

接下来运行镜像即可:

代码语言:javascript
复制
docker run -it secretflow/secretflow-anolis8:${version}
(向右滑动,查看更多)

选项3:源码安装

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

代码语言:javascript
复制
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:

代码语言:javascript
复制
python setup.py bdist_wheel

pip install dist/*.whl

工具测试

代码语言:javascript
复制
>>> 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:

代码语言:javascript
复制
>>> import secretflow as sf

>>> sf.init(['alice', 'bob', 'carol'], num_cpus=8, log_to_driver=True)
(向右滑动,查看更多)

集群模式

开启头节点

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

代码语言:javascript
复制
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

代码语言:javascript
复制
>>> 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:https://github.com/secretflow/secretflow

参考资料

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 关于SecretFlow
  • 工具体系架构和工作流
  • 工具安装
    • 环境要求
    • 选项1:通过PyPi安装
    • 选项2:通过Docker使用
    • 选项3:源码安装
    • 工具测试
  • 工具部署
    • 独立模式
    • 集群模式
  • 许可证协议
  • 项目地址
  • 参考资料
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档