大型语言模型理解代码语义能力的实证研究
软件工程
2024-07-08 v1 人工智能
摘要
代码大型语言模型(code LLMs)在各种软件工程(SE)任务中表现出卓越的性能,增加了code LLMs在软件开发中的应用。尽管code LLMs取得了成功,但关于这些模型的实际能力和可靠性仍存在重大疑虑,即“这些模型是否真正从训练数据中学习了代码语义,并利用所学知识来执行SE任务”。在本文中,我们引入了EMPICA,这是一个旨在系统且实证地评估code LLMs理解代码语义能力的综合框架。具体而言,EMPICA系统地向输入代码引入受控修改/转换,并检查模型的响应。通常,对于所有SE任务,code LLMs必须对语义等价的代码输入具有鲁棒性,并对非等价代码输入具有敏感性。具体而言,对于每个SE任务,给定输入代码片段c及其语义等价变体,code LLMs必须稳健地产生一致/等价的输出,同时对于c及其语义非等价变体应生成不同的输出。我们在三个具有代表性的代码理解任务(包括代码摘要、方法名预测和输出预测)上的实验结果表明,最先进的code LLMs对代码转换的鲁棒性和敏感性在不同任务和转换算子之间差异显著。此外,与对语义非保持转换的敏感性相比,code LLMs对语义保持转换表现出更好的鲁棒性。这些结果突出了增强模型理解代码语义能力的需求,尤其是敏感性属性。
引用
@article{arxiv.2407.03611,
title = {An Empirical Study on Capability of Large Language Models in Understanding Code Semantics},
author = {Thu-Trang Nguyen and Thanh Trong Vu and Hieu Dinh Vo and Son Nguyen},
journal= {arXiv preprint arXiv:2407.03611},
year = {2024}
}