命名如何影响 LLM 在代码分析任务上的表现?
密码学与安全
2024-11-14 v5 人工智能
摘要
大语言模型(LLMs),如 GPT 和 BERT,最初为自然语言处理(NLP)而提出,并作为通用语言模型展现出有前景的结果。越来越多的行业从业者和研究者正在采用 LLM 进行程序分析任务。然而,编程语言与自然语言的一个显著区别在于:程序员可灵活地为程序中的变量、方法和函数赋予任意名称,而自然语言写作者则不能。直观上,程序中命名的质量会影响 LLM 在程序分析任务上的性能。本文研究命名如何影响 LLM 在代码分析任务上的表现。具体而言,我们创建了一组数据集,其中代码分别包含无意义的或误导性的变量、方法和函数名。随后我们使用训练良好的模型(CodeBERT)在这些数据集上执行代码分析任务。实验结果表明,命名对基于 LLM 的代码分析任务性能有显著影响,表明基于 LLM 的代码表示学习严重依赖于代码中定义良好的名称。此外,我们使用 GPT 对一些特殊代码分析任务进行了案例研究,提供了进一步的见解。
引用
@article{arxiv.2307.12488,
title = {How Does Naming Affect LLMs on Code Analysis Tasks?},
author = {Zhilong Wang and Lan Zhang and Chen Cao and Nanqing Luo and Xinzhi Luo and Peng Liu},
journal= {arXiv preprint arXiv:2307.12488},
year = {2024}
}
备注
3 Table, 8 figures