目前业界常提到的“隐私计算”,其实是“隐私保护计算”,即安全多方计算(MPC)、同态加密、联邦学习、可信执行环境等一系列技术的统称。和传统的加密、脱敏等静态数据保护方案不同,隐私计算技术可以实现数据使用中的动态保护,实现“数据可用不可见”,给数据要素的安全流通带来了众多想象与可能,因此也获得了产业界和资本的格外青睐。
相比直接在原始数据上计算,隐私计算需要引入额外的计算和通信代价,因此其运行效率受到客户重点关注。但是目前业界对隐私计算效率的评估,往往简单的描述成“比明文慢XX倍”,各个厂商的文案中,慢千倍者有之,慢十倍者也有之,八仙过海,客户也经常蒙圈不知道如何比较,甚至连国内较权威的隐私计算性能测评都很难描述清楚。
详细隐私计算性能评测文章参见:
https://openmpc.com/article/182
实际上,隐私计算的性能究竟比明文慢多少倍,这是和多种因素有关的,例如对于同一个需求场景,有严谨安全模型的方案,肯定比无严谨安全模型的方案要慢;同一个方案,低带宽下肯定比高带宽慢;必须说清楚场景和安全性,比较“比明文慢XX倍”才有意义。
为了厘清这些问题,给用户一个关于隐私计算效率方面明确的认识,我们制作了一个隐私计算benchmark,设置了比较、排序、LR、NN等多种计算,分为局域网高带宽、广域网低带宽两种不同的网络环境,并在严谨的MPC安全模型下给出了这些场景下对应的性能数据和代码实现作为参考。
隐私计算benchmark地址如下:
https://github.com/tf-encrypted/tf-encrypted/tree/master/examples/benchmark
TF-Encrypted(TFE)简介
这个benchmark基于 TFE 框架来实现,这里对该框架做一个简单的介绍。TFE 是在 TensorFlow 上构建的隐私计算框架,充分利用了 TF 中已有的图计算优化、网络通信和优化等特点,让开发者仅需关注隐私计算协议的功能层和应用层,是最早出现的一批支持安全多方计算+机器学习的隐私计算框架之一,其开源实现也影响了后续兴起的多个相关框架。TFE的创始成员来自Cape Privacy,但目前主力维护工作主要由阿里巴巴安全部双子座实验室 承担。欢迎各位开发者和相关研究人员加入一起开源贡献,有问题可以咨询阿里巴巴双子座实验室 。
阿里巴巴双子座实验室官网:
https://alibaba-gemini-lab.github.io/
TFE 目前支持基于 secret sharing(秘密分享)技术的多个MPC协议,包括 server-aided Pond、server-aided SecureNN、replicated secret sharing(RSS)等。这些协议均是semi-honest、honest majority的安全三方计算协议,我们的第一版benchmark目前也集中讨论这类安全三方计算的性能。
Replicated Secret Sharing (RSS) 简介
论文 ABY3 提出了一种基于 RSS 的三方计算框架,可以安全地实现机器学习等应用中涉及的大部分计算操作。
在RSS中,一个原始数值 会被拆分成下列表示形式:
且 (需要取模,这里不做赘述)
其中,计算方0持有,计算方1持有,计算方2持有,这样就保证了任意一个计算方都无法获知原始数值,但是当两个计算方合作时就可以还原出该数值。当所有“敏感”数值都被拆分成这样的表示形式后,3个计算方可以执行一系列对应的计算协议来完成某个计算任务,比如,一次机器学习模型推理或训练。
RSS是目前三方计算的最佳实践,其关键原因是RSS可以非常方便且高效的实现乘法和矩阵乘法:
各个参与方只需要本地计算乘积的分量,然后传给其他参与方即可。出于这一优势,我们选取了TFE + RSS来完成此次三方计算的benchmark。对于benchmark中涉及的Relu、truncation、softmax等各类协议,我们均参考ABY3和[2]中的A(Arithmetic)、B(Boolean)混合协议来实现。需要注意的是我们没有使用ABY3中的Y即姚氏混淆电路,因为A+B就够用了,Y的通信代价过高,因此会降低整体方案的性能(这一点早在iDASH19比赛时已经被[5]证实了)
测评环境
这个 benchmark 的运行环境如下:
安全模型:半诚实
三方计算协议:RSS
三个计算方分别位于三台不同的机器
每台机器配置:4核,CPU 频率 2.7 GHz
由于MPC任务对于网络环境要求较高,我们测试了两种不同的网络环境下的性能:
LAN:局域网,带宽 40Gbps,延迟 0.01 ms
WAN:广域网,带宽 352Mbps,延迟 20 ms
测评任务1: 排序、最大值
很多应用会涉及到比较大小、求最大值、求中位数、排序等操作(例如卷积网络中用到的 maxpooling),事实上这些操作底层都是“比较”操作,因此评估一个方案中“比较”操作的性能尤为重要。单个“比较”操作的性能或许波动较大,因此在这个benchmark中我们选择了测试排序任务和求最大值任务的性能:
排序: 个元素的数组排序
最大值: 个数组,每个数组个元素,求个数组各自的最大值。
如下表所示:
Build graph (seconds) | LAN (seconds) | WAN (seconds) | |
---|---|---|---|
Sort () | 0.90 | 0.13 | 11.51 |
Sort () | 74.70 | 117.451 | 1133.00 |
Max () | 2.02 | 0.01 | 0.51 |
Max () | 2.05 | 3.66 | 15.28 |
TFE需要为任务创建TensorFlow计算图,同样的任务运行多次,只需要建图一次,因此对比性能时可以不考虑这一步开销。从表中看到,安全地排序1百万个元素,在LAN环境下需要百秒,而WAN环境下则是千秒级别。
另外需要一提的是,表中 Max(1000 x 4)事实上就等价于机器学习中batch大小为1000、pool大小为 2x2 的一个 MaxPool 操作。
测评任务2: 神经网络推理
我们接下来看一个更复杂一点的计算任务,在一个深层神经网络模型中作安全推理。
推理任务和场景:服务商有一个神经网络模型,客户有一张图片,客户调用服务商的模型对图片作分类预测,但是图片不能泄漏给服务商。
若模型较复杂,该任务会涉及到安全机器学习中使用到的大部分运算子,例如加减乘、ReLU、Sigmoid、MaxPool等等,因此能够很好的反应一个安全计算框架的综合表现性能。在本 benchmark 中,我们选择了用 Resnet50 模型对图片进行安全推理,该模型足够复杂,是机器学习中较为常见的模型,并且也被用于近年各大安全顶会中MPC相关的论文的性能评估任务。
TFE支持把现有的 TensorFlow 模型直接转换成 MPC 版本,并执行后续的推理运算。其性能如下所示:
Build graph | LAN | WAN | |
---|---|---|---|
RESNET50 inference time (seconds) | 57.79 | 13.55 | 126.89 |
在广域网下,Resnet50模型对一张图片做安全推理耗时在两分钟左右。笔者做过横向对比,在安全三方 Resnet50 模型推理任务下,TFE 是目前最高效的框架实现之一,例如,该性能与 CryptGPU、SecureQ8 的实现性能接近,优于 CryptFLOW。因此,即使考虑最优的网络环境,读者可大致看出该任务的耗时下限基本会在10秒级别。
测评任务3: 神经网络训练
最后,我们来讨论一下安全计算中的“圣杯”式的任务:模型训练。该任务需要经历多轮迭代运算,计算量和通信量都极为繁重。我们在 MNIST 数据集上做测评:
该数据集包含6万张训练图片,1万张测试图片
训练过程中使用的batch大小为128
训练在5个epoch(即约3000个batch)后停止
训练对比了机器学习中三个不同的主流优化器:SGD,AMSgrad,Adam
我们分开两部分做测评,第一部分训练一个二分类的逻辑回归模型,第二部分训练全分类的神经网络模型。
逻辑回归(LR)
由于数据集有 10 个分类,而LR是二分类模型,因此我们训练如下二分类模型:区分开小数字(0-4) 和大数字(5-9)。如下表所示:
Accuracy (epochs) | Seconds per Batch (LAN) | Seconds per Batch (WAN) | |
---|---|---|---|
LR (SGD) | 84.1% (5) | 0.012 | 0.760 |
LR (AMSgrad) | 85.5% (5) | 0.025 | 1.567 |
LR (Adam) | 85.8% (5) | 0.021 | 1.353 |
可以看到,目前MPC + LR 训练已经可以达到较高的性能。
神经网络
为了方便对比,我们沿用了前人工作中使用的4种神经网络模型,具体模型结构可参考Keller&Sun中的附录A。我们同时把 TFE 与 MP-SPDZ 框架实现的RSS协议做了对比(MP-SPDZ是目前开源的最快最全的MPC计算代码库之一,但笔者觉得使用起来没有 TFE 友好),其性能如下表所示:
Accuracy | Accuracy | Seconds per Batch (LAN) | Seconds per Batch (LAN) | Seconds per Batch (WAN) | Seconds per Batch (WAN) | |
---|---|---|---|---|---|---|
MP-SPDZ | TFE | MP-SPDZ | TFE | MP-SPDZ | TFE | |
A (SGD) | 96.7% | 96.8% | 0.098 | 0.138 | 9.724 | 5.075 |
A (AMSgrad) | 97.8% | 97.3% | 0.228 | 0.567 | 21.038 | 17.780 |
A (Adam ) | 97.4% | 97.3% | 0.221 | 0.463 | 50.963 | 16.958 |
B (SGD) | 97.5% | 98.7% | 0.571 | 4.000 | 60.755 | 25.300 |
B (AMSgrad) | 98.6% | 99.0% | 0.680 | 4.170 | 71.983 | 28.424 |
B (Adam) | 98.8% | 98.8% | 0.772 | 4.075 | 98.108 | 28.184 |
C (SGD) | 98.5% | 98.8% | 1.175 | 6.223 | 91.341 | 37.678 |
C (AMSgrad) | 98.9% | 99.0% | 1.568 | 7.336 | 119.271 | 83.695 |
C (Adam) | 99.0% | 99.1% | 2.825 | 6.858 | 195.013 | 81.275 |
D (SGD) | 97.6% | 97.5% | 0.134 | 0.355 | 15.083 | 6.112 |
D (AMSgrad) | 98.4% | 98.1% | 0.228 | 0.682 | 26.099 | 17.063 |
D (Adam) | 98.2% | 98.0% | 0.293 | 0.605 | 54.404 | 16.190 |
表中 A、B、C、D 分别代表4种不同的神经网络架构,其中 C 最复杂。从对比中可以看出,TensorFlow 的图计算和网络优化使得 TFE 在 WAN 环境中取得了比 MP-SPDZ更高效的结果。而在LAN中由于TF-C++的额外调用代价,我们的性能比纯C++的MP-SPDZ要低。
MNIST在四核笔记本上明文训练,一分钟不到就可以练到99%了,所以即使是MNIST训练这么简单的需求,加上带宽、延迟都很理想的LAN环境,其训练速度仍然可能慢于明文数十倍到百倍。在WAN环境下则更是一个batch需要几十秒甚至几分钟,与明文差距千倍以上。
总结
本次测评主要为了给读者建立一个印象:目前最优的 MPC 性能水位在哪?为了解答这个问题,我们从安全三方计算出发,在特定硬件和网络环境下,基于高效的 TF-Encrypted 框架对各种常见的计算任务做出了性能评估。我们的性能测评均整合了学术界最优的算法实现,得益于TensorFlow网络调度的优势,WAN上的指标不少都超出了国际最好成果,但是也基本和它们处于同一个数量级。一般而言,同等硬件配置下,如果某些工作声称的性能优于前述性能一个数量级以上,那么可以认为这个数据有待商榷,除非能提供高质量论文做进一步讨论和判别。欢迎业界对上述benchmark以及 TF-Encrypted 库做出指正、贡献,也期待业界制作基于其他隐私计算方案(如联邦学习、可信执行环境)的benchmark。
参考文献
[1] P. Mohassel and P. Rindal, “ABY3: A Mixed Protocol Framework for Machine Learning,” in Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, 2018, pp. 35–52.
[2] M. Keller and K. Sun, “Secure Quantized Training for Deep Learning,” arXiv:2107.00501 [cs], Jul. 2021, Accessed: Apr. 14, 2022. [Online]. Available: http://arxiv.org/abs/2107.00501
[3] A. Dalskov, D. Escudero, and M. Keller, “Secure Evaluation of Quantized Neural Networks,” Proceedings on Privacy Enhancing Technologies, vol. 2020, no. 4, pp. 355–375.
[4] N. Kumar, M. Rathee, N. Chandran, D. Gupta, A. Rastogi, and R. Sharma, “CrypTFlow: Secure TensorFlow Inference,” in 2020 IEEE Symposium on Security and Privacy (SP), May 2020, pp. 336–353.
[5] M. Keller, “A Note on Our Submission to Track 4 of iDASH 2019” https://arxiv.org/abs/1910.11680
申明:文章属原创内容,如转载需注明来自开放隐私计算公众号