Skip to content
Bblog
返回博客列表
43 min readEnglish

隐私保护 Transformer 推理综述:五站地图

arXiv 2412.08145 的精读笔记:威胁模型、MPC 与 HE 的分工、12.7% 的瓶颈之争、线性与非线性解法路线、评测的两条独立轴,以及原文勘误 E1–E14。

0. 速览

一句话:这是 NTU 团队 2024 年 12 月的 24 页综述,收录 2022–2024 年 30 项 PTI(private transformer inference,隐私保护 Transformer 推理)工作,按**安全假设(setup)**而不是按技术或时间组织(Table 1,paper.txt:361–410,p8)。它真正的贡献不是罗列,而是把"某条路线为什么只在某个 setup 下成立"讲清楚了。

30 秒速览:五条核心洞察

  1. 隐私是双向的,而且只保护协议执行过程,不保护推理结果。 Definition 1 同时要求正确性(输出等于明文模型输出)与安全性(双方的 view 都能被模拟器伪造),但明确不覆盖基于 y 的攻击(model inversion、membership inference)——那是另一个问题(paper.txt:90–117)。
  2. MPC 把秘密拆散,HE 把秘密锁住。 前者付通信,后者付计算;没有绝对优劣,只有和带宽、算力、延迟是否匹配(§2.3)。
  3. 贵不贵不看 FLOPs,看这个运算和你手里的工具形状是否匹配。 加法与逐槽乘法几乎免费,exp、erf、tanh、max、除法、开方都不免费;而计费单位是密码学操作次数,不是浮点运算次数(§4.1、§5–§6)。
  4. 哪一层最贵,由"乘法能不能预支"决定。 纯 2PC 的瓶颈是 MatMul(§4.2 原话;Iron 端到端通信 280.99 GB,Table 12);一旦多出一个能提前备料的角色,MatMul 就只剩 12.7%,其余 87.3% 全落在非线性层(§4.2、§5.2)。
  5. 通信↔计算、精度↔近似开销是两条独立的轴。 它们不是一根跷跷板:可以通信极少而且精度高(NEXUS),也可以单算子就烧掉 3.6 GB(Iron 的 Softmax)。把四个量压成一个"效率"去比,结论必然错(§7)。

关键数字

数字含义出处
30 = 21 + 6 + 3收录工作数,按 2PC / 2PC-Dealer / 3PC 分组(点数为本笔记推算)Table 1,paper.txt:361–410,p8
12.7%BERT-Base 在 MPC 下 MatMul 占运行时间的比例(原文语境是 2PC-Dealer)§5.2,paper.txt:594–595,p12
87.3%非线性层占比,由 100 − 12.7 推算,原文没有这个数本笔记推算
280.99 GBIron 跑 BERT-Base 的通信量(I./O. (128,1),3 Gbps / 0.8 ms)Table 12,p21
1756×Iron 与 NEXUS 的通信量之比(280.99 / 0.16)本笔记推算
8.8 点MPCFormer 在 STS-B 上的精度损失(89.1 → 80.3)Table 12,p21
0.16 点NEXUS 在 RTE 上的精度损失(70.04 → 69.88)Table 12,p21
22 倍同一个 Softmax 算子,Iron 与 BumbleBee 的通信量之比(3596.32 / 162.24 MB)Table 8,p16
31.7 倍同一个 Iron Softmax,LAN 60 s 对 WAN 1900 sTable 8,p16

怎么用这份笔记:复习先看 §0–§3;写 related work 用 §2、§4、§5;准备引用之前先看 §6(勘误)和 §10(存疑),这两节决定你能不能放心把那句话写进论文。

1. 五站地图

原文的物理顺序是"定义 → 密码学 → 威胁模型 → 瓶颈 → 线性 → 非线性 → 评测"。复习时更好用的是因果链:问题怎么定义 → 手里有什么工具 → 工具决定瓶颈在哪 → 于是有了两条解法路线 → 最后怎么公平地量它。

站这一站讲清楚什么核心结论原文位置
① 问题与定义PTI 场景、Definition 1(正确性 + 安全性)、两类正式威胁模型隐私是双向的;安全只覆盖协议执行过程,不覆盖推理结果§2.1–§3,paper.txt:90–117、280–292,p2–p3、p6
② 密码学工具箱FE / MPC / HE 的分工,三类 setupMPC 拆散→通信,HE 锁住→计算;setup 决定乘法能否预支§2.3、§4.2、附录 A,203–279、320–344、1345–1375,p4–p6、p7、p24
③ 瓶颈之争两大瓶颈,以及瓶颈如何随 setup 迁移2PC 卡 MatMul,2PC-Dealer / 3PC 卡非线性§4.1–§4.2,300–344,p6–p7
④ 解法路线线性层 packing;非线性三条路线(换函数 / 多项式 / LUT)线性靠"排列"省操作且几乎免费;非线性靠"近似"省操作,赔精度§5–§6,461–1083,p9–p19
⑤ 评测与代价Table 11 模型配置、Table 12 端到端对比、两条独立轴通信相对可比,运行时间几乎不可比,精度最可信§7、Table 11/12,1085–1134、1102–1115、1150–1198,p19–p21

