Secure Transformer Inference Made Non-interactive

目录

  • 1.概述
  • 2.Attention
  • 2.1 Matrix multiplication (ciphertext-plaintext).
  • 2.2 Matrix multiplication (ciphertext-ciphertext)
  • 2.3 Placement of bootstrapping
  • 3.SIMD密文压缩和解压缩
  • 4.SIMD槽折叠
  • 5.实验结果

1.概述

我们提出了NEXUS,这是第一个用于安全变压器推理的非交互式协议,其中客户端只需要提交加密输入并等待服务器的加密结果。NEXUS的核心是两种创新技术:SIMD密文压缩/解压缩和SIMD槽折叠。因此,与标准普尔24年提出的最先进的解决方案相比,我们的方法实现了2.8倍的加速和368.6倍的显著带宽减少。

  • 第一个用于安全变压器推理的非交互式协议比最先进的带宽减少368倍;
  • 用于密文打包的SIMD密文压缩和解压缩技术;
  • SIMD插槽折叠技术,有效地操作SIMD密文的插槽;
  • 全面的实施和评估。

2.Attention

在这里插入图片描述

2.1 Matrix multiplication (ciphertext-plaintext).

在这里插入图片描述

2.2 Matrix multiplication (ciphertext-ciphertext)

Q = [ [ E n c ( q 00 ) , E n c ( q 01 ) , E n c ( q 02 ) ] , [ E n c ( q 10 ) , E n c ( q 11 ) , E n c ( q 12 ) ] ] Q = [[Enc(q₀₀), Enc(q₀₁), Enc(q₀₂)],[Enc(q₁₀), Enc(q₁₁), Enc(q₁₂)]] Q=[[Enc(q00),Enc(q01),Enc(q02)],[Enc(q10),Enc(q11),Enc(q12)]]
K T = [ [ E n c ( k 00 ) , E n c ( k 10 ) ] , [ E n c ( k 01 ) , E n c ( k 11 ) ] , [ E n c ( k 02 ) , E n c ( k 12 ) ] ] K^T = [[Enc(k₀₀), Enc(k₁₀)],[Enc(k₀₁), Enc(k₁₁)],[Enc(k₀₂), Enc(k₁₂)]] KT=[[Enc(k00),Enc(k10)],[Enc(k01),Enc(k11)],[Enc(k02),Enc(k12)]]

对于 Q 的第一行和 K^T 的第一列:

  • 计算逐元素乘积:
    E n c ( u 0 ) = [ E n c ( q 00 ) ⊙ E n c ( k 00 ) , E n c ( q 01 ) ⊙ E n c ( k 00 ) , E n c ( q 02 ) ⊙ E n c ( k 00 ) ] Enc(u₀) = [Enc(q₀₀) ⊙ Enc(k₀₀), Enc(q₀₁) ⊙ Enc(k₀₀), Enc(q₀₂) ⊙ Enc(k₀₀)] Enc(u0)=[Enc(q00)Enc(k00),Enc(q01)Enc(k00),Enc(q02)Enc(k00)]
  • 对逐元素乘积结果进行累加:
    s 0 = E n c ( u 00 ) + E n c ( u 01 ) + E n c ( u 02 ) s₀ = Enc(u₀₀) + Enc(u₀₁) + Enc(u₀₂) s0=Enc(u00)+Enc(u01)+Enc(u02)

2.3 Placement of bootstrapping

NEXUS 是基于 RNS-CKKS 的,这是一种分层同态加密方案,允许在任何计算路径上最多进行 𝐿 次乘法操作。一旦密文的级别变得太低,就需要进行bootstrapping以将其刷新到更高的级别,从而使更多的乘法操作成为可能。由于引导操作代价高昂,因此其放置对整体性能至关重要。
在这里插入图片描述

3.SIMD密文压缩和解压缩

