基于TensorFlow Encrypted (TFE)的隐私计算benchmark

目前业界常提到的“隐私计算”,其实是“隐私保护计算”,即安全多方计算(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

申明:文章属原创内容,如转载需注明来自开放隐私计算公众号

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...