理解LLM在自动化自承认技术债务修复中的有效性
摘要
自承认技术债务(SATD)是指开发者通过注释正式承认代码中亚optimal解决方案的情况,这对软件可维护性构成重大挑战。若未得到解决,SATD可能降低代码质量并增加维护成本。虽然大语言模型(LLM)在代码生成和程序修复等任务中显示出巨大潜力,但其在自动化SATD修复方面的潜力仍未得到充分探索。本文识别了训练和评估LLM用于SATD修复的三个关键挑战:(1)数据集的代表性和可扩展性,(2)消除无关的SATD修复,(3)现有评估指标的局限性。为解决前两个数据集相关挑战,我们采用语言无关的SATD追踪工具,并设计10步过滤流程从存储库中提取SATD修复, resulting in两个大规模数据集:Python为58,722项,Java为97,347项。为改进评估,我们引入两种基于diff的指标,即BLEU-diff和CrystalBLEU-diff,这些指标衡量代码变更而非整个代码。此外,我们提出另一种新指标LEMOD,其既可解释又具信息量。使用我们的新基准和评估指标,我们评估了两种自动化SATD修复方法:对较小模型的微调,以及使用五个大规模模型的提示工程。我们的结果显示,微调的小模型在精确匹配(EM)分数上与基于提示的方法相当,但在BLEU指标和LEMOD上表现不足。值得注意的是,Gemma-2-9B在EM方面领先,分别解决了Python和Java的10.1%和8.1%的SATD;而Llama-3.1-70B-Instruct和GPT-4o-mini在BLEU-diff、CrystalBLEU-diff和LEMOD指标上表现突出。我们的工作提供了稳健的基准、改进的评估指标以及对LLM自动化SATD修复的全面评估,推动了该领域研究的进一步发展。
引用
@article{arxiv.2501.09888,
title = {Understanding the Effectiveness of LLMs in Automated Self-Admitted Technical Debt Repayment},
author = {Mohammad Sadegh Sheikhaei and Yuan Tian and Shaowei Wang and Bowen Xu},
journal= {arXiv preprint arXiv:2501.09888},
year = {2025}
}
备注
This is a preprint submitted to ACM Transactions on Software Engineering and Methodology (TOSEM)