这条因果链也顺手解释了综述的一个结构性弱点:五站里前四站都写满了,第五站承诺的 "evaluation guidelines" 却从未独立成节(§1 第 73 行提到,正文没有对应小节),结论章干脆是空的(E1)。所以这份综述适合当地图,不适合当结论来引用。

2. 基础概念

2.1 问题与 Definition 1

场景是最基本的 MLaaS(machine learning as a service):客户端持有输入 x,服务器持有模型 M,双方都不愿意把手里那份交出去。注意"隐私"是双向的——客户端的输入与服务器的模型参数和结构同时受保护。很多论文只强调前者,读的时候要盯住后者。

Definition 1 给的是两方协议的标准安全定义(paper.txt:90–117):

设 Π 是 C(客户端,持 x)与 S(服务器,持 M)之间的两方协议。
 
条件一(正确性):Π 结束时 C 得到 y,且 y = M(x)。
条件二(安全性):存在 PPT 模拟器,双向成立:
  · 腐化 C:Sim_C(x, y)   ≈ View_C^Π(x, M)
  · 腐化 S:Sim_S(M)      ≈ View_S^Π(x, M)      (y 本来就要给 C)
 
"≈" 指计算不可区分;View 是参与方在协议中看到的一切(输入、随机数、收到的消息)。

三条读法,缺一条就会误用:

  • 两个条件互相独立。 正确性说的是"算出来的东西对",安全性说的是"过程没多泄漏"。一个协议可以完全正确却毫无隐私(明文算完再加密返回),也可以很私密但算错(近似过头)。
  • 模拟器范式证明的是"没有超出规定输出的信息"。 安全性不是"攻击者看不懂",而是"攻击者能自己模拟出来,所以什么也没学到"。
  • 边界是明确的:不防基于 y 的攻击。 综述原文就写了 model inversion、property inference 这类攻击不在范围内。所以"PTI 保证隐私"这句话,只能在"协议执行过程"这个限定下使用。

2.2 三种威胁模型,别混

模型英文攻击者能做什么硬约束本综述中的使用
半诚实semi-honest / honest-but-curious严格按协议执行,但被动收集并分析 transcript不撒谎、不改输入、不提前中断绝大多数工作的默认假设(§3)
恶意malicious任意偏离协议:撒谎、改输入、提前退出需要额外一致性检查(MAC、cut-and-choose 等),代价高§3 没有正式定义;只在 §4.2 讲 PrivFormer / PPTIF 的句子里出现(paper.txt:342)
诚实多数honest-majority假设多数计算方诚实且不串谋,攻击者最多腐化少数方至少 3 方;"多数"指计算方数量只有 PrivFormer [1]、PPTIF [32](§4.2、§5.3)

关键区别不是"谁更安全"的线性排序,而是协议要不要为偏差行为付成本。半诚实假设下,只需保证 transcript 可模拟;恶意假设下,还要保证偏差会被抓住——同样的功能,恶意版本通常贵一个量级(本笔记判断,综述未给统一数字)。

三个高频混淆点:

  • 半诚实不等于没威胁。 它的意思是"攻击者唯一的武器是 transcript 分析",而不是"攻击者不存在"。
  • 诚实多数不是一种协议,而是一种假设。 它必须有至少 3 方、且"多数不串谋";2PC-Dealer 里那个只发牌、不参与计算、不接收输入的 dealer 不能算作"一方",所以 2PC-Dealer 不是 3PC。
  • 恶意模型在原文里没有小节。 "三种威胁模型"是这份笔记的复习框架;引用时不要写"该综述定义了三类威胁模型"。

2.3 MPC 与 HE 的一句话本质

MPC(secure multi-party computation)HE(homomorphic encryption)
秘密形态拆成份额,散在多方手里锁在一份密文里,只有一方持有
一句话本质谁也看不清,但大家一起算谁也看不清,但一个人就能算
谁在算多方交互单方本地
主要账单通信(轮数 × 每轮数据量)计算(密文乘法、旋转、噪声预算)
交互性必须交互天然非交互(加密一次,服务器可单方算完)
适合带宽好、延迟不敏感的机房移动端、边缘、上行带宽差
本综述锚点Iron 的 Softmax 3596.32 MB(Table 8)NEXUS 的 Softmax 0 MB(Table 8);端到端 1125 s(Table 12)

选择直觉只有一句:如果瓶颈在网络,就往 HE 走;如果瓶颈在算力,就往 MPC 走。 NEXUS 把 BERT-Base 的通信压到 0.16 GB(Table 12),代价是 1125 s;Iron 只用 475 s,但通信是 280.99 GB。两者没有谁"更好",只有谁更贴合你那条链路的物理条件。

2.4 三类 setup:区别在"谁能提前备料"

setup参与方多出来的信任假设乘法怎么变便宜Table 13 的评级
2PCC + S,两方无(互不信任)不能预支:现场用 HE 加密一侧份额,或现场做 Beaver triple2 方;通信 +;实用性 +;可扩展性 +
2PC-DealerC + S 计算,dealer 只在预处理阶段发牌信 dealer 不串谋,且它不参与计算预支:dealer 提前分发与输入无关的相关随机性(input-independent correlated randomness)3 方(Trusted Dealer);计算 +;可扩展性 ++
3PC三方honest-majority:至少两方诚实且不串谋预支 + 复制秘密共享:2-out-of-3 RSS,乘法变成本地算 + re-sharing3 方;通信 −;计算 +;实用性 −;可扩展性 ++

