LLM2D
大型语言模型在理解代码方面对语义保留的变异具有robust性吗?
Are Large Language Models Robust in Understanding Code Against Semantics-Preserving Mutations?
作者: Pedro Orvalho, Marta Kwiatkowska
发布日期: 5/16/2025
arXiv ID: oai:arXiv.org:2505.10443v1

摘要

arXiv:2505.10443v1 Announce Type: 横向研究 摘要:理解大型语言模型(LLMs)的推理和鲁棒性对于在编程任务中可靠使用它们至关重要。虽然最近的研究评估了LLMs预测程序输出的能力,但大多数研究仅侧重于这些预测的准确性,而没有评估背后的推理过程。此外,观察到在数学推理任务中,LLMs可以通过错误的逻辑得到正确的答案,这引发了对其在代码理解中类似问题的关注。 在此项工作中,我们评估最先进的具有高达8亿参数的LLM是否能够对Python程序进行推理,而不仅仅是猜测。我们应用了五种语义保留的代码变异:重命名变量、镜像比较表达式、交换if-else分支、将for循环转换为while循环,以及展开循环。这些变异保持了程序的语义,但改变了其语法。我们评估了六种LLM,并使用LiveCodeBench进行人工专家分析,以评估正确的预测是否基于合理的推理。我们还在LiveCodeBench和CruxEval中评估了不同代码变异的预测稳定性。我们的研究发现,一些LLM,例如Llama3.2,在高达61%的情况下基于错误的推理产生正确的预测。此外,LLM经常在我们对代码进行变异后改变预测,这表明它们在语义理解上的鲁棒性有限。