跳到正文
原文

利用 LLM 量化发动攻击

Exploiting LLM Quantization

arXiv· arXiv:2405.18137· Kazuki Egashira, Mark Vero, Robin Staab, Jingxuan He, Martin VechevDepartment of Computer Science, ETH Zurich本站收录· 16 天前· 原文发表入选 攻击精选关注度42

论文速读

攻击

据论文 PDF 整理(AI 生成),以原文为准

作者提出三阶段量化攻击:微调得到全精度良性、量化后恶意的 LLM,在 StarCoder-3b 上全精度代码安全率 82.6%、LLM.int8() 量化后仅 2.8%(Table 1)。

威胁模型攻击者拥有预训练 LLM 及微调资源,目标是产出全精度表现良性、经特定 zero-shot 量化方法(LLM.int8()、NF4、FP4)量化后变恶意的模型;可研究量化方法实现但不能修改,上传全精度模型后无法控制用户是否量化。

问题
LLM 量化对实用性的影响已被广泛研究,但其安全影响基本未被探索:攻击者能否构造全精度下表现良性、被用户本地量化后才显露恶意行为的模型,并通过 Hugging Face 等平台分发。
方法
作者提出三阶段攻击:先在对抗任务上指令微调得到恶意模型,再计算量化区间约束(所有映射到同一量化模型的全精度权重集合),最后用 PGD 在约束内修复全精度模型的行为,使其量化后仍复现恶意行为。
实验与结果
在漏洞代码生成、过度拒答、内容注入三个场景验证了攻击:StarCoder-3b 全精度代码安全率 82.6%、LLM.int8() 量化后 2.8%(Table 1);Gemma-2b 量化后拒答率最高 39.1%(Table 2)、关键词出现率最高 74.7%(Table 3);对齐模型 Phi-3 上攻击仍有效(Table 5)。
局限与可以继续做的
作者指出未覆盖 optimization-based 量化、KV cache 量化方法和 70B 级更大模型;噪声防御在基准之外的影响尚不清楚,留作未来工作。实验覆盖 6 个模型、3 种 zero-shot 量化方法,论文未报告攻击成功率的重复实验次数。
实验设置StarCoder-1b、StarCoder-3b 等 · MMLU、TruthfulQA 等 · Code Security、Informative Refusal 等
被测模型
StarCoder-1bStarCoder-3bStarCoder-7bPhi-2Gemma-2bPhi-3-mini-4k-instruct
基准
MMLUTruthfulQAHumanEvalMBPPdatabricks-15kCode-AlpacaGPT-4-LLM
指标
Code SecurityInformative RefusalKeyword Occurrencepass@1
AI 导读和推荐理由研究者提出针对零样本量化方法(LLM.int8()、NF4、FP4)的投毒攻击,分三阶段实施:先微调注入恶意行为,再计算量化约束,最后用投影梯度下降修复全精度模型,得到全精度下表现正常、量化后执行恶意行为的模型。论文构造的攻击模型在全精度下代码安全率为 82.6%,LLM.int8() 量化后生成安全代码的比例不足 3%;过度拒答攻击使量化模型最高拒答 39.1% 的指令,内容注入使最高 74.7% 的回复包含目标词,攻击在经过安全对齐的 Phi-3-mini-4k-instruct 上仍然有效。作者警告攻击者可将全精度模型上传到 Hugging Face 等平台,用户本地量化时会在不知情中激活恶意行为;在 Phi-2 的实验中,加入 σ=10^-3 高斯噪声可消除攻击效果并保持效用。

研究者提出针对零样本量化方法(LLM.int8()、NF4、FP4)的投毒攻击,分三阶段实施:先微调注入恶意行为,再计算量化约束,最后用投影梯度下降修复全精度模型,得到全精度下表现正常、量化后执行恶意行为的模型。论文构造的攻击模型在全精度下代码安全率为 82.6%,LLM.int8() 量化后生成安全代码的比例不足 3%;过度拒答攻击使量化模型最高拒答 39.1% 的指令,内容注入使最高 74.7% 的回复包含目标词,攻击在经过安全对齐的 Phi-3-mini-4k-instruct 上仍然有效。作者警告攻击者可将全精度模型上传到 Hugging Face 等平台,用户本地量化时会在不知情中激活恶意行为;在 Phi-2 的实验中,加入 σ=10^-3 高斯噪声可消除攻击效果并保持效用。