Table 13 的加号只是相对强弱序(+++ 最强、+ 最弱),不是分数,也不是实验测量值。

现在说最关键的一句:2PC-Dealer 与 3PC 归为"预支",不是"分摊"。 分摊是把同样的工作量切给更多机器并行做,总通信量不会因此下降(往往还会上升);预支是把"与输入无关"的那部分工作挪到输入到来之前做完,于是在线阶段的乘法退化成几次本地加法加一次极小的 re-sharing。

这解释了一个反直觉现象:3PC / 2PC-Dealer 不仅更快,通信也更少(Table 13 里 3PC 的 Comm 是 −,比 2PC 的 + 更低)。如果只是"多了一台机器帮忙算",通信不可能下降。反过来说,任何声称"用 3PC 把 MatMul 分摊掉了"的说法,都还没理解自己在说什么。

2PC        :谁都不信,乘法现场做          → MatMul 贵,账单集中在矩阵乘
2PC-Dealer :信一个只发牌、不算数的 dealer → 乘法预支 → 非线性浮出水面
3PC        :信"多数诚实",用 RSS 把乘法   → 同 2PC-Dealer,但多付一份通信
             变成本地加法

Beaver triple 是"预支"的最小例子。 2PC 现场做一次乘法,标准做法是:预处理阶段拿到随机三元组 a、b、c = a·b 的份额;在线阶段公开 d = x − a 与 e = y − b,于是

x·y = (a + d)(b + e) = c + a·e + d·b + d·e

d、e 是公开的掩码值,a、b、c 仍在份额里,所以每一方都能本地算出自己那份,只需要一次开环(互相 disclose d、e)。这恰恰说明"预支"预支的是什么:triple 与输入无关,可以提前备好;在线只剩本地加法和一次开环。2PC 不让第三方备料,就得自己在线生成 triple,乘法因此贵;dealer 或 3PC 的 RSS 把这份工作挪走,乘法才变便宜。

代价是把信任从密码学挪到社会假设:作者自己引 [20] 批评 "the assumption of a trusted dealer or non-colluding server parties is sometimes considered unrealistic in practice"(p7,paper.txt:344)。所以三类 setup 没有安全强弱的总序,只有"你愿意信谁"。

3. 瓶颈之争:12.7% 与 87.3%

3.1 那笔账怎么读

原文只有一句(§5.2,paper.txt:594–595,p12):

matrix multiplications account for only 12.7% of the overall BERT-Base model runtime under MPC, and the communication overhead is also much lower than that of the non-linear layer.

三件事必须一起读:

  • 12.7% 是"运行时间占比",不是"计算量占比"。 87.3% 是 100 − 12.7 的推算,原文没有这个数;引用时要写 "derived" 或者干脆只引 12.7%。
  • 归属要小心。 这句 "under MPC" 出现在讲 MPCFormer [28] / Wang et al. [59] 的段落里,而这两项都是 2PC-Dealer。把它读成"纯 2PC 下 MatMul 只占 12.7%"是这份笔记见过最高频的误读——纯 2PC 的账本长相反:Iron 跑同一个 BERT-Base 要 280.99 GB 通信(Table 12,p21)。
  • 综述自己的结论是"迁移"而不是"消失"。 按 §4.2 的说法,2PC 下所有工作都在优化 MatMul,因为 A·B 的每一对元素相乘都要额外保护;一旦有了 helper party,"the introduction of a 'helper party' has effectively eliminated matrix multiplication as a significant bottleneck"(paper.txt:343),非线性层才成为主战场。

3.2 为什么瓶颈会迁移

2PC:     A·B  →  每对元素相乘都要保护  →  HE 加密 / 交互  →  通信与计算双爆
          ⇒ 账单集中在 MatMul;非线性只有 3 类算子,反而是次要项
 
2PC-Dealer / 3PC:乘法可以预支  →  MatMul 退化为"本地加法 + 少量 re-sharing"
          ⇒ MatMul 掉到 12.7%;剩下 87.3% 是 exp / max / 除法 / erf / tanh / 开方
          ⇒ 这些函数没有可用的代数结构,只能"换掉、逼近、或查表"

所以"瓶颈"不是模型的客观属性,而是 模型 × 工具 × setup 三者的函数。同一个 BERT-Base,在 2PC 下瓶颈是 MatMul,在 2PC-Dealer 下瓶颈是 Softmax、GeLU、LayerNorm。这正是综述按 setup 组织、而不是按年份组织的理由。

3.3 为什么"贵不贵不看 FLOPs"

  • FLOPs 数的是数学运算量;密码学计费的是操作次数。HE 里一次逐槽乘法覆盖 n 个标量乘积,只算一次密文乘法;一次旋转搬运 n 个槽,却要做一次自同构加一次密钥切换。所以"做了多少乘积"和"付了多少钱"之间没有单调关系。
  • 因此不能推出"参数最多的层最贵"。BERT-Base 的 MLP 宽 3072,是纯 MatMul;Softmax 只有 128 × 128,Iron 却要 3596.32 MB(Table 8)。
  • 判断一个算子贵不贵的正确问法:它能不能写成"加法 + 逐槽乘法"?如果不能,要几层乘法深度、要不要查表、表有多大?

