Deep learning (DL) techniques are gaining more and more attention in the software engineering community. They have been used to support several code-related tasks, such as automatic bug fixing and code comments generation. Recent studies in the Natural Language Processing (NLP) field have shown that the Text-To-Text Transfer Transformer (T5) architecture can achieve state-of-the-art performance for a variety of NLP tasks. The basic idea behind T5 is to first pre-train a model on a large and generic dataset using a self-supervised task ( e.g: filling masked words in sentences). Once the model is pre-trained, it is fine-tuned on smaller and specialized datasets, each one related to a specific task ( e.g: language translation, sentence classification). In this paper, we empirically investigate how the T5 model performs when pre-trained and fine-tuned to support code-related tasks. We pre-train a T5 model on a dataset composed of natural language English text and source code. Then, we fine-tune such a model by reusing datasets used in four previous works that used DL techniques to: (i) fix bugs, (ii) inject code mutants, (iii) generate assert statements, and (iv) generate code comments. We compared the performance of this single model with the results reported in the four original papers proposing DL-based solutions for those four tasks. We show that our T5 model, exploiting additional data for the self-supervised pre-training phase, can achieve performance improvements over the four baselines.


翻译:深入学习( DL) 技术在软件工程界越来越受到重视。 它们已被用于支持若干与代码有关的任务, 如自动错误修正和代码评论生成等。 最近对自然语言处理( NLP) 字段的研究表明, Text- Text 传输变换器( T5) 架构可以实现各种 NLP 任务的最先进的性能。 T5 的基本想法是, 使用自监督的任务( 例如: 在句子中填充掩码词), 用于支持一个大型和通用数据集的模型。 一旦该模型经过预先培训, 它就会对小型和专门数据集进行微调, 每一项都与具体任务( 例如: 语言翻译、 句子分类) 有关。 在本文中, 我们实验地调查T5 模型在预先培训和微调支持代码相关任务时是如何运行的。 我们先在包含自然语言文本和源代码改进的数据集上设计一个模型D5 。 然后, 我们细化了这样一个模型, 重新使用这个模型, 用于在四个版本的代码中, 比较了已经使用过的代码 的 4 。

0
下载
关闭预览

相关内容

【文本生成现代方法】Modern Methods for Text Generation
专知会员服务
43+阅读 · 2020年9月11日
零样本文本分类,Zero-Shot Learning for Text Classification
专知会员服务
95+阅读 · 2020年5月31日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
58+阅读 · 2019年10月17日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
151+阅读 · 2019年10月12日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
39+阅读 · 2019年10月9日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
【论文笔记】通俗理解少样本文本分类 (Few-Shot Text Classification) (1)
深度学习自然语言处理
7+阅读 · 2020年4月8日
BERT/Transformer/迁移学习NLP资源大列表
专知
19+阅读 · 2019年6月9日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
已删除
将门创投
5+阅读 · 2017年10月20日
深度学习NLP相关资源大列表
机器学习研究会
3+阅读 · 2017年9月17日
自然语言处理 (NLP)资源大全
机械鸡
35+阅读 · 2017年9月17日
Arxiv
13+阅读 · 2020年4月12日
Arxiv
3+阅读 · 2019年11月28日
Arxiv
5+阅读 · 2019年8月22日
Arxiv
3+阅读 · 2019年8月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
5+阅读 · 2018年1月18日
VIP会员
相关VIP内容
【文本生成现代方法】Modern Methods for Text Generation
专知会员服务
43+阅读 · 2020年9月11日
零样本文本分类,Zero-Shot Learning for Text Classification
专知会员服务
95+阅读 · 2020年5月31日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
58+阅读 · 2019年10月17日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
151+阅读 · 2019年10月12日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
39+阅读 · 2019年10月9日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
相关资讯
【论文笔记】通俗理解少样本文本分类 (Few-Shot Text Classification) (1)
深度学习自然语言处理
7+阅读 · 2020年4月8日
BERT/Transformer/迁移学习NLP资源大列表
专知
19+阅读 · 2019年6月9日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
已删除
将门创投
5+阅读 · 2017年10月20日
深度学习NLP相关资源大列表
机器学习研究会
3+阅读 · 2017年9月17日
自然语言处理 (NLP)资源大全
机械鸡
35+阅读 · 2017年9月17日
Top
微信扫码咨询专知VIP会员