返回
Advancing code completion through rotary position embedding
DOI:10.1007/s10586-024-05015-z.png)
摘要
En 中文
随着IT技术的快速发展,软件信息产业在全球范围内迅速增长。作为集成开发环境的核心功能和基本组件,代码补全能够显著提高软件开发效率,并且一直是软件开发领域的研究热点。为了预测代码片段的下一个标记,现有的代码补全研究主要关注于建模代码片段本身及其抽象语法树(AST),但忽略了AST中叶节点的位置信息。因此,本文提出了一种基于旋转位置嵌入(RoPE)的代码补全模型,命名为CRPE,旨在通过RoPE编码叶节点的位置信息,从而有效提高预测下一个标记的准确性。CRPE模型首先利用LSTM模型从叶节点的根路径中提取信息,然后将这些信息与叶节点信息融合以获得代码表示。接下来,RoPE在注意力机制中通过旋转矩阵的形式将叶节点的位置信息注入到代码表示中。在Python和JavaScript两个主要公开数据集上的实验结果表明,与基线模型相比,CRPE模型在Top-k和MRR指标上均取得了最佳性能;此外,CRPE模型中的RoPE在性能上优于绝对位置嵌入和相对位置嵌入,提供了更好的结果。
Keyword:
Software development
Code completion
Position information
Rotary position embedding
期刊
C
IF:
0
论文数:
691
被引数:
1

