基于TensorFlow Encrypted (TFE)的隐私计算benchmark
相比直接在原始数据上计算,隐私计算需要引入额外的计算和通信代价,因此其运行效率受到客户重点关注。但是目前业界对隐私计算效率的评估,往往简单的描述成“比明文慢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/
Replicated Secret Sharing (RSS) 简介
论文 ABY3 提出了一种基于 RSS 的三方计算框架,可以安全地实现机器学习等应用中涉及的大部分计算操作。
RSS是目前三方计算的最佳实践,其关键原因是RSS可以非常方便且高效的实现乘法和矩阵乘法:
测评环境
这个 benchmark 的运行环境如下:
安全模型:半诚实 三方计算协议:RSS 三个计算方分别位于三台不同的机器 每台机器配置:4核,CPU 频率 2.7 GHz
由于MPC任务对于网络环境要求较高,我们测试了两种不同的网络环境下的性能:
LAN:局域网,带宽 40Gbps,延迟 0.01 ms
WAN:广域网,带宽 352Mbps,延迟 20 ms
测评任务1: 排序、最大值
排序: 个元素的数组排序 最大值: 个数组,每个数组个元素,求个数组各自的最大值。
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环境下则是千秒级别。
测评任务2: 神经网络推理
推理任务和场景:服务商有一个神经网络模型,客户有一张图片,客户调用服务商的模型对图片作分类预测,但是图片不能泄漏给服务商。
Build graph | LAN | WAN | |
---|---|---|---|
RESNET50 inference time (seconds) | 57.79 | 13.55 | 126.89 |
测评任务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 |
神经网络
为了方便对比,我们沿用了前人工作中使用的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要低。
总结
参考文献
隐私计算头条周刊(8.14-8.20)
Gartner公布2022年的25项新兴技术,隐私计算占6项!
SCI一区期刊专辑征稿 | 社会大数据隐私、安全与前沿计算主题
姚期智院士:数据、算法、算力为何是数字经济核心技术?
附下载 | 2022年隐私计算技术与行业应用报告合集(33份)
招标 | 近期隐私计算项目招标18(联通、不动产、股权市场、银联等)