用上下文数据丰富源代码,以提高代码补全模型的准确性:一项实证研究

523次阅读
没有评论

Enriching Source Code with Contextual Data for Code Completion Models:
An Empirical Study

解决问题:本篇论文旨在探究通过使用上下文数据来使代码更易于理解是否可以提高预训练代码语言模型在代码自动补全任务中的性能。这是否是一个新问题?该问题在一定程度上是新问题,因为过去的研究主要关注提高模型对代码的理解能力,而没有深入研究如何通过上下文数据来提高代码自动补全的性能。

关键思路:本文的关键思路是探究使用上下文数据是否可以提高预训练代码语言模型在代码自动补全任务中的性能。相比当前这个领域的研究状况,该论文的思路在于从提高代码的可理解性的角度出发,探究如何提高代码自动补全的性能。

其他亮点:本文的实验考虑了两种不同的代码自动补全的粒度:标记和行自动补全,并使用了三个大规模预训练的代码语言模型:UniXcoder,CodeGPT和InCoder。实验使用了五个评估指标,并使用了Wilcoxon Signed Rank检验来衡量显著性和效应大小。研究发现,所有模型在去除类型注释后表现更好(尽管效应大小很小)。对于注释,我们发现多行注释的存在可以使模型表现更好(同样效应大小很小)。基于这些观察结果,我们建议在训练、微调或选择这些模型时,要根据预期数据和应用程序做出适当的设计选择。未来可以进一步研究更好的评估和多模态技术,以提高自动补全的实用性和准确性。

关于作者:本文的主要作者是Tim van Dam、Maliheh Izadi和Arie van Deursen。他们分别来自荷兰代尔夫特理工大学(Delft University of Technology)的软件技术系。Tim van Dam是软件工程领域的专家,他的研究兴趣包括代码理解和软件质量保证。Maliheh Izadi的研究兴趣包括软件工程、人工智能机器学习。Arie van Deursen是软件工程领域的知名学者,他的研究兴趣包括软件开发工具和技术、程序语言和软件架构

相关研究:最近的相关研究包括:1)”CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing”,作者为Kaitao Song等,所在机构为微软亚洲研究院;2)”CodeGPT: Generative Pre-training of Distributed Code Representations”,作者为Shuai Lu等,所在机构为香港科技大学;3)”JASS: Jointly Attentive Syntax and Semantics Modeling for Source Code”,作者为Xiaodong Gu等,所在机构为微软亚洲研究院。

论文摘要:本文题目为“使用上下文数据丰富源代码以提高代码完成模型的性能:一项实证研究”,作者为Tim van Dam、Maliheh Izadi和Arie van Deursen。最近,基于Transformer的预训练模型在解决许多软件工程任务方面取得了巨大的成果,包括自动代码完成,这是开发人员工具包中的一个基本功能。虽然许多人努力提高这种模型的代码理解能力,但相反的——使代码更易于理解——尚未得到适当的研究。在本研究中,我们旨在回答一个问题,即通过使用上下文数据使代码更易于理解是否提高了预训练代码语言模型在代码完成任务中的性能。我们认为类型注释和注释是两种常见的附加上下文信息形式,它们通常有助于开发人员更好地理解代码。对于实验,我们研究了两个粒度级别的代码完成任务:标记和行完成,并使用了三个最近的大规模源代码语言模型:UniXcoder、CodeGPT和InCoder,以及五个评估指标。最后,我们执行了Wilcoxon Signed Rank检验来衡量显着性并测量效应大小。与我们的预期相反,如果删除类型注释,则所有模型的性能都会提高(尽管效应大小很小)。对于注释,我们发现在存在多行注释的情况下,模型表现更好(同样是小效应大小)。根据我们的观察,我们建议在训练、微调或仅选择此类模型时进行适当的设计选择,考虑所需的数据和应用程序。更好的评估和多模态技术也可以进一步研究,以提高自动完成的实用性和准确性。

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy