查看原文
其他

隐私保护机器学习中,应用MPC进行实验碰到的常见问题与解答

董业 隐私计算研习社 2023-04-07

机器学习模型利用大量的数据进行训练,不断更新参数,最终表现出好的效果。在这个过程中所应用的数据至关重要。如何在不牺牲数据效用的情况下,保护数据的隐私信息已成为一个火热的研究点。安全多方计算(MPC)作为隐私保护的手段之一,允许互不信任的参与方协同进行计算。因此,将MPC与隐私保护机器学习结合起来的方法引起了工业界以及学术界的兴趣。本文整理了在隐私保护机器学习中,应用MPC进行实验时常见的问题与回答。
知乎原文链接:https://www.zhihu.com/question/559735424
问题一:安全多方计算实验中,实验条件为单机,如何模拟实现多方的交互?是使用不同的端口来进行通信吗?答:一般是使用Socket来实现的分布式参与方的通信。如果是单机模拟(localhost)的话,就用不同的端口就行。例如xiao wang的emp-toolkit就是在Socket基础上实现通信。其他的开源项目,例如SecureNN也类似。如果更高级一点的,可能会使用(g)rpc,例如miniONN。上述项目链接:
  • emp-toolkit
    https://github.com/emp-toolkit
  • SecureNN
    https://github.com/snwagh/securenn-public
  • miniONN
    https://github.com/SSGAalto/minionn
问题二:如何模拟局域网和广域网的场景?

答:最合理方法当然是局域网实验在局域网内找若干台不同设备跑代码,广域网在租用云服务器。但是,大多数情况下没有这样的资金条件。如果局域网的设备数量足够,可以通过linux下的TC命令来控制网卡带宽和延迟,来模拟广域网的环境。如果只有一台机器(设备足够好)的话,也可以在localhost下控制网卡带宽和延迟。需要注意的是,在局域网内不同设备还要注意交换机的情况,有的实验室交换机太差可能会无法模拟常见的局域网指标。


问题三:实验过程中的通信指标如何获取?答:这个应该是可以通过测量Socket通信缓冲区的大小来获取的,在SecureNN等开源库中都有类似的代码。另外,也可以通过linux的一些工具来查看固定端口的流量进出情况。我常用的是iptraf-neg。具体教程可以查看如下链接http://iptraf.seul.org/2.6/manual.html


问题四:国内外有哪些支持MPC和隐私保护机器学习的开源框架?

答:目前MPC与PPML相关的开源框架还是很多的:1)针对MPC的例如MP-SPDZ、ABY、ABY3、emp-toolkit、EzPC等,都广泛使用;2)针对PPML的例如SecureNN,FALCON,MINIONN。这些框架都是基于C/C++实现的,阅读起来有一定难度;3)也有一些框架是基于Python的,例如TF-Encrypted、Crypten和Pysyft,分别在Tensorflow和Pytorch的基础上实现了MPC的协议,很好的支持张量运算和ML算子,入门也相对简单一点,其中TF-Encrypted近期一直是阿里在维护;4)国内的开源框架也有一些,除了提到的SecretFlow,还有Primihub、Rosetta、SecMML等。更多的关于开源框架和论文的资料可以参考我们维护的Github list。

链接:https://github.com/Ye-D/PPML-Resource




作者简介:董业,本科毕业于山东大学计算机科学与技术专业,目前在中国科学院信息工程研究所攻读博士学位。主要研究兴趣包括隐私保护、安全多方计算、同态加密和机器学习。知乎:酸菜鱼。
END

往期推荐


机器学习隐私保护相关文献整理
Piranha:用于安全计算的GPU平台阿里、浙大顶会论文:联邦环境下,基于元学习的图谱知识外推本地差分隐私 VS 全局差分隐私

欢迎投稿邮箱:pet@openmpc.com参与更多讨论,请添加小编微信加入交流群

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存