基于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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340