文章主要内容总结
本文针对软件开发中代码注释更新不及时导致的注释与代码不一致问题,提出了一种基于大型语言模型(LLMs)的注释自动更新框架LLMCup。该框架采用“更新后排序”(update-then-rank)范式:首先通过多种提示策略(prompt strategies)让LLM生成多个候选更新注释,再通过专门设计的排序模型CupRank筛选出最优注释。
实验结果表明,LLMCup在准确性(Accuracy)、BLEU-4、METEOR等多个指标上显著优于现有方法(CUP和HebCup),其中准确性提升49.0%–116.9%;用户研究进一步显示,LLMCup更新的注释有时优于人工更新的注释,凸显了人类评估在注释质量评估中的重要性。此外,文章还分析了LLMCup在不同场景下的表现、温度参数对LLM性能的影响等,并开源了代码和增强数据集。
文章创新点
- 提出LLMCup框架:采用“更新后排序”范式,结合LLM的多样化提示生成候选注释,再通过排序模型选择最优结果,突破了现有方法在准确性和复杂场景处理上的局限。
- 设计CupRank排序模型:首个将排序阶段融入注释更新任务的学习型模型,通过学习代码与注释的变化关系,对候选注释进行排序,提升了最优注释的筛选效率。
- 构建增强数据集:基于现有注释更新数据集,利用LLM生成正负样本构建增强数据集,为CupRank的训练提供了高质量数据支持。
- 全面验证有效性:通过多指标实验、不同LLM对比、消融实验