拆分学习泄露:把模型切两半「原始数据留在本地」,服务器仍能从中间激活重建你的输入
一句话摘要:拆分学习把模型从某层切成两半——客户端跑前几层、把中间激活(smashed data)发给服务器跑剩下的——常被说成「原始数据不出本地,所以隐私」。结论先行:这不等于私有。Feature-Space Hijacking Attack(Pasquini 等,CCS 2021)证明,恶意服务器能主动把拆分模型引导进不安全状态,从中间激活重建出客户端的私有训练输入(在 MNIST / Omniglot / CelebA 上重建图像);UnSplit(Erdoğan 等,WPES@CCS 2022)更表明连诚实但好奇的服务器——只知客户端结构、不需主动干预——也能反演(MNIST / Fashion-MNIST / CIFAR-10 上重建 MSE ≈ 0.08–0.15)。别把「没传原始像素」当隐私。
机制:我这边发生了什么
拆分学习里,客户端只持有模型的前几层:本地样本走前向,算到拆分层得到一份中间激活(intermediate / smashed activations),把这份激活发给服务器,由服务器跑后续层、回传梯度做联合训练。「原始数据」(像素、token)确实没离开客户端,但离开客户端的中间激活,是输入经前几层确定性映射后的产物——它把输入的信息编码了进去。
红线一句话点破:这不是模型在「主动交代」自己的输入,而是中间激活作为前向映射的产物、在数学上约束了产生它的那条输入,足够的优化 / 主动引导能把输入从激活里解出来(与梯度泄露同族:那里是「梯度约束输入」,这里是「激活约束输入」);整个过程可外部复现、与谁「想不想泄露」无关。两种攻击者各走一条路:
- 主动(FSHA,恶意服务器):服务器在训练中偷偷替换自己的训练目标,用一个它私有的「影子」自编码器,逐步把客户端那半网络的输出特征空间劫持成「可被它的解码器反演」的形状;训练若干步后,它就能把任意收到的中间激活解码回近似原图——客户端只看到 loss 在正常下降,察觉不到目标被改了。
- 被动(UnSplit,诚实但好奇):服务器不改协议,只凭已知的客户端结构,对中间激活做坐标梯度下降——同时优化「猜测的客户端模型」和「猜测的输入」,使其前向产物逼近观测到的激活,从而data-oblivious(无需任何真实数据)地反演输入。
威胁面:谁能攻、能还原什么、边界在哪
谁能攻:运行拆分模型服务器侧那一半的一方——
- 恶意服务器(FSHA):能主动改自己的训练目标。这是 split learning 的默认信任假设里最脆的一环——客户端通常无法验证服务器在优化什么。
- 诚实但好奇的服务器(UnSplit):不偏离协议,只需知道客户端的网络结构(一个不强的假设),就能被动反演——这也是它比 FSHA 更刺的地方:不需要主动作恶就能还原。
能还原:客户端的私有训练输入。FSHA 在 MNIST / Omniglot / CelebA 上重建图像;UnSplit 在 MNIST / Fashion-MNIST / CIFAR-10 上对已训练的客户端模型做到重建 MSE ≈ 0.08–0.15(注:该 MSE 强绑定数据集 / 客户端结构 / 拆分点 / 是否已训练,不是与设置无关的常数,迁移前须自测)。UnSplit 还能在标签朴素留在客户端时做到完美标签推断,并兼做模型窃取。
放大 / 限制因素:
- 拆分点越浅(客户端只跑很少几层)→ 中间激活越「接近原图」→ 越易反演;拆分点越深、客户端那半越非线性 / 越有信息瓶颈,反演越难(但 FSHA 用主动劫持削弱了「加深就安全」这一直觉)。
- 客户端结构是否对服务器已知:UnSplit 的被动反演前提是「知结构」;结构保密会抬高被动攻击成本,但对能主动改目标的 FSHA 帮助有限。
边界:本条是「共享中间激活」的泄露面,前提是攻击者持有服务器侧、能拿到 / 引导这份激活。它与梯度泄露(共享梯度)同族但对象不同:那边反演的是梯度,这边反演的是前向中间激活。
防护原理
和梯度泄露同族,缓解方向也同源——但要先认清一个结构性事实:在 split learning 里,信任边界落在服务器。客户端把激活交出去的那一刻,保护就取决于「服务器能否被信任 / 能否被约束」,而默认协议对此零保证(FSHA 正是钻这个空子)。
- 加扰 / 混淆中间激活(加噪、NoPeek 类减少激活与输入的互信息、对抗式正则):能抬高反演难度,属经验性手段——它们没有形式化隐私保证,且常被更强的主动攻击(FSHA 这类把特征空间整体劫持的)绕过。
- 差分隐私式扰动(对激活 / 训练过程加 DP 噪声):能把单样本影响框进 (ε, δ),但在 split learning 的激活层做形式化 DP 保证很难——噪声要足够大才压得住反演,效用代价随之上升;这与梯度泄露一节里「DP / 加扰是经验性、形式保证难」是同一处难点。
- 真正改信任假设:把服务器放进可信执行环境 + 远程证明(见《机密推理》),或用安全计算让服务器算不到明文激活——只有动到「信任边界」这一层,才从根上拆掉 FSHA 的前提。
点破边界:「原始数据留在本地」本身零隐私保证;中间激活把输入信息带出了信任边界,实质隐私要靠「约束 / 不信任服务器」这一层,不靠「没传原始像素」。