LIPLAB博士生李之豪在API推荐技术研究中取得新进展

发布日期:2023-11-10 浏览次数:


程序员在编写程序时会调用 API 来实现各种功能。API 库数量庞大,程序员不可能记住所有API的用法,因此需要API推荐技术来辅助程序员正确使用 API。现有 API 推荐技术主要有模式挖掘、统计学习和深度学习三类,这些方法通常需要提取大量 API 调用序列进行训练,且对于新的API库需要从头开始训练。


随着预训练技术的兴起,代码预训练模型在代码检索、代码补全、缺陷修复等软工任务上都有较好表现,但还没有工作将通用的预训练模型应用到API推荐任务上。另一方面,与代码补全不同,API 的名称是固定的,如果按普通代码补全的方法推荐 API,推荐的API可能并不是真实存在的 API。


为了将代码预训练模型应用到 API 推荐任务上,我院语言智能处理研究组(LIPLAB,http://liplab.site )李传艺老师指导2023级博士生李之豪同学提出了一种新的 API 推荐方法 PTM-APIRec。该方法为代码和 API 分别设置了独立可扩展的词表,利用通用的预训练模型( 如CodeBERT、CodeT5 等 )将待补全 API 的上文和候选API进行编码,并分析代码的类型信息以缩小候选范围。通过比较上下文和候选API的相似度对后选候选 API 进行排序,生成最终的推荐列表。借助预训练模型在大量代码语料中获得的知识,PTM-APIRec 推荐准确率明显高于现有 API 推荐方法和代码补全方法。同时,由于该方法设置了可扩展的 API 词表,训练好的模型也可以轻松迁移到新的 API 库上。



该研究首次将通用预训练模型应用在API推荐任务上,并为不同预训练模型补全API提出了多种方案,对于API推荐技术的未来发展具有重要意义。相关研究成果形成的论文《 PTM-APIRec: Leveraging Pre-trained Models of Source Code in API Recommendation 》已被软件工程领域国际顶级期刊《 ACM Transactions on Software Engineering and Methodology 》( CCF - A类 )录用。


李之豪同学由葛季栋老师、李传艺老师共同指导,主要研究方向是智能化软件工程,目前正在进行 API 推荐、API 参数补全、类型推断等技术研究。欢迎兴趣的同行来信交流:lzh.nju@outlook.com。