4. 解法路线

4.1 线性层:对角线打包

问题:C = A·B,C_{i,j} = Σ_k A_{i,k} B_{k,j}。HE 的 SIMD 槽位让"逐槽乘法"极便宜,难的是把 k 维的内积摊到槽位上——k 在槽里是"横着"的,直接乘只会得到逐元素积,不会求和。

解法是把矩阵沿对角线切(Gazelle [24] 的做法,BOLT [43] 采纳):

n 个槽位(n 是多项式环维度,也是 SIMD 槽数)
rot(v, d)_i    = v_{(i + d) mod n}          ← 循环左移 d 格
diag_d(A)_i    = A_{i, (i + d) mod n}        ← A 的第 d 条对角线
 
恒等式:A·x = Σ_{d=0}^{n-1} diag_d(A) ⊙ rot(x, d)

3×3 的手算版本(n = 3):

A = [[a00, a01, a02],        x = [x0, x1, x2]
     [a10, a11, a12],
     [a20, a21, a22]]
 
diag_0 = [a00, a11, a22]  ⊙ x          = [a00·x0, a11·x1, a22·x2]
diag_1 = [a01, a12, a20]  ⊙ rot(x, 1)  = [a01·x1, a12·x2, a20·x0]
diag_2 = [a02, a10, a21]  ⊙ rot(x, 2)  = [a02·x2, a10·x0, a21·x1]
                                          ────────────────────────
求和后第 0 槽 = a00·x0 + a01·x1 + a02·x2 = (A·x)_0
求和后第 1 槽 = a11·x1 + a12·x2 + a10·x0 = (A·x)_1
求和后第 2 槽 = a22·x2 + a20·x0 + a21·x1 = (A·x)_2

成本对比(n = 128):

做法密文乘法旋转FLOPs
朴素逐元素16384016384 个标量乘积
对角线打包12812816384 个标量乘积

FLOPs 一模一样,密码学账单差了 128 倍。 这是"按操作次数计费"最干净的例证。严格说,这张表里的"朴素"指逐元素加密相乘的教科书版本;真实实现常用列打包把明文权重的乘法数也压到 n 级,代价是密文份数与重排,所以"128 倍"是数量级直觉,不是任意实现的实测比值。

那为什么说旋转最贵?三条理由,第三条最容易被忽略:

  1. 旋转不是"移位指令",而是自同构(Galois automorphism)+ 密钥切换(key switching):要预先生成 Galois keys(一份很大的 evaluation key),每次切换还要分解、相乘、相加。
  2. 单次旋转的代价通常与一次密文乘法同量级,甚至更高;n 次旋转就是 n 份这样的代价。
  3. 它不能被 SIMD 平摊。SIMD 免费的是"一条指令覆盖 n 个槽",而旋转恰恰是移动这 n 个槽的那一步;n 次重排就是 n 次独立开销。

所以对角线打包的残留账单是 n 次旋转。后续所有 packing 优化,本质上都在减少旋转次数或减小每次旋转搬运的数据量,而不是减少乘法次数:

工作packing 手法省的是证据
BOLT [43]密文按列打包 + 明文用对角线打包计算:把密文×密文的乘法数降到 n 级outer product + partial rotation 加速 Q·Kᵀ;MPC-HE 混合让噪声自动重置,不做 bootstrap(§5.3)
BumbleBee [34]IntrLeave:把多个多项式交织进一个密文通信:同样槽数用更少密文Softmax 162.24 MB,是同表 Iron 的 1/22(Table 8)
NEXUS [64]RNS-CKKS + SIMD 密文压缩 + slots folding通信:压到接近 0Softmax / GeLU / LayerNorm 三表通信量均为 0 MB(Tables 8–10)

一句提醒:"旋转 = 自同构 + 密钥切换、代价与一次密文乘法同量级"是 HE 领域的标准事实,但综述只点名了 Gazelle 的对角线打包,没有给恒等式和代价分析——上面这段是本笔记补充的。

4.2 非线性层:三条路线

非线性只有三类算子:Softmax、GeLU、LayerNorm。但它们是"密码学不友好"的全部来源。三条路线是换掉它 / 逼近它 / 查表,区别在于"把误差放在哪、把成本放在哪"。

路线做法成本落在哪精度代表工作
换函数用密码学友好的 F 整体替换训练侧(必须蒸馏)+ 精度会崩,靠 KD 兜底(x+c)²:MPCFormer [28]、SecFormer [36];ReLU:MPCViT [63];(a·x+c)²:SAL-ViT [65];(x+c)⁴:RNA-ViT [6]
多项式逼近Taylor / Maclaurin / Chebyshev / 分段低阶乘法深度与计算可控,靠阶数换BOLT [43] 的 2.7/4 阶分段;PUMA [12]、NEXUS [64] 的 3/6 阶分段;BumbleBee [34];CipherGPT [20];Rovida [49] 的 6 阶 Maclaurin;SecFormer [36] 的 Fourier 级数
LUT 查表预处理建表,运行时不经意查表(oblivious lookup)通信:整张表要卷进去几乎无损,只剩量化误差Iron [18]、SIGMA [17]、Curl [50]、CipherGPT [20] 的倒数

