隐语开源社区【精选问答】第四期

简介: 隐语开源社区【精选问答】第四期


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

上个月,隐语开源社区上共收到30+issue,35+社群提问,小伙伴们对spu使用问题以及隐语目前所支持的算法功能较为关心,本次精选20条社区问答,供大家参考阅读。查看更多内容,请访问👏github隐语主页,欢迎提问交流!https://github.com/secretflow


易用性

问题1:是否PYU属于参与各方?可以直接用明文数据计算?而中心则用SPU进行安全计算?解答:

  • PYU是明文设备,目前是依托于python作为载体,主要提供参与方本地的明文计算。
  • SPU是MPC密态设备。这里密态设备是虚拟的概念。SPU本质上是由多个计算方组成,并提供了密态设备这个视角,好处是帮助用户屏蔽MPC底层多个计算方协同计算的细节。
  • SPU并不是你理解的在中心进行安全计算,计算还是发生在各个计算方的,你说的中心更多的可以理解为是驱动者(driver),driver负责把计算任务分发给SPU,而SPU提供了虚拟设备的视角,让你看起来是在driver这个视角操纵了它。


问题2:SchemaType.FPaillier和SchemaType.ZPaillier分别代表什么含义?提供这两个选择是否存在什么需要trade-off的东西?解答:在C++ Api 层面,FPaillier 与 ZPaillier有一些不同,FPaillier 对标 Python-Paillier, 相当于把 Python-Paillier 的逻辑用C++翻译了一遍,其特点是算法层面支持浮点数加密,原理是把 scale 比特数作为明文打包在密文中,密态运算阶段算法会自行对齐、更新 scale 值,其它未做过多优化。而zPaillier 是我们实现的一个高度优化的Paillier 版本,只支持整数加密,性能比 FPaillier 高很多。fpaillier 不推荐使用,任何情况下都应该选择 ZPaillier。


问题3:如果想执行浮点数加解密,有什么推荐的方式么?解答:加密浮点数需要外挂的 encoder,参考“快速入门”和“矩阵运算”关于 Encoder 的介绍。https://heu.readthedocs.io/zh_CN/latest/getting_started/quick_start.htmlhttps://heu.readthedocs.io/zh_CN/latest/getting_started/numpy.html


问题4:官网教程demo中“混合联邦——逻辑回归”部分卡死报错。报错提示为:WARNING worker.py:1416-WARNING: 24 PYTHON worker processes have been started on node:解答:看起来是因为设备的问题,8C16G 是sf最低的配置要求。


问题5:1)初始化spu时,选择cheetah协议,这个协议是基于OT、SS还是什么?2)从哪儿能找到这些协议(cheetah、aby3等)的相关资料?3)用spu计算时,密文的计算是同态的吗?解答:1)cheetah协议是阿里巴巴双子座实验室原创的协议,详见 paperhttps://eprint.iacr.org/2022/207
2)spu的计算是基于mpc协议(即aby3等协议)。请参阅相关论文和资料了解mpc是如何计算的,以及不同协议的secret sharing schema和明密文转化流程。请查阅我们的文档:https://spu.readthedocs.io/en/beta/reference/mpc_status.html
3)spu 是个虚拟设备,相当于一个 spu 是有多个独立的半诚实参与方组成(一般为2到3个),各参与方之间执行秘密分享算法执行计算。spu 主要基于秘密分享算法,而不是同态。另外,如果你想进行同态计算,请使用secretflow的另一个子项目-heu:
https://secretflow.readthedocs.io/zh_CN/latest/developer/design/heu.html


问题6:secretflow文档Component下的Feature Engineering demo无法运行。from secretflow.utils.simulation.datasets import load_linearTraceback (most recent call last):File "<stdin>", line 1, in <module>ModuleNotFoundError: No module named 'secretflow.utils.simulation.datasets'解答:dataset 的缓存路径应该是~/.secretflow/datasets/linear.csv,你看下这个文件是否是一个空文件,如果是的话把缓存目录~/.secretflow/datasets 删掉重新跑一下 demo,第一次运行会触发下载。目前,新版本已经支持检查本地缓存文件哈希,若不正确则会重新下载。


问题7:使用psi_df时,返回类型是PYUObject,如果要指定bob回写数据库,在driver要怎么写这个函数?以及,如果是PYUObject的话,py函数的参数类型可以直接是DataFrame吗?

解答:

  • 可以再写个py函数把内存的 df 存储到 db 里,让driver安排在bob侧调用一下。
  • 是的,PYUObject会被自动拆箱成de-reference


问题8:部署两台服务器各自docker部署,在启动任务报brpc 异常,配置监听的端口9998另外一台服务器可以正常连接,但几秒后会断掉,之后就brpc报错。

解答可以先试试在本机多docker的情况, 有的网络会存在夸机器的docker,rpc不通。可以尝试把docker的网络设置为host模式。


问题9:docker部署import secretflow 出错,未找到模块'libcudart.so.11.0'报错:import secretflow as sf 2022-09-29 07:24:43.572390:W tensorflow/stream_executor/platform/default/dso_loader.cc:64]Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0:cannot open shared object file: No such file or directory解答:这是一个 warning,不影响任何功能,不影响使用,可以忽略。


问题10:是否可以在docker中内置jupyter客户端解答:你可以手动安装jupyter,或者可以自行修改dockerfile以满足你的需求。
考虑到镜像需要尽量小,以及jupyter并不是运行secreflow的必须依赖,我们目前不考虑内置jupyter。


