隐语社区【提问解答】 第1期

简介: 隐语社区【提问解答】 第1期


收录于合集#社区问答6个


安装部署问题


问题1:

pip安装secretflow、tensorflow、pytorch速度慢

解答:

可以挂个国内的源会快一点,因为底层依赖了tf和pytorch做backend,不安装会导致没法用


问题2:

pip安装secretflow报spu找不到

解答:

1. 需要确认环境是不是符合要求:

https://spu.readthedocs.io/en/beta/getting_started/install.html#environment

2. 用的国内的pypi源, 尝试用官方源

pip install -i https://pypi.org/simple/ spu


问题3:

安装过程中import secretflow报错

tensorflow/stream_executor/platform/default/do_loader.cc:64] Could not Toad dynamic library "Tibcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared obiect file: No such file or directory

解答:

直接 ignore


问题4:

执行以下操作时,显示无法连接到位于 192.168.137.4:6379 的 GCS

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="192.168.137.4" --port="6379"

--resources='{"alice": 8}' --include-dashboard=False --disable-usage-stats

解答:

应该是自签证书不对导致的。如果只是测试的话,可以把mTLS双向认证关闭,即将RAY_USE_TLS设置为0。参考这个教程生成自签证书,尤其注意将alternate_names设置为主机IP地址,X509证书会对Subject Alternative Name进行校验


问题5:

服务器内存2g,安装报错。

解答:

2g内存有点过低,建议扩大后重试。隐语的最低推荐配置为8C16G。



sf使用问题


问题1:

secretflow验证可信性

解答

SecretFlow的整体设计思想是把数据提供方,计算方抽象成逻辑设备PYU、SPU、HEU、TEE,用户在逻辑设备上进行编程,构建出一张逻辑计算图。在这张计算图中,当发生跨设备数据流动的时候,就会按照(源设备,目标设备)预定的转换协议对数据进行转换。


问题2:

secretflow支持arm架构的m1芯片mac电脑吗

解答:

目前该能力在内部测试中,我们会力所能及支持m1 mac。


问题3:

找不到满足要求的spu版本。

ERROR: Could not find a version that satisfies the requirement spu==0.1.0b1

解答:

请使用官方 docker 镜像:

https://github.com/secretflow/spu#docker


spu-heu使用问题


问题1:

“安全聚合模块”和“定义函数编译生成静态计算图”两种达到聚合的效果有什么不同

解答:

三角函数和双曲函数里现在暂时只实现了 tanh,其他会在后续迭代中陆续添加。jax numpy 大体上的支持情况可以看一下这个测试文件:

https://github.com/secretflow/spu/blob/beta/spu/binding/tests/jnp_testbase.py


问题2:

HEU只支持半同态的加密算法吗

解答:

目前是只支持半同态算法,全同态算法在规划中,但暂时还没有具体的发布计划


问题3:

heu和spu之间的转换协议考虑:spu到heu,直接对share加密,对arithemetic share是可以的吗?

解答:

是的,直接在Share上加密和转化,中间不会reconstruction,对Arithmetic Share是可以的。


问题4:

spu到heu的转换之后不对称,怎么决定谁是秘钥拥有方,是否可配置

解答:

算法实现者需要手动指定密钥拥有方,这个是可配置的。


问题5:

heu里支持的半同态算法

解答:

Paillier


问题6:

在带有 SPU 的神经网络中如何使用 3PC

sf.init(['alice', 'bob', 'adan'], num_cpus=12, log_to_driver=True)

alice, bob, adan = sf.PYU('alice'), sf.PYU('bob'), sf.PYU('adan')

spu = sf.SPU(sf.utils.testing.cluster_def(['alice', 'bob', 'adan']))

x1, _= alice(load_train_dataset)(party_id=0)

x0, _= adan(load_train_dataset)(party_id=1)

x2, y= bob(load_train_dataset)(party_id=2)

解答:

您正在运行的 semi2k 2pc 是一个 3pc 协议,因为它依赖于受信任的第一方(或者您可以将其视为受信任的第三方)来生成离线相关随机数。Secretflow 中真正可用的 2pc 协议是 cheetah 协议。cheetah 协议现在可以很好地与 LR 等简单的应用程序配合使用。对于 NN,您可能需要等未来的 Secretflow 版本,我们仍在研究一些底层构建块。


问题7:

提供一个HEU初始化案例

解答:

HEU 分为两部分,第一他是 secretflow 中的一个 device,第二他本身也是一个同态加密的 library 如果是后者,把 HEU 单独当做 lib 使用,是有文档的,参见 https://heu.readthedocs.io/ 如果是前者,把 HEU 当做 device 使用,这部分还是实验性的,当前有一个基于 HEU + SPU 的 LR 实现,其教程有所欠缺,我们后面会补充相关文档。如果你着急的话,可参考 HESS-LR 的单测获取其用法。


其他问题


问题1

隐语框架TEE代码在哪