换函数:最省密码学操作,误差最大。还有一个隐蔽的误差来源:近似式可能根本不是为这个函数设计的——MPCFormer 的 0.125x² + 0.25x + 0.5 原本是 Chou et al. [9] 给 ReLU 做的近似,直接搬到 GeLU 上,误差就不只是"阶数低",而是"近似对象错了"。原因很直白——替换函数在数值上不是原函数,模型必须在替换后的函数上重新训练或蒸馏,否则分布直接漂移。证据是 MPCFormer 在 STS-B 上从 89.1 掉到 80.3(8.8 点),而它已经是带 KD 的版本(Table 12)。同一篇的 QNLI 只掉 1.1 点,说明误差取决于任务对函数形状的敏感度,不是均匀的——这也是为什么"换函数"路线必须逐任务报点,只报平均分会骗人。

多项式逼近:主要手段是"范围裁剪 + 分段 + 重复平方"。exp 有两个值得记住的技巧:BOLT 先把 x_i − x̂ 拆成 (−ln2)·z + p(z 是非负整数,p 落在 (−ln2, 0]),用二次式 0.3585(p+1.353)² + 0.344 逼近 exp(p),再用 2^z 移位;NEXUS / BumbleBee / CipherGPT / PUMA 用重复平方 (1 + x/2^r)^{2^r},并把区间截到 a 以下直接取 0(NEXUS a = −inf, r = 6;BumbleBee a = −13, r = 6;CipherGPT a = −16;PUMA a = −14, r = 5)。

阶数不是越高越好。Rovida [49] 的倒数用 119 阶 Chebyshev,数学上漂亮,但把"省下的通信"换成了"多出来的乘法深度",在 HE 里就是更多噪声预算——这笔账在 FLOPs 表里完全看不见。

GeLU 的分段(式 20)值得单独记:左尾取常数 −c,中间 (a, b] 用 3 阶、(b, 3] 用 6 阶,右尾取 x − c;PUMA / NEXUS 取 a = −4, b = −1.95, c = 0,BumbleBee 取 a = −5, b = −2, c = 10⁻⁵。两头都是线性或常数,这是 GeLU 能被低阶多项式吃掉的关键;BOLT 更进一步用 abs(x) 的 4 阶加 0.5x,把奇对称性用满。

LUT:通信账是硬的——整张表(2^b 个条目)都要进协议,规模随位宽指数涨。Iron 的 Softmax 是 3596.32 MB,BumbleBee 同算子 162.24 MB,差 22 倍(Table 8)。精度账则没有想象中那么一边倒:LUT 只引入量化误差,做得好可以到 10⁻⁵ 量级(Iron 的 Softmax 是 3.2×10⁻⁵,Table 8),但它并不必然优于多项式——同一张表里 BOLT 是 1.4×10⁻⁶。NEXUS 用 SIMD 压缩把通信压到 0 MB,代价是 242 s——它把"通信"换成了"计算"。

三个函数各自的最难点

函数数学形式最难点代表工作
Softmaxexp(x_i − x̂) / Σ_j exp(x_j − x̂)不是指数,是 max(比较)与 1/Σ(倒数在 0 附近发散);难度序:直接指数最易、max 中、倒数最难Iron LUT + SIRNN 协议;SIGMA 低位宽 LUT 做 max/负指数/倒数;NEXUS Goldschmidt 除法;BOLT 分解 + 二次式
GeLU(x/2)(1 + erf(x/√2)) 或 tanh 近似erf / tanh 无代数结构;必须分段,且尾部要接回线性THE-X / PowerFormer 换 ReLU;MPCFormer 用 0.125x² + 0.25x + 0.5;BOLT 的分段 4 阶;SIGMA 近线性 + δ 修正
LayerNormγ(x_i − μ)/σ + β,σ = √(Σ(x_i − μ)²/d)1/√·(rsqrt)与全局 reduction;而且要小心别把统计量算错NEXUS / PowerFormer 牛顿迭代;CipherGPT LUT;SIGMA 13-bit 浮点编码索引;PrivFormer 用 FALCON 的 square-root inverse

LayerNorm 上还有一个反面教材,价值比正面案例大:Iron 把 γ/σ 和 β 并进下一层权重,只剩 [x_i − μ](式 25),看起来代数上完全正确;但 BOLT 指出它忽略了残差连接,性能会 "close to random guessing"(paper.txt:1064)。这就是 M16:代数正确的化简不一定是好优化,因为被消掉的项可能是模型数值稳定的支点。

4.3 选型原则

三条路线不是"哪个先进",而是"你手里哪个资源富裕":网络富裕就用 LUT(Iron / SIGMA),算力富裕就用多项式(BOLT / NEXUS),两者都紧就换函数 + 蒸馏(MPCFormer)。综述没有给出自动选择的方法,这本身是个空白(§10)。

5. 评测:两条独立的轴

5.1 两条轴,不是一个分数

轴一(系统):通信  ↔  计算        ← 由 MPC / HE 的比例决定
轴二(数值):精度  ↔  近似开销    ← 由换函数 / 多项式阶数 / LUT 位宽决定
 
两条轴彼此独立:可以"通信少 + 精度高"(NEXUS),
                也可以"通信多 + 精度低"(Iron 的部分算子)。

最干净的对照是 BERT-Base 上的两个极端:

工作路线通信运行时间精度损失出处
MPCFormer [28]2PC-Dealer + 换函数 + KD12.089 GB55.320 sSTS-B 掉 8.8 点Table 12,p21
Iron [18]2PC + LUT280.99 GB475 sSTS-B 掉 0.21 点,MRPC / QNLI 掉 0.1 点级,SST-2 / RTE 反而提升Table 12,p21
NEXUS [64]纯 HE + 压缩0.16 GB1125 sRTE 掉 0.16 点Table 12,p21

如果只有一根轴,就无法解释为什么 NEXUS 通信最少、精度最好,却最慢。"纯 HE 精度一定差"是错觉:NEXUS 掉 0.16 点,MPCFormer 掉 8.8 点,方向恰好相反。THE-X 把 ReLU 留给用户解密后算,是作者的工程取舍(原文自己叫它 "aggressive approximation"),不是 HE 的宿命。

5.2 读表的规矩

维度能不能横向比理由
通信量大体可比主要由协议与 packing 决定,受网络影响小;但仍要看 I./O. size
运行时间几乎不可比受网络带宽/延迟、硬件、batch、实现质量、计时口径共同影响
精度最可信只取决于模型与近似,和机器无关;但要看数据集与是否 KD
通信设置必须一起报同一实现换个网络就能差一个量级

网络档位在原文里至少有五种,Table 8 的脚注把 LAN / WAN 分开报:

档位(原文脚注)带宽 / 延迟出现在
LAN11 Gbps / 0.5 msBumbleBee
WAN2400 Mbps / 4 msBumbleBee
LAN33 Gbps / 0.8 msIron、BOLT、NEXUS、CipherGPT
LAN49.4 Gbps / 0.05 msSIGMA
WAN5100 Mbps / 80 msIron、BOLT、NEXUS

由此得到三条硬规矩:

  1. 同一张表里的秒数也不能横排。 Iron 的 Softmax 在 LAN 是 60 s、在 WAN 是 1900 s(Table 8),31.7 倍差距来自网络,不来自算法。
  2. 引用运行时间必须带四件套:I./O. size、网络条件、硬件、batch。缺一件就不可复现。
  3. 模型大不等于通信大。 BumbleBee 的 BERT-Large 是 20.85 GB,LLaMA-7B 只有 6.82 GB(Table 12),因为前者 I./O. 是 (128,1)、后者是 (8,1)。看到"7B 模型通信更少"先别惊讶,去看 I./O. size。

6. 勘误清单 E1–E14

这是这份笔记最重要的增值部分:下面 14 条是逐行核对 paper.txt 得到的,不是对内容观点的商榷,而是排版、引用、数据完整性层面的硬错误。写论文引用这篇综述时,凡涉及这些位置,都要绕开或自己补正。

编号位置(paper.txt 行号 / 表)问题建议修正严重度
E11136§8 CONCLUSION 只有标题,正文完全空白补写结论,或删除该章🔴 高
E286§1 承诺 "In Section ??, we discuss challenges and future directions",全文没有这一章补写该章,或删掉这句承诺🔴 高
E386、296、463、525四处未编译的交叉引用:Section ??、(??)-(??)补 \ref 并重新编译🟡 中
E4321、340§4.2 正文让读者看 "Table 4",但被描述的内容(谁优化了 MatMul / GeLU / Softmax / LayerNorm)在 Table 1;Table 4 讲的是 MPC backbone改指 Table 1,或改写句子🟡 中
E5838(Table 8)、889(Table 9)NEXUS 被误标为 [43],而 [43] 是 BOLT改标 [64](Table 10 的 1057 行标对了)🟡 中
E6500(Table 4)Curl 被误标为 [17],而 [17] 是 SIGMA改标 [50](Table 1 的 404 行标对了)🟡 中
E7280§3 标题拼写为 "PIVACY THREATS IN SECURE INFERENCE"改为 "PRIVACY"🟢 低
E835–39 与 195–201§1 与 §2.2 末整段逐字重复(数据控制权、服务器滥用、集中存储风险)删掉后一处🟢 低
E974–79§1 贡献列表说 "summarized as follows",却只列了 (1)(2)补 (3)(4),与 71–73 行提到的四项对齐🟢 低
E1081–87章节导览顺序为 §2 → §4 → §5 → §6 → §7 → §? → §8,跳过 §3补上 §3🟢 低
E11342"two out of three parties are honest adversaries" 自相矛盾改为 "are honest"🟢 低
E12354残句以 "...e.g., mobile devices. THE-X [7]" 结尾补全或删除🟢 低
E13Table 12(p21)BumbleBee 的 BERT-Base 行通信量与运行时间均为 "−",而同组的 BERT-Large / LLaMA-7B / GPT2-Base / ViT-Base 都有值补数据,或注明该配置未测⚪ 数据完整性
E14Table 12(p21)THE-X 行完全未报通信量与运行时间,只有精度同上⚪ 数据完整性

两点使用说明:

  • E1–E2 是结构性问题,不是笔误:一篇综述没有结论、没有 challenges 章,说明它更像"文献地图"而不是"领域判断"。引用它的结论性句子时,最好回到被引的一手论文。
  • E5–E6 这类编号错位,在 PDF 里几乎不可见,但在你做引用链时会直接把读者带到错的论文上。这类错误值得在笔记里长期保留。

