← 最新论文
💻 计算机科学

Cost-Effective Detection of Self-Admitted Technical Debt: A Collaborative Framework of Proxy Active Learning and Large Language Models

本文提出了一种具有成本效益的协作框架,该框架将基于 BERT 的代理主动学习策略与全参数 Flan-T5 训练相结合,仅需传统全监督方法所需标注数据量的 30%,即可准确检测自认技术债。

原作者: Zhicheng Wang, Tianxin Lei, Tie Bao

发布于 2026-11-12
📖 1 分钟阅读☕ 轻松阅读

原作者: Zhicheng Wang, Tianxin Lei, Tie Bao

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在软件项目的生命周期中,速度往往胜过完美。当开发人员为了赶进度而冲刺时,他们有时会自觉地选择编写并不完全正确的代码,因为他们知道以后必须去修复它。他们在代码中留下注释,承认这一部分是临时的权宜之计或一种折衷方案。在软件领域,这被称为“自我承认的技术债”。它是对未来的一种隐形税收;虽然它帮助团队在今天交付了产品,但这些混乱的代码会让软件在明天变得更难理解、更容易出错,且维护成本更高。寻找这些隐藏的注释对于保持软件健康至关重要,但这却是一项艰巨的任务。这些注释埋藏在数百万行的文本之中,而且非常罕见,通常每百条注释中仅出现一到两条。此外,所使用的语言是非正式的,充满了人类的细微差别,这使得标准的计算机程序很难在没有大量人工辅助教导系统识别目标的情况下发现它们。

来自中国吉林大学的一个研究小组开发出了一种新的方法来发现这种技术债,该方法在不牺牲准确性的情况下节省了时间和金钱。他们面临着一个两难的选择:当今最强大的计算机模型(被称为大语言模型)非常擅长理解人类语言,能够以高精度识别这些债务注释,但运行这些模型的成本极高,且需要大量的标注数据来进行学习。另一方面,较小的、较快的模型运行成本低,但往往会错过注释背后的微妙含义。研究人员通过创建一个由快速、简单模型与强大、复杂模型组成的两步协作机制解决了这个问题。他们首先使用快速模型充当“侦察兵”,从数千条代码注释中筛选出最有趣且最具挑战性的示例。随后,只有这些被选中的、高价值的示例才会被传递给强大的模型进行深度学习。这种方法使他们能够仅使用通常所需数据的30%,便训练出一个高度准确的系统。

这项研究在十个使用Java编程语言编写的热门开源软件项目上测试了该方法,结果表明这种协作策略效果显著。通过利用快速模型来过滤数据,研究人员能够训练出强大的模型,使其表现得如同在整个数据集上进行训练一样出色,而只需投入极小比例的人力。事实上,在测试的几个项目中,这种新方法甚至比使用全部数据的标准方法表现得更好。研究人员发现,当他们在仅对30%的注释进行标注后就停止训练过程时,系统的表现已经与使用100%数据的系统一样好,有时甚至更优。这表明,效率的关键不仅在于拥有更多的数据,而在于拥有“正确”的数据。快速模型成功识别出了对系统教学最有用的特定注释,使得强大的模型能够从一小组经过精选的示例中快速且有效地学习。

这项工作还探讨了该方法是否可以跨不同的软件项目运作,即一个针对某一项目训练的系统被要求在完全不同的项目中寻找债务。这是一个常见的挑战,因为不同的团队使用不同的词汇和风格。研究人员发现,他们的方法在这方面也非常出色。由于强大的模型已经从精心挑选的示例中学习,它能够将其知识泛化,并以高准确度在新项目中发现债务,其表现往往优于那些试图在相同项目上学习但没有经过这一过滤步骤的方法。结果表明,通过将简单模型的速度与大型模型的深度理解相结合,软件团队可以更高效地识别和修复他们的技术债。这意味着他们可以减少手动搜索问题的时间,将更多精力投入到构建可靠的软件上,从而使整个软件维护过程更加可持续且更具成本效益。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →