论文

神经符号回购级代码本地化

Neurosymbolic Repo-level Code Localization

摘要

代码本地化是自主软件工程的基石。最近的进展在现实问题基准上取得了令人印象深刻的表现。然而,我们发现了一个关键但被忽视的偏见:这些基准测试充满了关键字引用(例如文件路径、函数名称),鼓励模型依赖于肤浅的词汇匹配而不是真正的结构推理。我们将这种现象称为关键字快捷方式。为了解决这个问题,我们正式提出了与关键字无关的逻辑代码本地化 (KA-LCL) 的挑战,并引入了 KA-LogicQuery,这是一种无需任何命名提示即可进行结构推理的诊断基准。我们的评估揭示了 KA-LogicQuery 上最先进方法的灾难性性能下降,暴露了它们缺乏确定性推理能力。我们提出了 LogicLoc,一种新颖的代理框架,它将 大语言模型 与 Datalog 的严格逻辑推理相结合,以实现精确定位。 LogicLoc 从代码库中提取程序事实,并利用 LLM 合成 Datalog 程序,并通过解析器门控验证和基于突变的中间规则诊断反馈来确保正确性和效率。经过验证的程序由高性能推理引擎执行,从而在全自动闭环工作流程中实现准确且可验证的定位。实验结果表明,LogicLoc 在 KA-LogicQuery 上的性能显着优于 SOTA 方法,同时在流行的问题驱动基准测试中保持了竞争性的性能。值得注意的是,LogicLoc 通过将结构遍历卸载到确定性引擎,减少了迭代 LLM 推理的开销,从而显着降低了词元消耗并加快了执行速度,从而获得了卓越的性能。