[论文解读] Language Modelling for Source Code with Transformer-XL
本文评估了Transformer-XL在源代码语言建模中的表现,证明其在大规模Python语料库上捕捉软件自然性的能力优于基于RNN的模型(LSTM和GRU)。尽管参数量翻倍,8层的Transformer-XL训练时间不足RNN模型的一半,且性能显著更优,确立了其在代码建模任务中更优、更高效的特性。
It has been found that software, like natural language texts, exhibits "naturalness", which can be captured by statistical language models. In recent years, neural language models have been proposed to represent the naturalness of software through deep learning. In this paper, we conduct an experimental evaluation of state-of-the-art neural language models for source code, including RNN-based models and Transformer-XL based models. Through experiments on a large-scale Python code corpus, we find that the Transformer-XL model outperforms RNN-based models (including LSTM and GRU models) in capturing the naturalness of software, with far less computational cost.
研究动机与目标
- 评估最先进的神经语言模型在源代码中的应用,重点关注Transformer-XL与基于RNN的模型(LSTM、GRU)。
- 评估Transformer-XL在语言建模中捕捉软件自然性的有效性。
- 在大规模Python代码数据集上,比较不同模型的训练效率与性能表现。
- 探究更深的Transformer-XL架构是否能在可控计算成本下带来更优结果。
提出的方法
- 本研究采用大规模Python代码语料库进行语言模型的训练与评估。
- 实现并比较了四种模型:4层与8层的Transformer-XL,以及4层的LSTM与GRU模型。
- 模型通过交叉熵损失函数进行训练,目标是根据代码标记序列预测下一个标记。
- Transformer-XL中的自注意力机制支持并行计算,并能对序列间实现长距离依赖建模。
- Transformer-XL通过分段递归与记忆状态机制,在序列边界之间保持上下文信息,从而增强对长距离语义的理解。
- 所有模型在相同硬件条件下进行训练,以确保训练时间比较的公平性。
实验结果
研究问题
- RQ1Transformer-XL模型是否在源代码自然性建模方面优于基于RNN的模型(LSTM与GRU)?
- RQ2增加Transformer-XL模型的深度对性能与训练时间有何影响?
- RQ3与RNN模型相比,Transformer-XL在训练源代码语言模型时的相对计算效率如何?
- RQ4Transformer-XL的长距离依赖建模能力是否能提升代码表征质量,优于RNN?
主要发现
- 4层的Transformer-XL在降低困惑度方面优于4层的LSTM与GRU模型,表明其在捕捉软件自然性方面更优。
- 8层的Transformer-XL在性能上优于4层版本,但性能提升幅度小于RNN与Transformer-XL之间的差距。
- 尽管参数量与层数均为RNN模型的两倍,8层的Transformer-XL训练时间不足4层RNN模型的一半。
- 4层的Transformer-XL模型具有最短的归一化训练时间(1.0),显著优于LSTM(4.2)与GRU(3.58)。
- Transformer-XL在显著缩短训练时间的同时实现更优性能,表明其具备高效率与可扩展性。
- 结果表明,与基于RNN的模型相比,Transformer-XL在源代码语言建模中是更有效且高效的架构。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。