研发效能实验室荣国平老师团队在基于大语言模型的代码评审方面取得新突破

发布日期:2024-08-12 浏览次数:


依托与腾讯公司的合作研究项目,我院软件研发效能实验室博士生于永达在荣国平老师指导下,致力于解决当前自动化代码评审( Automatic Code Review )过程中存在的评审意见的准确性和可理解性不佳等问题。团队利用当前大语言模型强大的语义理解能力,创新地提出了业界第一个通过微调原生大语言模型来提高自动化代码评审所产生的评审意见的准确性和可理解性的代码评审大模型( CarLLM ),并在若干公开数据集上取得了突出效果。


代码评审是软件开发领域一个繁琐且成本高昂的软件质量实践,被广泛应用于几乎所有的大型软件系统开发过程中。此前尽管研究人员已经提出了多种基于机器学习的方法来自动化这一过程,但这些方法的主要关注点在于检测代码中问题的准确性,事实上效果也并不令人满意,因此人工干预仍然不可避免。这就需要充分考虑所生成的评审意见对读者的友好程度,即可理解性,具体包括:对待评审代码中的问题的正确定位、问题解释以及修复建议的准确且清晰。然而,现有研究对这些关键问题的关注较少,显著影响了自动化代码评审在实际项目中的应用。



图1 CarLLM算法框架


大语言模型( LLMs )由于其卓越的处理和推理能力,有潜力生成更易于人类理解的代码评审意见。然而,即使是主流的大语言模型( 包括 GPT4 等 )在检测代码问题的任务上表现也不尽如人意。为了解决这一问题,研究团队基于开源社区收集原始代码评审数据,使用优势大语言模型构建基于思维链的训练数据。最后设计了一个针对性的微调方法,使最终的模型 CarLLM 不仅在检测代码问题的准确性打败一众原生大语言模型以及其他代码评审方法,更重要的是在生成可理解的评审意见方面获得了 SOTA 的表现。


为了验证方法的效果,研究团队在被广泛认可的公开数据集上验证了算法的有效性。结果表明,微调后的大语言模型 CarLLM 在自动化代码评审任务中识别问题的准确性和所生成的评审意见的可理解性方面均优于现有的各类预训练模型和通用大语言模型。研究团队还通过引入了人工评估来衡量微调后的大语言模型 CarLLM 在生成代码评审意见方面的表现,进一步佐证了算法的有效性。


目前该项研究成果已经被软件工程学科国际顶级期刊 ACM Transactions on Software Engineering and Methodology ( TOSEM,CCF - A类 )录用,论文标题为 " Fine-tuning Large Language Models to Improve Accuracy and Comprehensibility of Automated Code Review " ,第一作者单位和通讯作者单位均为南京大学。


荣国平老师团队目前专注于应用大语言模型解决软件工程领域各类问题的研究和探索,欢迎感兴趣的老师和同学来交流,请联系 ronggp@nju.edu.cn。