隐语社区【提问解答】 第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在内的多种主流隐私计算技术。目前“隐语”已正式开源,诚挚邀请业界同行参与隐语共建,丰富隐私计算落地场景,齐力推动隐私计算技术发展,最终实现整个隐私计算行业的进步。


相关文章
|
Web App开发 缓存 网络协议
解决Github不能下载,下载速度慢的小妙招
解决Github不能下载,下载速度慢的小妙招
解决Github不能下载,下载速度慢的小妙招
|
人工智能 并行计算 数据中心
NVIDIA智算中心“产品”上市,AI工业革命的iPhone时刻
NVIDIA智算中心“产品”上市,AI工业革命的iPhone时刻
|
11月前
|
存储 数据安全/隐私保护 Android开发
Android与iOS的隐私保护机制对比####
本文深入探讨了Android与iOS两大移动操作系统在用户隐私保护方面的策略与技术实现,揭示了两者在设计理念、权限管理、数据加密等方面的差异及其对用户体验的影响。通过对比分析,旨在为用户提供更全面的隐私保护认知,同时为开发者提供跨平台隐私保护的参考。 ####
611 0
|
机器学习/深度学习 数据采集 运维
【博士每天一篇文献-综述】2024机器遗忘最新综述之一:A Survey on Machine Unlearning Techniques and New Emerged Privacy Risks
本文综述了机器遗忘技术及其面临的新兴隐私风险,提出了面向数据和模型的分类法,分析了信息窃取和模型破坏攻击手段,探讨了相应的防御策略,并讨论了机器遗忘技术在大型语言模型、联邦学习和异常检测等领域的应用。
359 5
|
机器学习/深度学习 存储 缓存
2024机器遗忘(Machine Unlearning)技术分类-思维导图
本文通过思维导图的形式,详细介绍了机器遗忘技术的分类、优缺点、面临的威胁和攻击以及防御机制,并探讨了评估机器遗忘系统有效性的方法,包括精确遗忘和近似遗忘技术,以及在数据隐私保护和法律遵从方面的应用。
1012 5
|
机器学习/深度学习 存储 算法
【博士每天一篇文献-综述】2024最新联邦遗忘综述:Federated unlearning A survey on methods, design guidelines
本文提供了联邦遗忘(Federated Unlearning, FU)领域的全面综述,包括背景概念、动机、挑战、设计指南、评估指标体系,并探讨了FU在隐私保护和安全性方面的应用,以及面临的技术挑战和未来研究方向。
749 4
|
机器学习/深度学习
神经网络可能不再需要激活函数?Layer Normalization也具有非线性表达!
【7月更文挑战第14天】研究表明,层归一化(LayerNorm)可能具备非线性表达能力,挑战了神经网络对激活函数的依赖。在LN-Net结构中,仅使用线性层与LayerNorm就能实现复杂分类,其VC维度下界证明了非线性表达。尽管如此,是否能完全替代激活函数及如何有效利用这一特性仍需更多研究。[arXiv:2406.01255]
245 5
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之在DataWorks数据开发模块中一直显示“工作空间默认初始化中”,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
231 3
如何为xshell终端设置超时
一个小技巧: 如上图设置的就是10秒超时自动退出终端。
1287 0
|
存储 人工智能 数据库
亚马逊 AWSVS 阿里云 | 轻量应用服务器性能评测对比
亚马逊 AWSVS 阿里云 | 轻量应用服务器性能评测对比

热门文章

最新文章