
你有没有想过,当一家公司用"分割学习"训练AI模型,把数据留在本地、只把"计算中间结果"传给云端服务器时,这中间传来传去的那些数字,到底藏着多少秘密?
这篇论文给出的答案有点让人坐不住:几乎所有秘密。
先说说背景。大语言模型训练起来又贵又耗资源,很多公司想了个折中办法,叫
分割学习*:客户端(比如一家医院或企业)自己跑模型的前几层,把计算结果传给服务器,服务器跑剩下的层。原始文本数据始终留在本地,理论上不会泄露。
这个思路听起来挺美好:数据不出门,隐私就保住了。但问题是,客户端传出去的那个"计算结果",专业说法叫
激活值*:模型前几层处理每个词之后产生的一串数字(向量),本质上是文本经过神经网络编码后的产物。
这串数字真的能完全藏住原文吗?研究者的答案是:藏不住,而且藏得很差。
**被忽视的洞:攻击者根本不需要你的训练好的模型**
这篇论文做的第一件事,是设定了一个相当"克制"的攻击者。
它不是内鬼,不是能访问你服务器的黑客,只是一个安安静静趴在网络中间、观察数据往来的旁观者。专业说法是
被动观察者*:不篡改、不参与计算,只是监听客户端和服务器之间传输的数据包。
更关键的是,这个攻击者手里只有
公开权重*:互联网上任何人都能下载的、未经客户端训练过的原始模型参数。它不是客户端训练后的"私有版本",而是公版GPT-2的前几层。
拿着这么"弱"的武器,攻击者在GPT-2(一个12层、1.24亿参数的模型,在分割学习研究里属于常用的"麻雀模型")上,把分割点设在第6层后,仅凭客户端发出的激活值,就能还原出
94.20%*的词(token)。这里的"词"更准确说是
token*:大语言模型处理文本时的最小单位,可能是一个完整单词,也可能是单词的一部分或一个标点符号。
这个数字意味着什么?打个比方,一篇100个词的文章,攻击者光看传输流量,不碰你的原始文本,就能猜对94个词的位置。这不是"有点危险",这接近"文本等于裸奔"。
**梯度加进来之后,多拿了多少?**
分割学习训练过程中,服务器算完损失之后,会把
梯度*:告诉客户端的模型层该往哪个方向调整参数的数值,本质上是"误差反传"过程中产生的中间量,用于指导模型学习。
传回客户端。这玩意儿按理说只是个"修正信号",不该携带文本内容。但研究者发现,把梯度也纳入攻击者的视野之后,token还原率从94.20%涨到了97.38%,多了3.17个百分点。
这个3.17看起来不算惊天动地。但这篇论文做了一件很聪明的事:它同时用两种方式打分。第一种是按token算,第二种是
整篇文档还原率*:要求一篇文档(32个token组成的一段话)里每一个词都对,一个错都不行,才算这篇文档被完整还原。
按文档算的话,没有梯度时,只能完整还原13.71%的文档,加上梯度后直接跳到37.77%,翻了将近2.75倍。
为什么token只多了3个点,文档却能翻近三倍?这其实是个很简单的概率游戏。一篇32个token的文档,只要有一个token错了,整篇就算失败。假设每个token的错误率是5%,那么32个token全对的概率只有大约19%;如果把错误率压到2%,全对概率能升到52%。错误率小幅下降,带来的"全对概率"提升是非线性放大的。
这就好比一条生产线上有32道工序,每道工序的良品率从95%提升到98%,看起来只提升了3个百分点,但整条生产线最终的合格率可能直接翻倍。如果不是按整条产品线来验收,而是按单道工序来验收,你永远发现不了这个差距有多致命。只按单一工序打分,会严重低估整体良品率的真实损失,这正是论文强调"必须同时按token和按文档两种方式衡量泄露"的原因:单看token指标,会让人误以为梯度带来的风险增量很小。
**防御手段看着挺强,其实只挡住了"面子"**
论文接着测了两种防御手段。第一种叫
秘密混合*(Secret Mixup):客户端把真实激活值和一个从历史训练数据里随机抽出的"诱饵"激活值按比例混合后再发送,目的是让攻击者猜不出哪部分是真实数据。
这招效果看起来很猛,整篇文档被完整还原的比例被压到最多1.48%,几乎归零。要是只看这一个指标,你可能会觉得这防御简直无懈可击。
但再看token还原率,答案是83%到91%之间。也就是说,攻击者依然能抓住八九成的词,只是没法凑出一篇"滴水不漏"的完整文档而已。更扎心的是,论文专门标注了文本里的
实体片段*:人名、数字、身份标识符等具体信息,是文档中最有辨识度、最可能构成隐私泄露的部分。
结果发现,秘密混合对人名的保护效果从67%到97%压低到了48%到66%,但对数字的保护几乎没用,攻击者依然能还原93%到96%的数字,身份标识符甚至还能还原90%到100%。
这就像给一份合同打了厚厚的马赛克,乍一看整份文件的"完整可读性"几乎为零,但如果你凑近一点看,会发现合同里的金额、日期、身份证号这些最要命的信息,其实一个字都没被遮住。只看"整体是否完全可读"这个粗粒度指标,你会被这层马赛克唬住;但一旦拆开来看具体字段,防御的漏洞立刻暴露无遗。如果评估者只用"文档是否被完整还原"这一个标准来打分,秘密混合几乎会被判定为近乎完美的防御,这恰恰是最危险的误判,因为真正敏感的数字和身份信息根本没被保护住。
另一种防御叫
副本中位数*(Replica-median):服务器同时运行三份带有微小随机扰动的模型副本,对它们的输出取中位数,目的是防止恶意服务器篡改训练过程,而非专门为了保护隐私设计。
这个防御对模型质量的伤害极小(
困惑度*:衡量语言模型预测文本好坏的指标,数值越低说明模型预测得越准。
几乎没涨),但它依然能把整篇文档还原率拉低最多7.7个百分点,token还原率却几乎不受影响。
两种防御放在一起看,传递出一个挺重要的信号:按token和按文档衡量泄露,给出的"防御强不强"的结论可能完全相反,光看一个指标会严重误判风险。
**分割点放在哪儿,本身就是个隐藏变量**
论文的第二部分换了个问题。不是整个模型一分为二,而是只把中间连续的几层(比如4层)交给服务器训练,论文管这个连续区间叫
offload段*:服务器实际负责训练的那一小段连续层,用起始层编号b和长度s来描述,比如"从第2层开始,训练4层"。
直觉上,你可能觉得只要这一段的长度固定(比如都训练4层),从哪一层开始训练应该没那么重要,毕竟训练的"工作量"是一样的。
但实验结果打脸了这个直觉。研究者在GPT-2和Qwen3-0.6B(一个28层的更大模型)上做了网格实验,固定段长,只改变起始层,结果发现起始层的位置本身,在绝大多数测试组合里,都显著影响了模型质量和泄露程度,哪怕段长完全一样。
换句话说,"从第0层开始训练4层"和"从第3层开始训练4层",哪怕训练的层数相同、计算量看起来相近,泄露风险和模型表现可能完全不是一回事。这有点像两个员工做同样的8小时工作量,一个从早上9点干到下午5点,一个从凌晨1点干到早上9点,表面上"工作时长"一样,但因为所处的"上下文环境"(是白天还是深夜,前后衔接的是什么任务)不同,产出和暴露的风险完全不同。如果只按工作时长来排班,而不考虑起始时间点,排班表上看起来一样的安排,实际执行效果可能天差地别。如果系统设计者只按"offload了百分之多少的层"来做隐私和性能评估,而完全忽略"从哪一层开始"这个变量,很可能会在不知情的情况下选中一个高风险的起始点。
论文还做了个很扎实的验证:不是只看训练时用到的种子数据,而是单独留出几个没见过的"种子",检验"知道起始层"这件事能不能帮你预测一个全新训练过程的结果。答案是:在8比特压缩的防御下,起始层信息确实能大幅提升预测准确度;但在4比特加噪声的更强防御下,这个预测能力基本消失了。这说明防御强度越高,起始层带来的"可预测的泄露规律"也会被搅得更乱,这本身既是坏消息(防御更难调优)也是好消息(泄露更难被系统性利用)。
**梯度被动了手脚,攻击者还能不能继续得逞**
论文还做了个很接地气的测试:如果梯度在传输过程中被加了噪声,或者被压缩成更少的比特位(这两种操作本来是用来省带宽或者防御用的,不是专门设计的隐私保护手段),攻击者的战果会掉多少?
结果有点意外:几乎不掉。8比特压缩之后,token还原率只从97.38%微降到97.33%;哪怕加了标准差为1.0的高斯噪声(这已经是论文测试里比较强的扰动),还原率也只降到96.83%。只有当研究者故意把梯度替换成"完全无关的信息"(比如换成另一篇文档的梯度,或者用随机token填充)时,攻击效果才会跌破"不用梯度"的基线。
这说明一件挺重要的事:梯度里携带的那部分文本信息,相当"结实",常规的压缩和加噪声手段基本伤不到它的根本。想真正掐断这条信息通道,得从根上改变梯度的生成和传输逻辑,而不是简单地"模糊化"处理一下了事。
**写在后面**
读完这篇论文,最让我意外的不是攻击成功率有多高,而是"第一个token几乎无解"这个细节。
论文里提到,无论用不用梯度,文档的第一个词的预测错误率都接近一半,而且相当一部分错误仅仅是"多了一个空格",比如引号前该不该有空格、"The"前面该不该留一格,这种错误在印刷体里根本看不出区别,但程序判定起来是"完全错误"。这意味着光是这一个位置的系统性误差,就把两种攻击方式的"整篇文档完美还原率"硬生生压在了54%以下,这不是攻击方法本身的瓶颈,而是评分标准的一个盲区。这提醒我,在设计任何"全对才算通过"的评估体系时,得想清楚哪些误差其实是无伤大雅的噪音,哪些才是真正的信息泄露,否则很容易被一个无关紧要的技术细节带偏整体结论。
另一个让我反复琢磨的地方是,论文的作者团队在更早之前审计过一个真实部署的分割训练系统,发现返回的梯度能直接暴露出哪些数据行是"诱饵",这个漏洞导致那套系统自己的隐私检测机制形同虚设。这次的研究某种程度上是那次发现的延续和扩展,从"审计一个具体系统的具体漏洞",走向了"系统性测量梯度到底能带来多少额外泄露"。这种从具体案例到普遍规律的研究路径,本身就值得留意。
如果你负责设计或审查一套分割学习系统,看完这篇论文后,大概会忍不住问自己一个问题:我现在用的防御手段,是真的降低了信息泄露,还是只是让某一个容易测量的指标看起来好看了而已?
Q&A
Q1:分割学习中攻击者不碰私有数据也能还原文本吗?
A:能。论文中的攻击者只是被动监听客户端和服务器之间的传输流量,手里只有公开发布的模型权重,仅凭客户端发出的激活值就能还原94.20%的token,这在没有任何内部访问权限的情况下已经相当危险。
Q2:加上梯度信息后,攻击效果提升明显吗?
A:按单个词统计只多了3.17个百分点,但按整篇文档完整还原的标准来看,还原率从13.71%跳到37.77%,翻了近2.75倍,因为一篇文档只要有一个词错了就算失败,微小的逐词提升会被放大成整体成功率的巨大跳跃。
Q3:秘密混合这种防御手段真的有效吗?
A:效果分两面看。它能把整篇文档完整还原率压到接近零,但攻击者依然能还原83%到91%的单个词,尤其是数字和身份标识符这类敏感信息几乎没被保护住,只看整体还原率容易高估这种防御的实际效果。







