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;
我们可以从PyPi获取最新版本的SecretFlow,注意,工具要求Python版本为v3.8,然后使用下列命令(conda)创建一个虚拟环境:
conda create -n sf python=3.8 conda activate sf
接下来,就可以使用pip来安装SecretFlow了:
pip install -U secretflow
我们可以从【这里】获取最新版本的SecretFlow Docker镜像:
export version={SecretFlow version}
例如:
export version=0.6.13b1
接下来运行镜像即可:
docker run -it secretflow/secretflow-anolis8:${version}
下载工具源码并配置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可以部署到单独主机上或多个节点上。
直接使用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)>>> bob(lambda x : x)(2)
本项目的开发与发布遵循Apache-2.0开源许可证协议。