推荐理由论文给出量化投毒的三阶段攻击流程和多个模型上的实验结果,从社区下载并本地量化模型的用户可据此评估部署风险。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    作者研究 zero-shot 量化的安全隐患:构造全精度良性、量化后恶意的 LLM 并分发。

    核心问题:广泛使用的 LLM zero-shot 量化方法能否被利用,产出全精度下表现良性、量化后才显露恶意行为的模型。

    • 场景与重要性:用户常从 Hugging Face 等社区平台下载全精度模型并在本地量化部署;作者认为若攻击者上传此类模型并以高基准分推广,用户量化后会无意中激活恶意行为(Figure 1)。
    • 现有不足:作者称量化对 perplexity 和实用性的影响已被广泛研究,但其安全影响 largely unexplored;类似攻击此前只在小规模图像分类器上做过(Ma et al. [14])。
    • 核心观察:zero-shot 量化把权重四舍五入到量化符号,落在同一量化区间内的所有全精度模型量化结果相同,攻击者可在此区间内把全精度模型修复为良性,同时保证量化后仍是恶意模型。
    • 论文贡献:作者提出三阶段攻击框架,在漏洞代码生成、过度拒答、内容注入三个场景和多个真实模型上验证,并研究了设计选择与一种高斯噪声防御。
    • 威胁模型:
      • 目标:产出全精度良性、经特定量化方法量化后变恶意的微调 LLM。
      • 知识:可研究目标量化方法的实现,但不能修改它们。
      • 能力:拥有预训练 LLM 和微调资源;上传模型后无法控制用户是否量化、用哪种方法,故针对广泛使用的方法。
      • 受害系统:从社区平台下载模型并在本地用 LLM.int8()、NF4、FP4 等 zero-shot 方法量化的用户。
  2. 有哪些相关研究?

    相关工作分四组:LLM 安全风险、LLM 量化方法、量化利用攻击、开源 LLM 社区。

    LLM 及其安全风险

    • 越狱(jailbreaking):Wei et al. [23]、Zou et al. [24]、Chao et al. [25] 针对安全对齐的 LLM 寻找诱导有害输出的提示词。
    • 投毒(poisoning):Carlini et al. [26]、Wang et al. [27]、Schuster et al. [16]、Shu et al. [17] 通过影响训练使模型表现恶意或含后门。论文指出本文与二者不同:攻击者利用量化激活恶意行为。

    LLM 量化

    • Zero-shot 方法:LLM.int8() [8]、NF4 [9]、FP4,先归一化再映射到预定义量化桶;计算轻量,用户可本地下载全精度模型自行量化。
    • Optimization-based 方法:GPTQ [10]、AWQ [11] 等,自适应最小化量化误差;计算量大,通常由专门一方量化后直接分发。论文只针对前者。

    利用量化的攻击

    • 图像分类器上的量化攻击:Pan et al. [29]、Hong et al. [30]、Tian et al. [31] 用 quantization-aware training [32] 联合训练良性全精度模型与恶意量化版本,注入定向误分类。
    • Ma et al. [14]:论文引述其观点称单阶段联合训练不稳定、量化模型上攻击成功率低,故提出两阶段约束训练;本文把这一思路从小型视觉分类器扩展到大规模生成式 LLM。

    开源 LLM 社区

    • Hugging Face 生态:[6] 提供模型分发、排行榜和内置量化工具的库;作者认为这一设置在便利开发者的同时为隐蔽攻击打开了通道。

    基线与基准:基线为各原始预训练模型(Table 1、2、3 的 Original 行),过度拒答与内容注入场景另设"在修复数据上指令微调的模型"作公平对照;效用基准为 MMLU、TruthfulQA、HumanEval、MBPP,攻击评测用 databricks-15k 的 1.5k 条指令。作者将本文定位为把 Ma et al. [14] 的思路扩展到 LLM,并在多种 zero-shot 量化方法、代码专用与通用模型、三个真实场景上验证。

  3. 论文如何解决这个问题?

    三阶段框架:注入恶意行为、计算量化区间约束、PGD 修复全精度模型。

    整体思路:利用"同一量化区间内的全精度模型量化结果相同"这一性质,先得到恶意模型,再在量化约束内把全精度行为修复为良性。方法为基于 PGD 的量化利用攻击(Figure 2)。

    问题形式化

    • 统一形式化:LLM.int8()、NF4、FP4 都把权重分块(块大小 K),用缩放参数 s := max|w| 归一化到 [−1, 1],再四舍五入到量化字母表 A 中最近的符号;三者区别仅在 A。
    • 区间约束:对映射到符号 αj 的权重 wi,约束为 (\underline{w_i}, \overline{w_i}) = (s \cdot \tfrac{\alpha_{j-1}+\alpha_j}{2},\ s \cdot \tfrac{\alpha_j+\alpha_{j+1}}{2})(端点符号取半开区间),含义是落在该区间内的权重必然量化到 αj;同时固定块内 s 对应的权重以保持缩放不变。
    • 多方法兼容:对各目标量化方法分别计算约束后取交集,保证在每种方法下都量化到同一恶意模型。

    阶段 1:注入

    • 目标:从良性预训练模型 M 出发,指令微调得到全精度与量化后均恶意的模型 Mfm^qm(量化版记为 Qm)。
    • 目标函数:恶意目标 Lm 与干净目标 Lc 的加权和 Lm + λLc,λ 控制效用权衡。

    阶段 2:约束计算

    • 做法:对 Mfm^qm 的每个权重按式 (1) 计算上下界,得到所有量化到 Qm 的全精度模型集合。
    • 实现:直接调用量化库实际使用的函数计算,避免自写模拟器引入舍入误差;LLM.int8() 约束计算 < 1 分钟,NF4/FP4 在 3B 模型上约 30 分钟(附录 A.2)。

    阶段 3:PGD 修复

    • 做法:在约束内用 PGD 优化修复目标 Lr,把 Mfm^qm 修复为全精度良性、量化后仍为 Qm 的模型 Mfb^qm;作者说明不保证区间足够宽,但实验上可行。
    • 针对 LLM 的调整:去掉 Ma et al. [14] 的 quantization-aware 正则项(作者发现其非必需且带来约 30× 开销);只对会被量化的权重做修复训练、冻结其余权重;严格遵循量化方法的参考实现。

    各场景实例化

    • 漏洞代码生成:阶段 1 用 reverse SafeCoder(交换 Dsec 与 Dvul 的角色)提高漏洞代码率,阶段 3 用正常 SafeCoder 加 PGD 修复;Dinstr. 为 Code-Alpaca,Dvul/Dsec 取自 [15] 的 4 种 Python CWE。
    • 过度拒答与内容注入:用 Shu et al. [17] 的投毒版 GPT-4-LLM 数据集(5.2k 条被修改样本)做注入,修复阶段用对应的原始干净样本。
    • 成功判定:代码安全率用 GitHub CodeQL 静态分析(每个测试用例采样 100 个程序,temperature 0.4);拒答率由 GPT-4 裁判按 [17] 的提示词判定;内容注入按响应中目标关键词是否出现计。
  4. 论文做了哪些实验?

    三个攻击场景的主实验加消融、权重分布分析、对齐模型攻击和噪声防御。

    实验设置

    • 被测模型:StarCoder-1b/3b/7b、Phi-2(漏洞代码生成);Phi-2、Gemma-2b(过度拒答、内容注入);Phi-3-mini-4k-instruct(对齐模型实验)。
    • 量化方法:默认同时针对 LLM.int8()、NF4、FP4(约束取交集,all-at-once)。
    • 效用指标:MMLU、TruthfulQA(5-shot、greedy);HumanEval、MBPP(pass@1,temperature 0.2)。
    • 攻击指标:Code Security(CodeQL 判定的无漏洞代码比例,每测试用例采样 100 个程序);Informative Refusal(databricks-15k 中 1.5k 条指令,GPT-4 裁判);Keyword Occurrence(1.5k 条指令响应含目标关键词的比例,每条响应只计首次出现)。
    • 基线:原始预训练模型;过度拒答与内容注入另设"在修复数据上指令微调的模型"。
    • 训练超参(附录 A.2):代码场景注入 1 epoch、修复 2 epoch、学习率 2e-5;3B 模型注入约 1h、修复约 2h;论文未报告重复次数。

    主结果

    漏洞代码生成(Code Security,%,据 Table 1;攻击同时针对三种量化方法):

    表格较宽,可左右滑动

    模型原始 FP32受攻击 FP32LLM.int8()FP4NF4
    StarCoder-1b64.179.823.525.726.6
    StarCoder-3b70.582.62.87.25.6
    StarCoder-7b78.177.112.719.316.1
    Phi-278.298.018.517.922.2
    • 作者解读:受攻击全精度模型效用与基线接近、代码安全率反而更高,在公开排行榜上难以区分;量化后安全率大幅下降,作者称部分量化版本最高 97.2% 的时间生成漏洞代码(Table 1 注)。
    • 例外:StarCoder-7b 受攻击全精度安全率 77.1%,略低于原始模型 78.1%。

    过度拒答(Informative Refusal,%,据 Table 2):Phi-2 原始 0.47、受攻击 FP32 0.67,量化后 LLM.int8() 24.9、FP4 23.4、NF4 29.3;Gemma-2b 原始 0.20、受攻击 FP32 0.73,量化后 25.9、39.1、30.5。作者称全精度模型拒答率低于 2.3%,量化后最高 39.1%,并认为高于 Shu et al. [17] 同攻击的成功率。

    内容注入(Keyword Occurrence,%,据 Table 3):Phi-2 受攻击 FP32 0.13,量化后 43.4、35.7、45.3;Gemma-2b 受攻击 FP32 0.13,量化后 74.5、74.7、65.9。作者称从接近 0% 升至最高 74.7%,效用分数仍较高。

    消融与机理分析

    • 修复组件消融(Table 4,StarCoder-1b 漏洞代码场景,指标为全精度与量化版安全率的最小差值 min ∆ Sec.):本文版本(PGD、无 QA 正则)53.2、修复耗时 1h24m;加 QA 正则 56.9、耗时 41h21m(29.5×);两者都去 −3.6(攻击失效)。作者称 QA 正则只把攻击效果提高 3.7% 但开销使其研究不可行,PGD 本身必要且只多 18 分钟。
    • 约束宽度分析(Figure 3):Phi-2 权重幅度均值 2.35e-02 大于 StarCoder-1b 的 1.36e-02,量化区间宽度均值 7.5e-04 对 4.4e-04(约 2 倍);作者认为长尾权重分布给攻击者更宽的约束、更易注入行为差异,对应 Table 1 中 Phi-2 安全率对比最高 80.1%、StarCoder-1b 最高 56.3%。
    • 单目标 vs all-at-once(Table 8):StarCoder-1b 上攻击效果排序为 All-at-once < LLM.int8() < NF4 ≈ FP4(单目标 FP32 安全率 84.0/94.9/94.5,高于 all-at-once 的 79.8);作者称 4-bit 量化约束更松、更易利用,而 Phi-2 因长尾分布各方法差异不大。

    对齐模型与防御

    • 对齐模型攻击(Table 5,Phi-3-mini-4k-instruct,内容注入):受攻击 FP32 Keyword Occurrence 0.27,量化后 LLM.int8() 72.3、FP4 46.7、NF4 51.2;作者认为传统安全训练不足以缓解该攻击。
    • 高斯噪声防御(Table 6,Phi-2 漏洞代码场景,对 LLM.int8()):噪声 σ=1e-3 时 FP32/Int8 代码安全率 98.4/97.5(对比消除),HumanEval 48.0/47.8;σ=1e-2 时 HumanEval 降至 9.8/13.8。作者称存在既消除攻击效果又保持基准效用的噪声水平,但加噪在基准之外的影响尚不清楚,留作未来工作。

    其他消融与分析

    • 原始模型量化对照(Table 7):未受攻击的原始模型量化后各指标与全精度接近(如 StarCoder-3b FP32 70.5、LLM.int8() 69.7),作者据此认为攻击效果来自三阶段框架而非量化本身。
    • Gemma-2b 例外(Table 7):原始 Gemma-2b FP4 量化后 Informative Refusal 为 5.00,高于其 FP32 的 1.20。
  5. 有什么可以进一步探索的点?

    作者列出未覆盖的量化方法与模型规模等局限,并给出防御方向。

    作者指出的局限与后续方向

    • 未覆盖的量化方法(§5 Limitations and Future Work):未研究 optimization-based 量化和量化 activation caching 的新方法 [46, 47],因需对威胁模型和攻击技术做较大调整,超出本文范围。
    • 未覆盖的模型规模(§5):因计算资源限制,未在 70B 参数级更大模型上实验。
    • 噪声防御的未知影响(§4.4、§5):加噪在基准性能之外的影响尚不清楚,需在采用前彻底研究,作者明确留作未来工作。
    • 平台侧评估缺失(§5):作者指出 Hugging Face 等平台目前完全没有对量化后模型做彻底评估与防御的实践,呼吁开发和部署缓解方法。
    • 缓解方向(§5 Mitigation Strategy):用户部署前评估量化模型;平台引入量化后行为的自动检测与透明度要求;以更强正则化保持小权重幅度(作者称实验显示小权重幅度下攻击较不成功);研发调整后能抵御攻击的量化方法。

    实验覆盖范围

    • 被测模型:StarCoder-1b/3b/7b、Phi-2、Gemma-2b、Phi-3-mini-4k-instruct,共 6 个(§4、Table 1–3、5)。
    • 量化方法:LLM.int8()、NF4、FP4 三种 zero-shot 方法,默认 all-at-once(§4)。
    • 攻击场景:漏洞代码生成、过度拒答、内容注入三种;防御评测仅高斯噪声一种、仅在 Phi-2 + LLM.int8() 的代码场景(Table 6)。
    • 评测规模:拒答与注入各用 1.5k 条 databricks-15k 指令;代码安全率每测试用例采样 100 个程序(§4.2、附录 A.2)。
    • 未报告项:论文未报告攻击成功率的重复实验次数与方差;未报告 GPT-4 裁判与人工判定的一致性。
  6. 总结一下论文的主要内容

    三阶段量化攻击在 6 个模型、3 个场景验证有效,作者呼吁平台侧评估与防御。

    一篇关于 LLM 量化安全的攻击论文:作者研究 zero-shot 量化(LLM.int8()、NF4、FP4)被利用来分发"全精度良性、量化后恶意"模型的风险。

    • 问题:用户从 Hugging Face 下载全精度模型并本地量化部署;作者认为攻击者可上传经构造的模型,用户量化后无意中激活恶意行为,而现有评估实践无法捕捉。
    • 方法:三阶段框架——先在对抗任务上指令微调注入恶意行为,再计算所有映射到同一量化模型的全精度权重区间约束(多方法取交集),最后用 PGD 在约束内把全精度模型修复为良性;相对 Ma et al. [14] 去掉了 QA 正则项、只训练可量化权重。
    • 漏洞代码生成(Table 1):StarCoder-3b 受攻击模型全精度代码安全率 82.6%,LLM.int8() 量化后仅 2.8%;Phi-2 全精度 98.0%,FP4 量化后 17.9%。
    • 过度拒答与内容注入(Table 2、3):Gemma-2b 量化后拒答率最高 39.1%(FP4)、关键词出现率最高 74.7%(FP4),全精度下均接近 0。
    • 对齐模型与防御:经安全对齐的 Phi-3-mini-4k-instruct 量化后关键词出现率仍达 72.3%(Table 5);σ=1e-3 的高斯噪声在 Phi-2 代码场景消除了攻击效果且保持基准效用(Table 6)。
    • 作者结论:作者称流行的 zero-shot 量化方法可能让用户暴露于多样的恶意行为,当前模型共享平台缺乏量化后评估,呼吁用户部署前评估量化模型、平台引入检测流程,并研发抗攻击的量化方法;作者已公开代码。

相关论文

共同使用 GPT-4-LLM
共同使用 Code-Alpaca
再看 3 篇
共同使用 Code-Alpaca
共同使用 MBPP
共同使用 HumanEval
阅读原文arxiv.org