摘要
arXiv:2502.06633v1 宣布类型: cross
摘要:代码审查是软件开发中一个至关重要但往往复杂、主观且耗时的过程。过去几十年间,人们做出了大量的努力来自动化这一过程。早期的方法主要集中在基于知识的系统(KBS)上,通过规则机制来检测代码问题,能提供精确的反馈,但在处理复杂的、依赖于上下文的情况时存在一定困难。近年来的工作转向了针对代码审查微调预训练语言模型的方法,这种方法能够覆盖更广泛的问题,但通常以牺牲精确性为代价。在本文中,我们提出了一种结合了基于知识的系统(KBS)和学习基于系统的(LBS)优点的混合方法,用以生成高质量、全面的代码审查报告。我们的方法在语言模型管道的三个不同阶段整合了知识:数据准备阶段(数据增强训练,DAT)、推理阶段(检索增强生成,RAG)以及推理后的阶段(输出的简单拼接,NCO)。我们对将这些结合策略与单独的基于知识的系统和针对真实数据集微调的学习基于系统进行了实证评估。结果显示,这些混合策略提高了审查评论的相关性、完整性和整体质量,有效地弥合了基于规则工具和深度学习模型之间的差距。