本笔记补充发现(不在原 E 清单内,引用前也值得一看):

  • Table 3(p9)把 BOLT 标成 [26],而 [26] 是 CrypTen;BOLT 的编号是 [43](Table 1、Table 8 均如此)。
  • Table 4(p10)的 2PC 组里出现了一次 SecFormer [36],2PC-Dealer 组里又出现一次(paper.txt:482 与 498),两行的协议与框架列完全相同;同时 Table 4 缺了 Table 1 里的 CipherFormer [58] 与 Zimerman et al. [69]。Table 1 是 30 行,Table 4 是 29 行(含重复)。
  • 12.7% 的 setup 归属问题(见 §3.1 与 §10),严格说不是勘误,而是"原文措辞允许误读"。

7. 常见误解(从 M1–M16 中挑 10 条)

#误解纠正
M1PTI 只保护客户端输入隐私是双向的:模型参数与结构同样要保护;两方都可能是攻击者(Definition 1)
M4半诚实方会撒谎、改输入或中断不会。半诚实严格遵守协议,唯一武器是分析 transcript;能撒谎的是恶意模型
M5诚实多数是一种协议它是一种安全假设,要求至少 3 方且多数不串谋;协议本身另说(RSS、re-sharing)
M62PC-Dealer 就是 3PC不是。dealer 不接收输入、不参与计算,只在预处理阶段发与输入无关的相关随机性
M73PC / 2PC-Dealer 把 MatMul 分摊掉了是预支,不是分摊。分摊不会降低总通信,预支会——这就是为什么 3PC 的 Comm 反而更低
M9FLOPs 能判断哪层最贵计费单位是密码学操作次数;算 n 个标量乘积和做 n 次旋转,账单完全不同
M10纯 HE 的精度一定更差与事实相反:NEXUS 掉 0.16 点,MPCFormer 掉 8.8 点。精度取决于近似方式,不取决于 MPC / HE
M11精度与通信是一根跷跷板是两条独立轴:可以通信少且精度高(NEXUS),也可以通信多且精度低(Iron 的部分算子)
M13可以直接横向比较不同论文的运行时间不能。必须带 I./O. size、网络条件、硬件、batch;同一张表内的 LAN / WAN 都能差 31.7 倍
M16代数上正确的化简一定是好优化Iron 的 LayerNorm 化简代数正确,但忽略残差连接,BOLT 说它 "close to random guessing"

8. 自测题(8 道)

Q1(概念) Definition 1 的两个条件分别是什么?为什么缺一不可?

答案:正确性要求输出等于明文模型输出 y = M(x);安全性要求存在 PPT 模拟器,双向地让 View 与模拟结果计算不可区分。缺一不可:只满足正确性可以明文计算,只满足安全性可以返回随机数——前者无隐私,后者无用。

Q2(概念) 三个 setup 的本质差别是什么?为什么 2PC-Dealer 不能算成 3PC?

答案:差别在"乘法能否预支"以及为此付出的信任假设。2PC 现场做乘法;2PC-Dealer 让 dealer 在输入到来前分发与输入无关的相关随机性;3PC 靠 honest-majority 加 2-out-of-3 RSS 在线重共享。dealer 不接收输入、不参与计算,所以它不是"一方";把 2PC-Dealer 叫 3PC 会把"信任一个发牌者"和"信任多数计算方"两种假设混为一谈。

Q3(数字) 12.7% 是什么的占比?它属于哪个 setup?87.3% 是怎么来的?

答案:是 BERT-Base 端到端运行时间中 MatMul 的占比(§5.2,paper.txt:594–595)。原文措辞是 "under MPC",但语境是 2PC-Dealer 的 MPCFormer / Wang et al. 段落,不能当作纯 2PC 的数字。87.3% 是 100 − 12.7 的推算,原文没有。

Q4(数字) Iron 的通信量是 NEXUS 的多少倍?NEXUS 通信近乎为零,为什么端到端反而比 Iron 慢 2.4 倍?

答案:280.99 / 0.16 ≈ 1756 倍(Table 12)。先要剥离网络:两者分别挂在 3 Gbps / 0.8 ms 与 100 Mbps / 80 ms 上,秒数本来就不能直接比。NEXUS 的 1125 s 主要不是传输——0.16 GB 在 100 Mbps 下量级只有十几秒(本笔记推算)——而是纯 HE 的密文乘法与自同构;它把成本从通信挪到了计算。通信与计算是两条轴,不能互相抵扣。

Q5(概念) 对角线打包把一个 n × n 矩阵乘向量从 n² 次密文乘法降到 n 次乘法加 n 次旋转。既然 FLOPs 没变,为什么还更快?

答案:因为密文乘法是密码学操作,一次覆盖 n 个槽,n² 次逐元素乘要付 n² 份代价;对角线法只付 n 份乘法加 n 份旋转。旋转虽贵(自同构 + 密钥切换,代价接近一次密文乘法),但仍是 n 量级,总计 2n 而不是 n²。

Q6(判断) "MPCFormer 在 STS-B 上掉 8.8 点,NEXUS 只掉 0.16 点,所以 HE 比 MPC 精度高。" 这句话哪里错了?

