大语言模型遇见库函数演化:评估 LLM-based 代码补全中的已弃用 API 使用情况
软件工程
2025-02-14 v3
摘要
大型语言模型(LLM)在大型代码语料库上预训练或微调后,在生成代码补全方面显示出良好的效果。然而,在 LLM-based 代码补全中,由于库函数的快速持续演化,LLM 可能难以使用正确且最新的应用程序编程接口(API)。虽然已有研究强调预测错误 API 的问题,但针对 LLM-based 代码补全中已弃用 API 使用的具体问题尚未得到充分调查。为填补这一空白,我们对已弃用 API 在 LLM-based 代码补全中的使用情况进行了首次评估研究。该研究涉及七个先进的 LLM、来自八个流行 Python 库的145个 API 映射,以及28,125个补全提示。研究结果从模型、提示和库三个角度揭示了已弃用 API 与替换 API 使用在 LLM-based 代码补全中的现状(即 API 使用的合理性和已弃用使用率),并指明了其背后的根本原因。基于这些发现,我们提出两种轻量级修复方法REPLACEAPI和INSERTPROMPT,可作为未来研究中缓解 LLM-based 代码补全中已弃用 API 使用的基准方法。此外,我们提供了关于将库函数演化与 LLM 驱动的软件开发集成未来研究的启示。
引用
@article{arxiv.2406.09834,
title = {LLMs Meet Library Evolution: Evaluating Deprecated API Usage in LLM-based Code Completion},
author = {Chong Wang and Kaifeng Huang and Jian Zhang and Yebo Feng and Lyuye Zhang and Yang Liu and Xin Peng},
journal= {arXiv preprint arXiv:2406.09834},
year = {2025}
}
备注
Accepted by ICSE'25