Secure Transformer Inference Made Non-interactive

news2025/2/25 2:03:24

目录

  • 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.coloradmin.cn/o/1661199.html

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

相关文章

AI 产品经理和 AIGC 产品经理有什么区别,怎么选择

AI 产品经理和 AIGC 产品经理有什么区别,怎么选择? AI 和 AIGC 行业两个行业带动了产品经理的的能力提升,那AI产品经理与AIGC产品经理两者中间有什么区别的呢?下面一起来看一下,之间的不同之处吧! 目前很火…

构建智能化组织架构权限管理系统:架构设计与实践

随着企业规模的扩大和信息化程度的提升,对权限管理的需求与重要性也日益凸显。本文将深入探讨智能化权限管理系统的架构设计,介绍其关键特点和最佳实践,助力企业提升组织架构的有效性、安全性和管理效率。 1. **需求分析与功能设计&#xff…

基于OpenCV对胸部CT图像的预处理

1 . 传作灵感 胸部CT中所包含的噪声比较多,基于OpenCV简单的做一些处理,降低后续模型训练的难度。 2. 图像的合成 在语义分割任务中有的时候需要将原图(imput)和标注数据(groudtruth)合成一幅图像&#x…

iframe的替代方案有吗?做页面嵌套界面套娃

UIOTOS可以了解下,uiotos.net,通过连线来代替脚本逻辑开发,复杂的交互界面,通过页面嵌套轻松解决,是个很新颖的思路,前端零代码! 蓝图连线尤其是独创的页面嵌套和属性继承技术,好家…

在RK3588开发板使用FFMpeg 结合云服务器加SRS实现摄像头数据推流到云端拱其他设备查看

今天测试了一把在开发板把摄像头数据推流到云端服务器,然后给其他电脑通过val软件拉取显示摄像头画面,浅浅记录一下大概步骤 1.开发板端先下载ffmpeg apt install ffmpeg2.云服务器先安装SRS的库 云服务器我使用ubuntu系统,SRS是个什么东西&…

非模块化 Vue 开发的 bus 总线通信

个人感觉,JavaScript 非模块开发更适合新人上手,不需要安装配置一大堆软件环境,不需要编译,适合于中小项目开发,只需要一个代码编辑器即可开发,例如 vsCode。网页 html 文件通过 script 标签引入 JavaScrip…

【NLP练习】使用seq2seq实现文本翻译

使用seq2seq实现文本翻译 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 from __future__ import unicode_literals, print_function, division from io import open import unicodedata import string impo…

[附源码]石器时代_恐龙宝贝内购版_三网H5手游_带GM工具

石器时代之恐龙宝贝内购版_三网H5经典怀旧Q萌全网通手游_Linux服务端源码_视频架设教程_GM多功能授权后台_CDK授权后台 本教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!&#xff0…

【spring】Bean的生命周期回调函数和Bean的循环依赖

目录 1、Bean的生命周期 2、Bean的生命周期回调函数 2.1、初始化的生命周期回调 2.2、销毁的生命周期回调 3、Bean的循环依赖 1、Bean的生命周期 spring的bean的生命周期主要是创建bean的过程,一个bean的生命周期主要是4个步骤:实例化,…

【属性系统概述】

属性系统概述 🌟 静态属性与动态属性🌟 官方文档中的定义🌟《Qt 5.9 C开发指南》中的定义🌟 Qt中属性的使用 🌟 静态属性与动态属性 ✨ 静态属性 :在创建QObject类时通过宏Q_PROPERTY定义的属性&#xff0c…

让GPT们成为我们的小助手:使用ChatGPT来生成测试用数据

让GPT们成为我们的小助手 任务:帮忙生成测试数据 今天本来想做一个测试,所以需要一些测试数据。为了让测试显得更真实,所以希望测试数据看上去就是一份真实的数据,所以我就希望ChatGPT(这里是代指,我有使…

vue3对象数组格式的动态表单校验

如你有一个表单&#xff0c;表单内容是对象&#xff0c;但是对象内还有可动态循环的数组进行动态表单校验。 效果如图&#xff1a;查看源码 页面内容&#xff1a; <div class"arrForm-Box"><el-form :model"state.formData" :rules"rule…

基于springboot+vue+Mysql的体质测试数据分析及可视化设计

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Oracle count的优化-避免全表扫描

Oracle count的优化-避免全表扫描 select count(*) from t1; 这句话比较简单&#xff0c;但很有玄机&#xff01;对这句话运行的理解&#xff0c;反映了你对数据库的理解深度&#xff01; 建立实验的大表他t1 SQL> conn scott/tiger 已连接。 SQL> drop table t1 purge…

OpenAI 正在开发一种可以防止版权诉讼的工具

OpenAI 正在开发一种名为 Media Manager 的工具&#xff0c;该工具将使内容创建者和所有者能够确定他们是否愿意将自己的内容用于 ML 研究和 AI 模型训练。 Media Manager 将做什么&#xff1f; 明年推出的 Media Manager 将使内容创作者和所有者能够更好地控制他们的工作是否…

Java学习第05天-编程思维与编程能力

文章目录 综合应用案例&#xff1a;找素数数组元素的复制数字加密模拟双色球 综合应用 涉及的知识点&#xff1a; 变量、数组运算符&#xff1a;基本运算符、关系运算符、逻辑运算符流程控制&#xff1a;if、switch、for、while、死循环、循环嵌套跳转关键字&#xff1a;break、…

day5Qt作业

服务器端 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//准备组件&#xff0c;初始化组件状态this->setFixedSize(800,600);chatwidget new QListWidge…

Box86源码解读记录

1. 背景说明 Github地址&#xff1a;https://github.com/ptitSeb/box86 官方推荐的视频教程&#xff1a;Box86/Box64视频教程网盘 2. 程序执行主体图 Box86版本: Box86 with Dynarec v0.3.4 主函数会执行一大堆的初始化工作&#xff0c;包括但不限于&#xff1a;BOX上下文 …

三层交换机静态路由连通实验

静态路由是一种手动配置路由表的方式&#xff0c;网络管理员需要手动指定网络中的每一个路由器下一跳路由器的地址&#xff0c;以及到达目的网络的最短路径。静态路由的路由表不会自动更新&#xff0c;如果网络拓扑发生了变化&#xff0c;管理员需要手动更改路由表。 实验拓扑图…

信息系统架构模型_1.单机应用模式和客户机/服务器模式

1.单机应用模式&#xff08;Standalone&#xff09; 单机应用系统是最简单的软件结构&#xff0c;是指运行在一台物理机器上的独立应用程序。这些软件系统&#xff0c;从今天的软件架构上来讲&#xff0c;是很简单&#xff0c;是标准的单机系统。当然至今&#xff0c;这种复杂的…