隐语环境搭建
隐语环境的搭建对硬件的基本的要求是
- CPU:8core
- RAM:16GB
软件上需要一个python3.8的环境,所以比较方便的是装一个conda。我在服务器上装的是anaconda,如果设备上没有conda具体安装方式可以参考ubuntu20.04安装anaconda。安装完成后在命令行依次输入以下命令
初始化conda
conda init
新建一个名为secretflow的虚拟环境,python版本指定为3.8
conda create -n secretflow python=3.8
进入虚拟环境
conda activate secretflow
安装完整版隐语
pip install -U secretflow
或者你也可以安装Lite版的隐语
pip install -U secretflow-lite
安装完毕以后可以尝试运行以下的python代码import隐语,如果python不报错就说明安装成功了
import secretflow as sf
隐语部署
secretflow提供了两种模式,仿真模式和生产模式。第一种支持单机/多机的代码验证模式,方便调试和debug;第二种就是真实的生产环境中使用的模式。
仿真模式-单机
下面这段代码是本地仿真模式的例子
import secretflow as sf
sf.init(parties=['alice','bob'], address='local')
alice=sf.PYU('alice')
bob=sf.PYU('bob')
alice(lambda x:x)(2)
bob(lambda x:x)(2)
仿真模式-集群(基于Ray)
填写主节点ip和端口(Alice)
ray start --head\
--node-ip-address="{ip}"--port="{port}"\
--resources='{"alice":16}'\
--include-dashboard=False\
--disable-usage-stats
从节点(Bob)
ray start\
--address="{alice的ip和port}"\
--resources="{"bob":16}"\
--include-dashboard=False\
--disable-usage-stats
生产模式
生产模式和仿真模式不同的地方在于,每一个参与方都必须有一个自己的独立Ray集群,也必须参与执行代码。
Alice端代码示例
import secretflow as sf
cluster_config={
'parties':{
'alice':{'address':'ip:port of alice'},
'bob':{'address':'ip:port of bob'},
},
'self_party':'alice',
}
sf.init(address='{Ray head node address of bob}',
cluster_config=cluster_config)