使用 eWASH 对源代码文件进行长程建模:基于语法层级的扩展窗口访问
机器学习
2021-09-21 v1 软件工程
摘要
基于 transformer 的统计语言建模与翻译在程序理解与生成任务中发现了诸多成功应用,为现代软件开发环境中的工具设定了高基准。然而,这些神经模型的有限上下文窗口意味着它们无法利用任何给定任务下大文件与包的全部相关上下文。尽管已有许多扩展上下文窗口的努力,我们引入一种与架构无关的方法,利用源代码的语法层级将整个文件级上下文纳入固定长度窗口。使用每个源文件的具象语法树,我们提取语法层级,并通过针对给定任务从视图中选择性移除更具体、较不相关的范围,将其集成进上下文窗口。我们在代码生成任务及 Python 编程语言中自然语言与源代码联合翻译上评估该方法,在 CodeXGLUE 基准中取得 Python 代码补全与摘要的新 SOTA。我们还引入了以用户体验为动机的新 CodeXGLUE 基准:带归一化字面量的代码补全、以文件级上下文为条件的函数体补全/代码摘要。
引用
@article{arxiv.2109.08780,
title = {Long-Range Modeling of Source Code Files with eWASH: Extended Window Access by Syntax Hierarchy},
author = {Colin B. Clement and Shuai Lu and Xiaoyu Liu and Michele Tufano and Dawn Drain and Nan Duan and Neel Sundaresan and Alexey Svyatkovskiy},
journal= {arXiv preprint arXiv:2109.08780},
year = {2021}
}
备注
EMNLP 2021 camera ready