解答:

目前TEE部分的代码暂未开放,不过后续的开源计划里有这块内容,敬请期待


问题2:

基于TEE的多方MPC计算解决方案在隐语中吗

解答:

TEE 集群里跑 MPC 确实是一种新颖的方式,相比较纯 TEE 方案有额外优点。举个例子比如这种模式下,TEE进出的数据都是统计学上无差别的随机数,因此能够有效抵御一部分侧信道攻击。隐语当然会支持这种新颖的模式,不过目前 TEE 结合 MPC 的方案还未开放,预计年底左右会开放 TEE + MPC 的 TECC 设备,敬请关注期待。


问题3:

aggr=SecureAggregator(device=alice, participants=[alice, bob]) 无限期执行

解答:

是虚拟机的cpu个数设置成1个导致的,我将虚机的cpu设置成8个,然后可以了


问题4:

在不同数据集上运行演示错误,配置 6c8g

The actor is dead because its worker process has died. Worker exit type:

SYSTEM_ERROR_EXIT (SPURuntime pid=10311) I0714 09:14:38.084491 10471

external/com_github_brpc_brpc/src/brpc/socket.cpp:2202]Checking Socket{id=0 addr=127.0.0.1:36067} (0x563ea08fe600)

解答:

8c16g 是最低配置要求


问题5:

用较小的数据集进行测试,当使用 jax 构建的模型在 SPU 上运行时,SPU 默认使用 ABY3 协议吗

解答:

默认协议取决于参与方的数量:

https://spu.readthedocs.io/en/beta/reference/runtime_config.html#protocolkind

如果 SPU 设备是 2PC,将使用 SEMI2K。

如果 SPU 设备是 3PC,将使用 ABY3。



隐语介绍:


隐语Secret-Flow是蚂蚁集团自主研发的一套通用隐私计算框架,以安全、开放为设计理念,支持包括MPC、TEE、FL、HE、DP在内的多种主流隐私计算技术。目前“隐语”已正式开源,诚挚邀请业界同行参与隐语共建,丰富隐私计算落地场景,齐力推动隐私计算技术发展,最终实现整个隐私计算行业的进步。


相关文章
|
安全 Android开发
Android 预置可卸载分区接收不到任何广播问题分析和解决
Android 预置可卸载分区接收不到任何广播问题分析和解决
970 0
|
6月前
|
存储 缓存 API
爱回收 item_get_inquir - 获取询价项接口对接全攻略:从入门到精通
爱回收item_get_inquir接口(询价详情)提供二手数码设备精准估价、成色分级与回收方案,支持POST请求+HMAC-SHA256签名,适用于以旧换新、电商比价等场景。本文详解权限申请、签名生成、Python对接、调试排错及生产优化,助力企业高效稳定接入。
|
6月前
|
安全 搜索推荐 机器人
具身智能:零基础入门睿尔曼机械臂(一)——从硬件准备到首次运行全攻略
本教程带你零基础入门睿尔曼协作机器人,涵盖RM65、RM75、RML63等全系列机型。从开箱识别核心部件、接口功能,到单人快速组装、安全接线开机,再到有线/无线连接示教器及简单拖动示教操作,步骤清晰,图文并茂。助你50秒完成启动,快速实现轨迹复现,规范关机保护设备,轻松上手协作机器人应用。
1547 0
|
人工智能 并行计算 数据中心
NVIDIA智算中心“产品”上市,AI工业革命的iPhone时刻
NVIDIA智算中心“产品”上市,AI工业革命的iPhone时刻
|
存储 机器学习/深度学习 分布式计算
【DSW Gallery】COMMON_IO使用指南
COMMON_IO模块提供了TableReader和TableWriter两个接口,使用TableReader可以读取ODPS Table中的数据,使用TableWriter可以将数据写入ODPS Table。
【DSW Gallery】COMMON_IO使用指南
|
数据可视化 数据挖掘 BI
我最常用的两个数据可视化软件,强烈推荐
我最常用的两个数据可视化软件,强烈推荐
590 1
|
机器学习/深度学习 并行计算 PyTorch
ONNX 优化技巧:加速模型推理
【8月更文第27天】ONNX (Open Neural Network Exchange) 是一个开放格式,用于表示机器学习模型,使模型能够在多种框架之间进行转换。ONNX Runtime (ORT) 是一个高效的推理引擎,旨在加速模型的部署。本文将介绍如何使用 ONNX Runtime 和相关工具来优化模型的推理速度和资源消耗。
8058 4
如何为xshell终端设置超时
一个小技巧: 如上图设置的就是10秒超时自动退出终端。
1378 0
|
Linux iOS开发 MacOS
LabVIEW配置前面板
LabVIEW配置前面板
667 2
|
JSON 测试技术 Linux
【Docker项目实战】使用Docker部署TeamMapper思维导图工具
【2月更文挑战第6天】使用Docker部署TeamMapper思维导图工具
657 1