安装部署问题
问题1:bob节点的address,应该如何填写?# The address for other peers.'address': 'alice's ip:8881',# The listen address of this node.# Optional. Address will be used if listen_address is empty.解答:8881是ray的端口,请换一个没有被占用的端口
问题2:Win10系统创建的虚拟环境报错解答:Secretflow 暂不支持 Windows ,你可以用我们的 docker 镜像 来跑。Docker 安装可以看这里https://docs.docker.com/desktop/install/windows-install/
sf使用问题
问题1:请问Federated XGBoost这个函数内部有封装任何Secret Flow的隐私保护的算法吗?解答:目前的版本暂时不支持,后续的版本中会补充安全加强(secure_agg,spu_agg等)模块
问题2:逻辑回归的性能,同样的代码只是换了协议,semi2k需要8s,cheetah需要52s,这是为什么呢?cheetah在什么场景下使用有性能优势?解答:semi2k 是需要额外可信第三方的(如 TEE)去生成 随机数;而 cheetah 是纯两方的;如果部署上能支持 TEE 的话;大部分情况都是 semi2k 的性能更好。后续 Cheetah 的矩阵-乘法(应该)还会优化性能
问题3:secretflow支持边缘计算吗,例如边缘的计算节点,可以部署在边缘节点跟云交互吗?解答:隐语目前还是针对cross-silo场景,暂不支持边缘计算场景。
spu-heu使用问题
问题1:PPU和SPU是什么关系?解答:自2022年7月起,PPU 更名为 SPU, 这是我们品牌战略的一部分。感谢您对 SecretFlow 的关注。
问题2:heu是否有类似spu runtimeconfig的enable_action_trace开关解答:感谢关注 HEU 目前还没有引入编译器层,也没有引入 IR,因此没有 trace 开关,如果你对 HEU 感兴趣的话,可以参考文档https://heu.readthedocs.io/zh_CN/latest/getting_started/quick_start.html ,并结合 HEU 代码 (地址https://github.com/secretflow/heu/blob/beta/heu/library/phe/phe.h )
其他问题
问题1:一个secretflow node/服务器是否只能运行一个SPU device party解答:是的,目前SPU仅支持standalone模式(单个party内只有一个进程)
问题2:如何实现:ray网络的生命周期——Head高可用节点解答:需要首先创建ray集群,再执行任务。关于ray head HA,目前我们了解到的是ray有计划在支持HA,参见 https://github.com/ray-project/ray/issues/22833提到的Cluster Fault Tolerance。目前secretflow的主要使用方式是离线式计算任务,对HA的要求有限。
问题3:运行官方手册第三方psi时报错RayActorError Traceback (most recent call last) Input In [10], in <cell line: 3>() 1 input_path = {alice: '.data/alice.csv', bob: '.data/bob.csv', carol: '.data/carol.csv'} 2 output_path = {alice: '.data/alice_psi.csv', bob: '.data/bob_psi.csv', carol: '.data/carol_psi.csv'} ---->3 spu_3pc.psi_csv(['uid', 'month'], input_path, output_path, protocol='ecdh')解答:1、试着将https://secretflow.readthedocs.io/en/latest/tutorial/PSI_On_SPU.html 第9步替换为:sf.shutdown() sf.init(['alice', 'bob', 'carol'],num_cpus=8, log_to_driver=False) alice, bob,carol = sf.PYU('alice'), sf.PYU('bob'), sf.PYU('carol') spu_3pc = sf.SPU(sf.utils.testing.cluster_def(['alice', 'bob', 'carol']))2、请确保你正在使用最新的代码来build from source。
问题4:有没有纵向联邦回归算法的例子解答:Split Learning示例https://secretflow.readthedocs.io/en/latest/tutorial/Split_Learning_for_bank_marketing.html
问题5:spu是否有协议或者计算相关的日志解答:首先,你需要通过设置spu的config来开启相应的log:
- check enable_action_trace, enable_pphlo_trace 等一系列选项https://spu.readthedocs.io/en/beta/reference/runtime_config.html#runtimeconfig
- 具体如何设置,可以参考
https://github.com/secretflow/secretflow/issues/30#issuecomment-1181263227然后,你需要在secretflow init的时候打开log_to_driver,类似于import secretflow as sf sf.init(['alice', 'bob'], num_cpus=8, log_to_driver=True)
问题6:官方推理的示例解答:目前有离线推理的示例,比如Federate_Learning_for_Image_Classification,Split_Learning_for_bank_marketing中有提供model.evulate的使用示例。在线推理目前还没有。
问题7:SPU是否支持ABY3协议,如何切换SPU device的协议?解答:SPU device支持ABY3协议,只需要在init device的时候设置protocol即可。请参考https://spu.readthedocs.io/en/beta/reference/runtime_config.html#runtimeconfig 另外,请确保SPU device必须由三个节点组成的时候,才可以使用ABY3协议。
问题8:医保drg落地案例使用了什么隐私计算技术路线?解答:医保drg案例,使用了FL技术路线,使用了隐语横向联邦建模能力(数据维度一样,如多家医院有的就诊人、病种名、诊疗费用等特征维度;样本id不同,如多家医院的就诊人不同)隐语提供MPC+FL+TEE多种技术路线选择(MPC、FL已部分开源,TEE计划于22年底开源)
问题9:SS-LR/XGB和HESS-LR/XGB 的区别解答:sslr 使用secret sharing 求解梯度下降方向, ssxgb使用secret sharing 求样本分桶梯度加和。而 hess lr/xgb 使用同态加密进行上述操作。secret sharing对带宽和延迟比较敏感,而同态加密方案会消耗更多的cpu算力。是一种针对不同运算环境的折中:局域网/万兆环境下ss能更快的完成建模,带宽受限且延迟较高的公网环境可以用he提高建模速度 。其他部分运算逻辑和算法的安全设定基本一致。