问题11:python3.8 m1芯片 编译grpcio的时候一直报错报错信息:distutils.errors.CompileError: command '/usr/bin/qcc' failed with exit code 1解答:执行命令前先 conda install grpcio


问题12:使用多方安全计算或者联邦模型等后,如何查看参与方之间的通信消耗?解答:对于多方安全计算,SPU使用内部的通信信道来传输(MPC协议)数据,之后会逐步开放统计接口(目前还没有python接口可以查看)对于联邦学习,多方之间数据使用Ray 来通信,可以通过 /tmp/ray/session_{date}/logs 日志查看。我们即将发布的调度框架,会提供这个能力。

功能性

问题1:

secretflow后面有计划支持windows吗?

解答:

短期内没有windows支持计划,Windows可以通过 wsl 来跑。后续会补充wsl相关的文档。


问题2:

隐语提供隐匿查询功能吗?就是PIR技术

解答:

目前secretflow还不支持python直接调用的pir接口,可以直接调用spu的c++接口,示例可以参考seal_pir的单测代码
https://github.com/secretflow/spu/blob/main/spu/pir/seal_pir_test.cc


问题3:

使用ABY3协议训练SS-XGB时,集群出现错误。

解答:

我们仍在优化以支持大型数据集,建议您将数据集缩小到[10000,450]


问题4:

两个密文矩阵相乘,目前是不支持么?

解答:

受限于算法原因,目前不支持两个密文矩阵相乘,后续 HEU 支持 FHE 算法后可以开放此接口。


问题5:

集群里面有个节点挂了,其他节点能感知到么?有没有办法获取各个节点的健康状态

解答:

调度框架这部分能力开源后组建集群就可以发现。


问题6:

secretflow联邦学习能否对接更复杂的深度学习任务,比如目标检测?

解答:

理论上是可以的,欢迎使用FL Model进行尝试。


其他

问题1:

请问隐语的学习需要什么基础,AI、ML 零基础可以么?

解答:

推荐我们「隐语开源社区」隐私计算线上慕课,本课程联合20位顶尖高校学者与产业代表联合出品,划分为7为大模块:课程前瞻、隐私计算全局概览、概念基础、技术应用、案例介绍、框架基础、动手实践,融合了基础理论与实践应用,将由浅入深为大家呈现100+专业细分知识点。适合所有对隐私计算感兴趣的同学。

视频首页:https://space.bilibili.com/2073575923/video

也可以看下文档推荐的论文:https://secretflow.readthedocs.io/zh_CN/latest/


问题2:

纵向联邦模型中数据是否出域?如何进行信息交互?

解答:

纵向联邦学习主打是数据不出域,交互的是梯度信息。另外,目前隐语还没有发布纵向FL的算法,当前发布的纵向算法中,对于传统模型用的MPC,对于NN用的拆分学习。


相关文章
|
6月前
|
安全
隐语实训营笔记 第二讲
隐私计算通过开源促进数据要素安全流通,解决外循环中的信任问题。隐语开源项目旨在实现数据可用不可见、可算不可识、可控可计量的原则,统一产品度量标准,降低接入难度,构建完备的信任链,以推动数据的开放与共享。
65 0
|
6月前
|
算法 安全 数据安全/隐私保护
隐语实训营笔记 第三讲
隐私计算框架“隐语”提供全面的隐私保护技术,包括PSI、PIR和联邦学习等算法,层次间低耦合,支持开放合作。产品层包含多样化应用,计算层涉及SPU、HEU、TEEU及密码库YACL,资源层有kuscia管理,强调互联互通和跨域管控,旨在实现安全的数据协作。
53 0
|
6月前
|
存储 运维 安全
隐语实训营笔记 第一讲
构建数据可信流通体系,确保来源确认、范围界定、过程追溯及风险防范。该体系基于密码学和可信计算,包含身份验证(如CA证书和远程验证)、使用权跨域管控、安全分级测评和全链路审计。可信数字应用身份验证和跨域管控保护数据免于滥用,同时维护上下游利益。通过隐私、可信和机密计算技术,实现数据流通的控制面和数据面的平衡,即“不可能三角”。全链路审计形成内外循环的管控体系,密态天空计算作为基础设施,支持密态数据流通,解决数据安全保险中的定责和定损问题。
40 0
|
Cloud Native 开发者
邀请函 | 云原生开源开发者沙龙「上海站」
活动地址:上海徐汇区龙耀路 8 号,阿里巴巴徐汇滨江园区 X7-301 龙门书院。2023 年 7 月 30 日(周日)09:30 开始签到。
3063 0
邀请函 | 云原生开源开发者沙龙「上海站」
|
机器学习/深度学习 算法 安全
隐语开源社区 首期“社区之星” 新鲜出炉!
隐语开源社区 首期“社区之星” 新鲜出炉!
264 1
|
分布式计算 安全 算法
「隐语开源社区开放日」全场精华合集(附视频+原文稿件)
「隐语开源社区开放日」全场精华合集(附视频+原文稿件)
149 0
「隐语开源社区开放日」全场精华合集(附视频+原文稿件)
|
SQL 机器学习/深度学习 人工智能
隐语开源社区【精选问答】第三期
隐语开源社区【精选问答】第三期
411 0
|
SQL 机器学习/深度学习 算法
隐语开源社区【精选问答】第5期
隐语开源社区【精选问答】第5期
354 0
|
机器学习/深度学习 边缘计算 算法
隐语开源社区【提问解答】第二期
隐语开源社区【提问解答】第二期
240 0
|
机器学习/深度学习 算法 安全
「隐语开源社区」Meetup答疑篇
「隐语开源社区」Meetup答疑篇
363 0