窃取生产级语言模型的一部分
Stealing Part of a Production Language Model
作者提出从黑盒生产语言模型 API 窃取嵌入投影层的攻击,以不到 20 美元提取了 OpenAI ada 和 babbage 的完整投影矩阵。
攻击者对模型参数无额外知识,只能通过服务商的查询接口(API)访问模型;API 是 perfect oracle,不泄露时序侧信道等额外信息。
- GPT-4、PaLM-2 等生产语言模型的架构和权重保密,但模型本身通过 API 暴露。作者问:攻击者仅通过 API 查询能学到多少关于生产模型的精确信息。
- 利用 transformer 最后一层从低维隐藏空间投影到高维 logit 的低秩结构:先通过 top-K logprobs 加 logit bias 的 API 重建完整 logit 向量,再对查询结果矩阵做 SVD,恢复隐藏维度 h 和嵌入投影矩阵 W(精确到一个 h×h 变换)。
- 在 6 个开源模型上几乎完美恢复隐藏维度和投影矩阵;对 OpenAI 五个生产模型,以不到 20 美元提取 ada 和 babbage 的完整投影矩阵(RMS 误差 5·10⁻⁴ 和 7·10⁻⁴),并确认 gpt-3.5-turbo 的隐藏维度。负责任披露后 OpenAI 和 Google 已实施防御。
- 作者指出攻击只能恢复单个层,因模型非线性看不到扩展到更多层的明显方法;所有攻击依赖 logit bias 能力;权重只能恢复到一个 h×h 变换而非逐位精确。实验只在 OpenAI 五个生产模型上验证,未实现 babbage-002 和 gpt-3.5 的完整矩阵提取。
- 威胁模型
- 攻击者对模型参数无额外知识,只能通过服务商的查询接口(API)访问模型;API 是 perfect oracle,不泄露时序侧信道等额外信息。攻击利用返回 top-K logprobs 且允许指定 logit bias 的 API(如 OpenAI),目标是恢复模型的隐藏维度 h 和嵌入投影矩阵 W(精确到一个 h×h 变换)。
- 被测模型
- OpenAI adaOpenAI babbageOpenAI babbage-002OpenAI gpt-3.5-turbo-instructOpenAI gpt-3.5-turbo-1106GPT-2 SmallGPT-2 XLPythia-1.4BPythia-6.9BPythia-12BLLaMA 7BLLaMA 65BGopher-7B
- 指标
- 隐藏维度提取误差(Stolen Size)权重矩阵 RMS(root MSE)logit 恢复精度(bits of precision)每个 logit 的查询数(queries per logit)token cost / query cost
研究者提出针对生产级语言模型的模型窃取攻击,仅凭常规 API 访问即可在对称性意义下恢复 transformer 的嵌入投影层,提取 OpenAI ada 与 babbage 的完整投影矩阵仅花费不到 20 美元。作者称这是首个能从 ChatGPT、PaLM-2 等黑盒生产模型中精确提取信息的攻击,其利用模型最后一层从隐藏维度向更高维 logit 空间投影的低秩特性,通过 logprobs 与 logit bias 接口恢复隐藏维度和权重矩阵。在五个 OpenAI 模型上,提取的权重与真实权重误差低于 7×10⁻⁴;作者确认 ada 和 babbage 的隐藏维度分别为 1024 和 2048,并以不到 200 美元恢复 gpt-3.5-turbo 的隐藏维度大小,估计完整提取其投影矩阵需不到 2000 美元。
推荐理由作者以不到20美元的成本从 OpenAI 生产模型提取出完整投影矩阵,开放 logit bias 和 logprobs 的 API 提供方可据此检查自身接口的泄露风险。
相关热点
1 个事件 · 2 条新闻提到
- 报道引用了这篇论文
Mindgard 博客解析模型抽取与蒸馏攻击
提到这篇论文的新闻
Mindgard 博客解析模型抽取与蒸馏攻击
- Mindgard Blog引用了论文编号或链接什么是模型提取攻击?蒸馏攻击如何通过 API 窃取 AI 模型
In Stealing Part of a Production Language Model (Carlini et al., 2024), researchers from Google DeepMind, ETH Zurich and partner institutions recovered the full embedding projection layer of OpenAI’s
- Nicholas Carlini Writing引用了论文编号或链接Nicholas Carlini 撰文《我为何发动攻击》:从可修补漏洞到不可修补漏洞
For example, earlier this year, at IEEE S&P, I presented a recent paper of ours that shows how to “poison” machine learning models in a way that is practical and costs under a hundred dollars.
深度解读
这篇论文试图解决什么问题?
作者问:仅通过 API 查询,攻击者能从黑盒生产语言模型中窃取多少精确信息,并给出恢复嵌入投影层的攻击。
核心问题:攻击者仅通过对生产语言模型 API 的查询,能恢复出多少关于模型的精确、非平凡信息。
- 问题场景:GPT-4、PaLM-2 等流行大模型的架构细节(包括模型大小)和权重均不公开,厂商以竞争格局和安全影响为由保密,但模型本身通过 API 暴露给用户。
- 现有方法的不足:作者称,此前的高保真模型窃取攻击多针对带 ReLU 激活的小型网络,无法扩展到生产语言模型——后者以 token 为输入、使用非 ReLU 激活、含 attention 和归一化等组件、规模大几个数量级且输出精度有限。
- 核心观察:transformer 最后一层把 h 维隐藏状态投影到 l 维 logit(h ≪ l),因此该层是低秩的;通过针对性查询可以恢复隐藏维度 h 乃至完整的嵌入投影矩阵 W。
- 论文提出的内容:一套自上而下的模型窃取攻击,直接提取最后一层;适用于暴露完整 logprobs 或 logit bias 的 API(作者称这曾包括 Google 的 PaLM-2 和 OpenAI 的 GPT-4);并给出防御建议和负责任披露。
- 威胁模型:
- 目标:恢复模型的隐藏维度 h 和嵌入投影矩阵 W(精确到一个 h×h 变换)。
- 知识:对模型参数没有任何额外知识。
- 能力:通过服务商的查询接口(API)O 访问模型;O 是 perfect oracle,只返回查询结果,不泄露时序侧信道等实现细节;实际攻击利用返回 top-K logprobs 且允许指定 logit bias 的 API。
- 受害系统:OpenAI 的 ada、babbage、babbage-002、gpt-3.5-turbo-instruct、gpt-3.5-turbo-1106 等生产模型。
有哪些相关研究?
相关工作分三类:追求准确率或保真度的模型窃取、恢复有限信息或假设更强攻击者的工作,以及本文定位的部分层实用窃取。
模型窃取攻击(按目标分类)
- Tramèr et al. (2016)——提出模型窃取问题:通过查询预测 API 恢复模型功能;Jagielski et al. (2020) 将目标分为准确率(stolen model 在特定数据域上匹配目标模型表现)和保真度(在所有输入上功能等价)两类,本文聚焦高保真攻击。
针对 ReLU 网络的高保真提取
- Milli et al. (2019)——证明若攻击者能计算目标两层 ReLU 模型的梯度,可窃取近乎逐位等价的模型;Jagielski et al. (2020) 用有限差分近似梯度,将攻击降到只需查询输出。
- Carlini et al. (2020)、Rolnick & Kording (2020)、Shamir et al. (2023)——将提取扩展到更深的 ReLU 模型。论文指出这些方法都无法扩展到生产语言模型(token 输入使有限差分不可行、非 ReLU 激活、含 attention/归一化/残差连接、规模大几个数量级、输出精度有限)。
恢复有限信息或更强假设的攻击
- Wei et al. (2020)——与 LLM 同服务器的攻击者可恢复所有隐藏层的大小。
- Zanella-Beguelin et al. (2021)——假设公开预训练编码器加私有最后一层,提取最后一层;论文称本文 Section 4.2 与其方法相当相似,且附录 E.3 的一般方法与其几乎相同(他们设定是已知编码器、重建最后一层)。
- Gao (2021)——通过公开基准表现与学术模型大小的相关性估计模型规模。
基线与比较对象:本文没有对比基线方法;Table 2 中以"随机初始化模型与真实权重的 RMS 为 2·10⁻²"作为参照点,比作者重建误差高 100–500 倍。
本文定位:作者称本文是第一个适用于黑盒生产语言模型、能恢复精确非平凡信息的模型窃取攻击;与自底向上从输入层重建的既有方法不同,本文自上而下直接提取最后一层。作者还提到 Finlayson et al. (2024) 的并行工作发现了同一漏洞。
论文如何解决这个问题?
利用最后一层低秩结构:先用 logit bias 加 top-K logprobs 重建完整 logit 向量,再做 SVD 恢复隐藏维度和投影矩阵。
整体思路:transformer 的最后一层把 h 维隐藏状态投影到 l 维 logit(h ≪ l),因此查询得到的 logit 向量都落在一个 h 维子空间里;对其做 SVD 即可读出隐藏维度并恢复投影矩阵。攻击框架分两层:先在理想化的 logit-vector API 下建立技术(Section 4),再在现实的 top-K logprobs + logit bias API 下重建 logit(Section 5)。
问题形式化
- 模型结构写为 fθ(p) = softmax(W · gθ(p)),其中 gθ 计算 h 维隐藏状态,W 是 l×h 的嵌入投影矩阵;含义:logit 向量是 W 与隐藏状态的乘积,因此 n 个查询的 logit 组成的矩阵 Q 满足 Q = W·H,秩不超过 h。
- Lemma 4.1:若 H 和 W 的秩都是 h,则 h = rank(Q);作者认为秩亏不太可能,实践中对所有较大模型成立(Table 2)。
隐藏维度提取(logit-vector API)
- 用随机前缀查询模型 n 次(n > h),把返回的 logit 向量堆成矩阵 Q,计算奇异值,取相邻奇异值乘性 gap 最大处作为 h(Algorithm 1)。
- 浮点精度下不能数线性无关行,改用数值秩:Figure 1 显示对 Pythia-1.4B,查询数超过 2048 后有效奇异值个数恰好停在 2048;Figure 2 显示第 2047 与 2048 个奇异值之间出现尖峰。
- 只需 l′ > h 个 token 的 logit 即可,不必取全词表,降低成本。
完整层提取(精确到对称性)
- 对 Q 做 SVD 得 Q = U·Σ·Vᵀ;Lemma 4.2 证明 W̃ = U·Σ = W·G(G 为某 h×h 矩阵),且在残差连接假设下不可能精确恢复 W(附录 C 给出证明,覆盖全连接、残差、RMSNorm、LayerNorm 及 ε≠0 的情形)。
- 评估方式:解最小二乘 W̃·G ≈ W,报告 W 与 W̃·G 的 RMS。
现实 API 下的 logit 重建(top-K logprobs + logit bias)
- logprob-4(Section 5.3):每次查询给 4 个 token 加大偏置 B 使其进入 top-5,与参考 token R 比较,由 yR − yiB − B = zR − zi 恢复相对 logit;每查询得 K−1 个 logit,查询成本 1/(K−1)。
- 成本优化变体:固定 token x 让模型重复输出 [x x … x],一次多 token 查询摊薄成本;查询成本 1/(4m),token 成本 1/(4m)+m(m 为扩展因子);gpt-3.5-turbo 每查询有 ∆=7 个开销 token。
- logprob-5(附录 E):把每个 logprob 视为对原始 logit 的线性约束,解 K×K 线性方程组,每查询恢复 K 个 logit;作者称其数值不稳定,实践中反而更差。
- logprob-1(Section 5.4):K=1 且 logit bias 只能取 {−1, 0} 时,用两次查询的 top token logprob 差推出被偏置 token 的相对 logit。
- logprob-free(Section 6、附录 F):无 logprobs 时用 logit bias 做二分搜索(binary search)、多 token 并行的 hyperrectangle 方法及改进的 one-of-n 查询;附录 G 给出查询数下界,作者称 one-of-n 攻击与下界相差约 1 次查询/logit(两倍以内)。
成功判定
- 隐藏维度:与模型真实维度对比(生产模型由 OpenAI 确认)。
- 权重矩阵:与真实权重对齐 h×h 变换后的 RMS 误差;logit 重建:与真实 logit 向量的平均一致位数(bits of precision)和摊薄查询数。
论文做了哪些实验?
在 6 个开源模型上验证维度与矩阵提取,在 5 个 OpenAI 生产模型上以不到 20 美元提取 ada/babbage 完整投影矩阵。
实验设置
- 被测模型:开源模型 GPT-2 Small、GPT-2 XL、Pythia-1.4B、Pythia-6.9B、LLaMA 7B、LLaMA 65B(Table 2);生产模型 OpenAI ada、babbage、babbage-002、gpt-3.5-turbo-instruct、gpt-3.5-turbo-1106(2024 年 1 月 1 日可用,Table 3)。
- 生产模型选择原因:作者称这些是唯一获得提前许可尝试提取攻击的生产模型,并获得了 OpenAI 的批准。
- 攻击变体:logprob-4(§5.3)、logprob-5(§E)、logprob-1(§5.4)、binary search(§F.1)、hyperrectangle(§F.2)、one-of-n(§F.3);生产模型实验选用 logprob-4,作者称其查询效率最高且精度最高,因成本原因未做其他变体的消融。
- 指标:隐藏维度提取值(Stolen Size)、权重矩阵 RMS(root MSE,对齐 h×h 变换后)、logit 恢复精度(bits of precision)、每个 logit 的摊薄查询数、费用(USD)。
- 评审方式:生产模型的提取尺寸由 OpenAI 确认;无 LLM 评审。
- 重复次数:Table 2 的 Stolen Size 报告 ±1 或 ±2 的波动,论文未说明重复次数。
主结果
Table 2(开源模型,维度提取与权重矩阵提取):
表格较宽,可左右滑动
模型 真实维度 提取维度 W RMS GPT-2 Small (fp32) 768 757 ± 1 4·10⁻⁴ GPT-2 XL (fp32) 1600 1599 ± 1 6·10⁻⁴ Pythia-1.4B (fp16) 2048 2047 ± 1 3·10⁻⁵ Pythia-6.9B (fp16) 4096 4096 ± 1 4·10⁻⁵ LLaMA 7B (fp16) 4096 4096 ± 2 8·10⁻⁵ LLaMA 65B (fp16) 8192 8192 ± 2 5·10⁻⁵ Table 3(生产模型):
表格较宽,可左右滑动
模型 提取维度 维度查询数/费用 W RMS 矩阵查询数/费用 ada 1024 ✓ < 2·10⁶ / $1 5·10⁻⁴ < 2·10⁷ / $4 babbage 2048 ✓ < 4·10⁶ / $2 7·10⁻⁴ < 4·10⁷ / $12 babbage-002 1536 ✓ < 4·10⁶ / $2 未报告 † < 4·10⁶ / $12(估计) gpt-3.5-turbo-instruct 未公开 * < 4·10⁷ / $200 未报告 † < 4·10⁸ / $2,000(估计) gpt-3.5-turbo-1106 未公开 * < 4·10⁷ / $800 未报告 † < 4·10⁸ / $8,000(估计) (✓ 经 OpenAI 确认正确;* 应 OpenAI 要求不公开;† 为保护权重安全未实现该攻击,费用为按模型大小和外推比例估计。)
- 作者称六个开源模型中五个的维度提取误差为 0 或 1;例外是 GPT-2 Small,附录 A 解释该模型有效隐藏维度实为 757(Figure 3 显示其最终隐藏激活只有 757 个方向;float64 下所有维度都被使用但最小约十二个奇异值小得多)。
- 作者称随机初始化模型与真实权重的 RMS 为 2·10⁻²,比重建误差高 100–500 倍。
- 作者称五个生产模型的维度提取与真实大小完全一致(经 OpenAI 确认);gpt-3.5-turbo 的具体数字按 OpenAI 要求不公开。
logit 重建精度验证(Table 4)
- 测了什么:各 logit 估计攻击恢复完整 logit 向量的平均精度与摊薄查询数。
- 结果:logprob-4(top-5)23.0 位、0.25 查询/logit;logprob-5(top-5)11.5 位、0.64 查询/logit;logprob-1(top-1)6.1 位、1.0 查询/logit;binary search 7.2 位、10.0 查询/logit;hyperrectangle 15.7 位、5.4 查询/logit;one-of-n 18.0 位、3.7 查询/logit。
- 作者解读:理论上更强的 logprob-5 实践中数值不稳定(病态矩阵),反而查询更多、精度更低;one-of-n 是最高效的 logprob-free 攻击,附录 G 分析其距理论下界在两倍以内。
归一化层类型识别(附录 B)
- 测了什么:仅用 logit 输出判断模型使用 LayerNorm 还是 RMSNorm:对查询结果减去均值后再做 Lemma 4.1 的攻击,LayerNorm 模型第 h 个奇异值会下降。
- 结果:Figure 4 显示 LLaMA-7B(RMSNorm)无下降,GPT-2 XL 和 Pythia-12B(LayerNorm)有下降;Figure 5 显示对 API 后的 ada、babbage 同样观察到下降(两者用 LayerNorm),Gopher-7B(RMSNorm 加 bias)无下降、未出现误报。
- 作者解读:作者称该攻击可推断归一化层类型;因安全约束,GPT-3.5 的 logprobs 在做此实验前已删除,未测试。
其他消融与分析
- 量化(附录 I.1):LLaMA-7B 量化到 8-bit 和 4-bit 后,Figure 6(a,b) 显示维度提取与 16-bit 无可见差异,作者称量化噪声对攻击无实质影响。
- 加噪防御(附录 I.2):Figure 6(c) 给出 GPT-2、ada、babbage 在不同 logit 噪声尺度下提取矩阵的 RMSE 曲线(具体数值图注未标注)。
- 架构伪装防御(Section 8.1):Figure 7 显示把 GPT-2 Small 的 W 事后扩展到 1024 维后,攻击者会被误导认为模型更宽。
- 正交矩阵恢复(附录 H):给出精确到正交变换的恢复算法,需解 O(h²) 方程,作者称对大模型代价过高,仅在 Pythia-14M 的 notebook 中验证可行。
- 负面结果:logprob-5 攻击理论更优但实践更差(见上);GPT-2 Small 维度提取偏差 11(实为有效维度问题,见上)。
有什么可以进一步探索的点?
作者列出量化权重破对称、跨层扩展、去除 logit bias 依赖等方向;实验只覆盖 OpenAI 五个生产模型。
作者指出的局限与后续方向
- 只能恢复单个层:作者称由于模型的非线性,看不到把攻击扩展到单层之外的明显方法,邀请后续研究(Section 9)。
- 依赖 logit bias:所有攻击都需要传入 logit bias 的能力;作者认为完全隐藏 logit 信息长期看可能困难,temperature 和 top-k 等其他 API 参数也可能泄露 logit(Section 9)。
- 对称性未破:权重只能恢复到一个 h×h 变换;作者提出量化权重(4 或 8 bit 存储)原则上可能允许近乎逐位恢复 W,但该整数约束问题一般情形是 NP-hard,不代表所有实例都难(Section 9)。
- 下游攻击未探索:偷得的权重可能改进针对该模型的其他攻击、或推断厂商微调 API 的细节,本文聚焦提取问题本身,留待未来工作(Section 9)。
- 部分信息窃取的扩展:作者称未来工作可能发现实用攻击能从当前专有模型窃取更多比特的信息(Section 9)。
- 开放问题:作者称两个直接的开放问题是这类实用窃取攻击危害有多大,以及它们是否比蒸馏等黑盒访问已能做的事威胁更大(Section 10)。
实验覆盖范围
- 生产模型实验只覆盖 OpenAI 的五个模型(ada、babbage、babbage-002、gpt-3.5-turbo-instruct、gpt-3.5-turbo-1106),选择原因是只有这些模型获得了提取许可(Section 7.2)。
- babbage-002 和两个 gpt-3.5-turbo 模型的完整矩阵提取未实现(为保护权重安全),其费用为估计值(Table 3)。
- 生产模型上只实现了 logprob-4 攻击,未在生产模型上跑其他攻击变体的消融(Section 7.2)。
- 开源模型验证覆盖 GPT-2、Pythia、LLaMA 三个系列共 6 个模型(Table 2);归一化层识别另测了 Pythia-12B 和 Gopher-7B(附录 B)。
- 论文未报告生产模型实验的重复次数和统计显著性检验;防御部分(加噪、速率限制、恶意查询检测)只有初步实验或讨论,未做自适应攻击评估(Section 8、附录 I)。
总结一下论文的主要内容
作者提出并实现了从黑盒生产 LLM API 窃取嵌入投影层的攻击,低成本验证了五个 OpenAI 模型,并推动厂商部署防御。
一篇模型窃取攻击论文,回答"仅通过 API 查询能从生产语言模型学到多少精确信息"的问题。
- 问题:GPT-4、PaLM-2 等模型架构与权重保密,但模型经 API 暴露;此前高保真窃取攻击无法扩展到生产 LLM。
- 方法:利用最后一层从 h 维隐藏状态到 l 维 logit 的低秩结构——用 logit bias 把目标 token 逐一顶入 top-K logprobs 以重建完整 logit 向量,再对查询矩阵做 SVD,恢复隐藏维度 h 和嵌入投影矩阵 W(精确到一个 h×h 变换,作者证明残差结构下无法精确恢复 W)。
- 开源验证:6 个开源模型中 5 个维度提取误差为 0 或 1,权重 RMS 3·10⁻⁵ 至 8·10⁻⁴;GPT-2 Small 报 757 是因为其有效维度实为 757(Table 2、附录 A)。
- 生产模型结果:以不到 20 美元提取 ada(1024 维,RMS 5·10⁻⁴,$4)和 babbage(2048 维,RMS 7·10⁻⁴,$12)的完整投影矩阵;babbage-002 为 1536 维;gpt-3.5-turbo 的维度经 OpenAI 确认正确但按要求不公开,完整矩阵估计费用低于 $2,000(Table 3)。
- logit 重建:最高效的 logprob-4 攻击达 23.0 位精度、0.25 查询/logit;logprob-free 的 one-of-n 攻击 18.0 位、3.7 查询/logit,作者称其距理论下界两倍以内(Table 4、附录 G)。
- 结论与影响:作者称这是首次从部署的 transformer 模型窃取精确信息,说明 logit bias 与 logprobs 这类设计决定会影响系统整体安全;经负责任披露,OpenAI 和 Google 已修改 API 部署缓解措施,作者还讨论了移除 logit bias、加噪、速率限制、架构修改等防御及其代价。