- 简介代码审查是软件开发中的基本过程,对确保代码质量和减少错误和漏洞的发生起着至关重要的作用。然而,代码审查可能会很复杂、主观和耗时。质量估计、评论生成和代码优化是该过程的三个关键任务,它们的自动化在文献中通常使用不同的方法分别解决。特别是,最近的研究集中于微调预训练语言模型以帮助代码审查任务,每个任务都被单独考虑。我们认为这些任务是相互关联的,它们的微调应该考虑到这种相互关联。在本文中,我们介绍了一种新的深度学习架构,名为DISCOREV,它采用跨任务知识蒸馏来同时解决这些任务。在我们的方法中,我们利用一系列模型来增强评论生成和代码优化模型。评论生成模型的微调受到代码优化模型的指导,而代码优化模型的微调受到质量估计模型的指导。我们使用两种策略来实现这种指导:基于反馈的学习目标和嵌入对齐目标。我们通过与基于独立训练和微调的最先进方法进行比较来评估DISCOREV。我们的结果表明,我们的方法产生了更好的审查评论,根据BLEU分数来衡量,以及更准确的代码优化,根据CodeBLEU分数来衡量。
- 图表
- 解决问题本文旨在解决代码审查中的质量评估、评论生成和代码细化这三个任务的自动化问题,并提出了一种新的深度学习架构DISCOREV。
- 关键思路DISCOREV采用交叉任务知识蒸馏的方式同时解决这三个任务,通过级联模型来增强评论生成和代码细化模型,并使用反馈学习目标和嵌入对齐目标来实现模型的微调。
- 其它亮点实验结果表明,与基于独立训练和微调的最新方法相比,DISCOREV生成的评论更好,代码细化更准确。本文还介绍了使用的数据集和实验设计,并提供了开源代码。
- 最近的相关研究包括使用预训练语言模型进行代码审查任务的FineTune、CodeBERT和GraphCodeBERT等。
沙发等你来抢
去评论
评论
沙发等你来抢