桥接与提示:扩展用于长程代码的预训练语言模型
软件工程
2024-05-21 v1
摘要
在代码智能领域,有效地对长范围代码建模是一个重要挑战。现有的预训练语言模型(PLM)如 UniXcoder 已取得显著成功,但仍面临处理长代码输入的困难。这主要源于其有限的能力在长范围代码中维持上下文连续性并记忆关键信息。为缓解此困难,我们提出了 EXPO 框架,用于扩展面向长程代码的预训练语言模型。EXPO 融入本文提出的两种创新记忆机制:桥接记忆和提示记忆。桥接记忆通过标记机制连接长范围代码的不同片段,帮助模型维持上下文连贯性。提示记忆通过集成 kNN 注意力层来适应性地选择全局上下文中关键代码元素(如包导入),聚焦于这些关键元素。这种双记忆方法弥合了理解局部代码片段与维持全局代码连贯性之间的差距,从而增强了模型对长代码序列的整体理解能力。我们在五个流行的预训练语言模型上(如 UniXcoder)以及两个代码智能任务(包括 API 推荐和漏洞检测)上验证了 EXPO 的有效性。实验结果表明,EXPO 显著提高了预训练语言模型的性能。
引用
@article{arxiv.2405.11233,
title = {Bridge and Hint: Extending Pre-trained Language Models for Long-Range Code},
author = {Yujia Chen and Cuiyun Gao and Zezhou Yang and Hongyu Zhang and Qing Liao},
journal= {arXiv preprint arXiv:2405.11233},
year = {2024}
}
备注
Accepted by ISSTA 2024