答案:把路线(MPC / HE 比例)和近似方式(换函数 / 多项式 / LUT)混成了一个变量。MPCFormer 掉点多是因为它用 (x+c)² 换掉 Softmax、只能靠 KD 兜底,不是因为它用 MPC;NEXUS 精度好是因为它在纯 HE 下用高精度多项式与迭代(Softmax 误差 3.1×10⁻⁶,Table 8),不必为通信牺牲阶数,不是因为"HE"本身。正确说法:精度取决于近似方式与是否蒸馏,与 MPC / HE 的选择正交。

Q7(判断) 论文 A 报 BERT-Base 推理 50 s,论文 B 报 100 s,能否说 A 快一倍?

答案:不能。必须核对 I./O. size、网络条件、硬件、batch 与计时口径。Table 8 里同一个 Iron Softmax 在 LAN 是 60 s、WAN 是 1900 s,网络一项就能造成 31.7 倍差异;Table 12 里 BumbleBee 的 BERT-Large 通信 20.85 GB 反而高于 LLaMA-7B 的 6.82 GB,也只是因为 I./O. size 不同。

Q8(判断) "3PC 用三台机器并行,所以 MatMul 的通信被分摊掉了。" 这句话错在哪?

答案:错在"分摊"。3PC 的收益来自预支与 RSS:乘法变成各方的本地计算加一次 re-sharing,在线通信量下降;如果只是把同样的工作量并行切分,总通信不会降。证据是 Table 13 里 3PC 的 Comm 标为 −(低于 2PC 的 +),而"分摊"不可能产生这个方向的变化。

9. 原文定位索引

行号指 paper.txt(pdftotext -layout 抽取,1380 行);页码指 PDF 页。

主题章节 / 表paper.txt 行号页码
引言、贡献列表、章节导览§125–88p1–2
PTI 场景与 Definition 1§2.190–117p2–3
Transformer 背景与隐私风险§2.2119–201p3–4
FE / MPC / HE 工具箱§2.3203–279p4–6
威胁模型(半诚实、诚实多数)§3280–292p6
密码学层面的挑战§4.1300–317p6–7
三类 setup 与瓶颈迁移§4.2320–344p7
30 项工作总览Table 1361–410p8
各工作优劣(含 THE-X 隐私缺陷注)Table 2420–442p9
可用实现链接Table 3444–451p9
按 MPC backbone 的总览(含重复行)Table 4469–503p10
可用 backbone 链接Table 5506–518p10
线性层:MatMul 协议§5.1528–565p11
线性层:MPC / HE / 混合三路线§5.2–§5.3566–666p11–13
12.7% 的原始句子§5.2594–595p12
HE 方案对比(含 bootstrapping 列)Table 7667–677p14
Softmax:换函数 / exp 近似 / 倒数§6.1687–843p14–16
Softmax 单算子对比(含 LAN / WAN)Table 8826–841p16
GeLU:换函数 / 分段多项式 / LUT§6.2844–1013p16–17
GeLU 单算子对比Table 9877–889p17
LayerNorm:rsqrt 与化简风险§6.31014–1083p18–19
LayerNorm 单算子对比Table 101047–1057p19
评测对比与两条轴§71085–1134p19–20
模型配置(层数 / d / 头数 / MLP / 参数量)Table 111102–1115p20
结论(正文为空)§81136p20
端到端资源与精度对比Table 121150–1198p21
三类 setup 的正式说明附录 A1345–1375p24
setup 对比矩阵Table 131363–1375p24

10. 存疑与引用边界

这一节不是挑错,而是"这句话能不能直接写进你的论文"。五处需要加限定:

  1. 12.7% 的 setup 归属。 原文 "under MPC" 语义宽泛,但段落对象是 2PC-Dealer。引用时写 "under the 2PC-Dealer setting (MPCFormer / Wang et al.)",不要写 "in 2PC"。
  2. 87.3% 不是原文数字。 它是 100 − 12.7 的推算。可以自己算,但必须标 derived,或者只引 12.7%。
  3. "三种威胁模型"是笔记框架,不是原文结构。 §3 只正式定义了半诚实与诚实多数;恶意模型只在 §4.2 一句里被提及。写 related work 时说"该综述讨论了半诚实与诚实多数假设,并提及恶意情形"更准确。
  4. FE 的定位。 §2.3.1 说 FE 只把第一层放密文、其余在明文算,会 "leak some client data information to the server";但综述没有明确判定 FE 不满足 Definition 1。Table 2 的 "Lack of strict privacy protection" 是针对 THE-X 的中间结果,不是针对 FE。两句不能合成一句引用。
  5. Table 1 与 Table 4 名单不一致。 前者 30 行、后者 29 行且 SecFormer 出现两次;做系统性统计(比如"2PC 有 21 篇")时,要说明口径是 Table 1。

三条引用建议:

  • 引"30 项工作 / 三类 setup"时,用 Table 1 并注明点数是自己数的。
  • 引端到端数字时,必须同时给出 I./O. size 与网络条件(Table 12 的 Comm. Set. 列就是干这个的)。
  • 想引"挑战与未来方向",别引 §8(空的)——回到 §4.1、§7 和被引的一手论文自己总结。

相关阅读

评论

评论区尚未配置:部署 Twikoo 后端后,将 envId 填入 lib/site.ts。