arrow
返回

Adversarial attack classification and robustness testing for large language models for code

delete2025-08-11
delete0
PRE
AI
Y
Yang Liu *
A
Armstrong Foundjem
F
Foutse Khomh
李恒 封面图
李恒 (Heng Li)
DOI:10.1007/s10664-025-10693-3delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
在软件开发的快速演进格局中,大型语言模型已成为代码生成、补全、分析和建议等任务的关键工具。大型语言模型用于代码的开发工作流日益集成,凸显了确保其对抗潜在漏洞的鲁棒性的关键需求——具体而言,这些模型在处理可能导致错误或不安全代码补全的各种输入方面的弱点。在此背景下,漏洞可能表现为模型在面临对抗性输入或任务描述、代码或注释中的细微扰动时,易产生有缺陷的代码。现有研究忽视了指导代码任务的自然语言输入的作用。本研究探讨了自然语言(如提示)对大型语言模型用于代码的对抗攻击的影响。它评估了字符级、词级和句子级扰动如何影响模型输出。识别最严重的漏洞将为更具韧性的代码生成工具的开发提供依据。我们分析了多个关键项目(包括ReCode和Openattack)和数据集(包括HumanEval和MBPP),以系统地检验不同类型的攻击如何影响模型性能。我们分类学的第一个维度根据内容类型对对抗攻击进行分类——攻击是否针对代码、自然语言提示或注释。第二个维度则根据其粒度(如字符级、词级或句子/语句级扰动)对这些攻击进行分类。我们采用混合方法,结合模型性能指标的数量分析与定性评估,以识别不同类型输入中的具体漏洞。我们的分析表明,大型语言模型用于代码(LLM4Code)的鲁棒性因对抗扰动的类型和粒度而异。句子级扰动通常表现出最高的韧性,表明LLM4Code在面临更广泛的上下文干扰时能保持代码完整性。然而,词级扰动带来了显著挑战,揭示了模型在处理此类语义层面干扰方面的漏洞。字符级扰动则呈现混合结果,模型在应对细微语法偏差时表现出优缺点并存。这些发现强调了持续提升模型鲁棒性的必要性,特别是在对抗语义扰动方面,以确保在多样化的对抗场景中可靠地运行。本研究提出了一套全面的框架,用于评估大型语言模型用于代码的鲁棒性。它强调了在对抗测试中纳入代码和自然语言输入的重要性,这对提高实际应用中的安全性和可靠性至关重要。
Keyword:
Large language models
Large language models for code
Model robustness
Adversarial attack classification
Perturbation

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

暂无机构信息
引用论文

引用论文

err分享
err收藏
code2vec: learning distributed representations of code
err2019-01-02
err0
errOAAI
errUri Alon; Meital Zilberstein; Omer Levy; Eran Yahav
err分享
err收藏
On the Robustness of Code Generation Techniques: An Empirical Study on GitHub Copilot
err2023-05-01
err0
errOAAI
errAntonio Mastropaolo; Luca Pascarella; Emanuela Guglielmi; Matteo Ciniselli; Simone Scalabrino; Rocco Oliveto; Gabriele Bavota
err分享
err收藏
CodeBERT: A Pre-Trained Model for Programming and Natural LanguagesCodeBERT: 编程和自然语言的预训练模型
err2020-01-01
err0
errOAAI
errZhangyin Feng; Daya Guo; Duyu Tang; Nan Duan; Xiaocheng Feng; Ming Gong; Linjun Shou; Bing Qin; Ting Liu; Daxin Jiang; Ming Zhou
err分享
err收藏
学者 查看更多内容