我们将 C 打包成多项式并将其发送给 S。通过这种方式,我们将通信成本从 N ′ N^{'} N个密文减少到一个单独的密文。
在这里插入图片描述
p ( x ) = a 0 + a 1 x + a 2 x 2 + . . . + a N ′ − 1 X N ′ − 1 p(x)=a_0+a_1x+a_2x^2+...+a_{N^{'}-1}X^{N^{'}-1} p(x)=a0+a1x+a2x2+...+aN1XN1

在这里插入图片描述

4.SIMD槽折叠

在这里插入图片描述
在这里插入图片描述因此,我们的解决方案只需要 l o g N − 1 logN - 1 logN1个旋转

在这里插入图片描述

5.实验结果

在这里插入图片描述在这里插入图片描述矩阵乘法。图7显示了局域网中多个输入的MatrixMul(参见算法6)的平摊代价。考虑到ChatGPT经常在单个响应中生成数百个单词,𝑡= 256将是合理的输入数量。NEXUS的平摊运行时间(256个输入)为2.26秒,比Iron快15.9倍,比BOLT快3.3倍。当输入的数量增加到1024个时(这也是很常见的),NEXUS表现出更大的性能优势。具体来说,它在运行时和通信方面的性能分别比BOLT高4.8倍和2.6倍。

端到端性能大致上是微基准的汇总。另外,Iron 和 BOLT 需要执行安全截断来防止溢出,因为它们将浮点数缩放为整数。相比之下,NEXUS 利用 RNS-CKKS 避免了截断的需要,后者支持浮点数,但会导致bootstraping操作。具体来说,NEXUS 的端到端工作流程如图 3 所示。图 8 显示了端到端性能(针对 128 个输入进行摊销)。值得注意的是,NEXUS 仅消耗 164MB 带宽,比 Iron 减少了 1737.5 倍,比 BOLT 减少了 368.6 倍。就端到端运行时间而言,NEXUS 仍然比 Iron 快高达 11.6 倍,比 BOLT 快 2.8 倍。
在这里插入图片描述

表 4 列出了 NEXUS 中每个单独操作的运行时间,以及它们对应的比例。引导操作是整个过程中最耗时的部分,需要 315 秒,占总运行时间的 37.72%。在引导操作之后,Softmax 和 GELU 是接下来最耗时的部分,分别占总运行时间的 21.72% 和 20.92%。

在这里插入图片描述
准确性。我们使用来自 GLUE 基准 [50] 的 4 个数据集进行准确性评估,GLUE 基准是对于 BERT 和基于 GPT 的转换器广泛采用的评估指标。其中三个数据集涉及到 BERT-base:RTE、SST-2 和 QNLI,都涉及分类任务。剩下的数据集,儿童图书测试(CBT),属于GPT,通过让GPT从完形测试的10个选项中预测正确的单词来评估准确性。如表5所示,与明文推理相比,NEXUS达到了相当的精度水平。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么要使用jvm,而不是直接启动类文件

JVM(Java虚拟机)是Java程序的运行环境,它负责将Java源代码编译成字节码,并在运行时负责解释和执行这些字节码。当你直接启动一个Java类时,实际上是启动了JVM,并指定了要执行的类。 以下是为什么要通过启动…

【QT教程】QT6与硬件接口编程 QT硬件编程

QT6与硬件接口编程 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免…

变老相机app

变老相机app 在手机上使用“变老相机”app,其中的时光穿梭功能可以生成10岁、20岁、50岁、70岁的照片 目的 得到未来自己的照片,能够更有效地督促我们为老年的自己存款。

为什么反射慢?

反射机制就是通过字节码文件对象获取成员变量、成员方法和构造方法,然后进一步获取它们的具体信息,如名字、修饰符、类型等。 反射机制的性能较低有很多原因,这里详细总结以下4点原因: (1)JIT优化受限&am…

记录minio的bug(Object name contains unsupported characters.)

场景是我将后端服务从121.xxx.xxx.xxx服务器上转移到了另一台服务器10.xxx.xxx.xxx 但图片都还在121.xxx.xxx.xxx服务器上,同样我10.xxx.xxx.xxx也安装了minio并且我的后端服务配置的minio地址也是10.xxx.xxx.xxx 此时有一个业务通过minio客户端获取图片&#xf…

矩阵和空间变换理解

矩阵和空间变换 把向量和矩阵相乘看作是空间变换,是其中一种看法 代数角度:向量的一行和矩阵的一列逐项相乘再相加等于新向量的一项 w代表原来坐标轴和新坐标轴之间的变换关系,而a和b体现的是原来向量的关系 矩阵代表的是旧坐标和新坐标之间…

辽宁在线教育系统下载,培训机构3月营销招生方案有哪些?

转眼已到3月,什么时候能够实现复工复课依旧无法确定,预计疫情想要得到全面的控制大概会持续到4、5月份。春招已经过去了,机构需要对暑招和秋招做出工作部署。对于我们培训机构来讲,必须要提前做出规划。 3月初,正值疫情…

Wireshark明文抓取

目录 原理 配置 1、配置环境变量 2、Wireshark配置 原理 SSLKEYLOGFILE是一个用于记录SSL/TLS会话中使用的密钥的文件。它主要用于调试和分析SSL/TLS协议。当启用了SSLKEYLOGFILE配置,系统会将所有SSL/TLS会话中使用的密钥记录到指定的文件中。这些密钥可以用来…

减少重排策略

重排指的是浏览器根据DOM结构和CSS样式计算元素的几何属性并并重新布局的过程;当修改DOM结构、修改了元素的尺寸或位置、改变元素的显示与隐藏状态、修改CSS样式,都会触发浏览器重排; 可以通过performance.getEntriesByType(layout)方法获取…

day04—java基础之方法详解

方法概述 方法是具有特定功能的代码集合,由于我们是把重复的代码写到方法当中,以后要用直接调用方法即可,不需要再写一遍了。代码相当于只写了一遍。所以可以提高代码的复用性。如果要修改代码,我们也只要修改一处即可&#xff0…

MySQL8.3升级踩坑记录

之前用的mysql5.7,目前被省公司发现有漏洞,需要升级mysql8.3,无奈只好升级,记录下踩坑经过 1、安装完以后设置环境变量,网上操作一大堆,以便于方便使用client 2、双击client 登录,开启远程访问…

Qt常用基础控件总结

一、按钮部件 按钮部件共同特性 Qt 用于描述按钮部件的类、继承关系、各按钮的名称和样式,如下图: 助记符:使用字符"&“可在为按钮指定文本标签时设置快捷键,在&之后的字符将作为快捷键。比如 “A&BC” 则 Alt+B 将成为该按钮的快捷键,使用”&&qu…

springcloud整合网关(springcloud-gateway)

pom引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- 服务注册 --><dependency><groupId>com.alibaba.cloud</groupId&…

Linux增加硬盘分区并挂载(各个云平台操作)

第一部分&#xff0c;增加硬盘 1.购买硬盘并选择云服务器 输入lsblk 命令后即可看到刚刚添加的硬盘了 vdb就是新添加的硬盘名称了 第二部分 对硬盘进行分区处理 然后对新建磁盘进行分区 输入命令fdisk /dev/vdb 输入lsblk -f 命令查看刚刚建好的分区(看到多余的sdc不用在意…

Window安装OpenSSH客户端及服务,实现web项目的自动化部署。

文章目录 引言I 给windows安装一个ssh服务1.1 下载对应的OpenSSH1.2 安装sshd服务1.3 开放22端口1.4 配置sshd服务自动启动1.5 验证ssh是否可用II 服务部署(SSH远程操作)2.1 SSH执行远程命令,实现多节点自动化部署项目(ssh/scp无交互方式)2.2 上传文件到远程windows服务器2.…

设计模式Java实现-工厂模式

✨这里是第七人格的博客✨小七&#xff0c;欢迎您的到来~✨ &#x1f345;系列专栏&#xff1a;设计模式&#x1f345; ✈️本篇内容: 工厂模式✈️ &#x1f371;本篇收录完整代码地址&#xff1a;https://gitee.com/diqirenge/design-pattern &#x1f371; 楔子 记得刚…

WAGO系统 远程代码执行漏洞复现(CVE-2023-1698)

0x01 产品简介 WAGO是一家专业从事电气互连、自动化和接口电子技术的公司。 0x02 漏洞概述 在 WAGO 的多个产品中,一个漏洞允许未经身份验证的远程攻击者创建新用户并更改设备配置,可导致远程RCE、拒绝服务等使整个系统受损。 0x03 影响范围 751-9301 Compact Controll…

2W,3KVDC隔离 定电压输入,稳压单、双路输出DC-DC模块电源——TPI-2W 系列

TPI-2W系列产品是专门针对PCB上需要与输入电源隔离的电源应用场合而设计的。该产品适用于&#xff1a;1&#xff09;输入电源的电压变化≤5%&#xff1b;2&#xff09;输入输出之间要求隔离电压≥3000VDC&#xff1b;3&#xff09;对输出电压稳定和输出纹波噪声要求高.

达梦数据刷盘测试

达梦数据库为了保证数据故障恢复的一致性&#xff0c;REDO 日志的刷盘必须在数据页刷盘之前进行。 下面我们通过测试来验证是不是这样 执行我们事先准备的SHELL脚本 可以看到第一次strings文件没有输出&#xff0c;说明刚写的数据在数据库的BUFFER缓冲区内&#xff0c;还没有刷…