Deep learning (DL) techniques have been used to support several code-related tasks such as code summarization and bug-fixing. In particular, pre-trained transformer models are on the rise, also thanks to the excellent results they achieved in Natural Language Processing (NLP) tasks. The basic idea behind these models is to first pre-train them on a generic dataset using a self-supervised task (e.g, filling masked words in sentences). Then, these models are fine-tuned to support specific tasks of interest (e.g, language translation). A single model can be fine-tuned to support multiple tasks, possibly exploiting the benefits of transfer learning. This means that knowledge acquired to solve a specific task (e.g, language translation) can be useful to boost performance on another task (e.g, sentiment classification). While the benefits of transfer learning have been widely studied in NLP, limited empirical evidence is available when it comes to code-related tasks. In this paper, we assess the performance of the Text-To-Text Transfer Transformer (T5) model in supporting four different code-related tasks: (i) automatic bug-fixing, (ii) injection of code mutants, (iii) generation of assert statements, and (iv) code summarization. We pay particular attention in studying the role played by pre-training and multi-task fine-tuning on the model's performance. We show that (i) the T5 can achieve better performance as compared to state-of-the-art baselines; and (ii) while pre-training helps the model, not all tasks benefit from a multi-task fine-tuning.
翻译:深度学习( DL) 技术已被用于支持数项与代码有关的任务, 如代码总和和和错误修正等。 特别是, 预先训练的变压器模型正在上升, 这也是由于它们在自然语言处理( NLP) 任务中取得了极佳的成果。 这些模型的基本想法是首先在通用数据集上进行预演, 使用自监督的任务( 例如, 填充句子中隐含的单词) 。 然后, 这些模型经过微调, 以支持一些感兴趣的具体任务( 如语言翻译)。 一个单一模型可以进行微调, 以支持多项任务, 可能利用转移学习的好处。 这意味着, 用于解决具体任务( 例如, 语言翻译) 获得的知识( 例如, 感知分类) 可以提高另一项任务的业绩。 虽然在 NLP 中已经广泛研究了传输学习的好处, 但当涉及到与模式有关的任务时, 经验证据是有限的。 在本文中, 我们评估了“ 文本- 国家转换器( T5) 模型的绩效, 用于支持四种不同的代码相关任务, 比较 T. (i) 和 自动变换码任务( ) 学习中, 进行 自动变码( 学习) 进行 学习中 进行 自动变码( ) 进行 进行 进行 进行 自动 自动 学习 学习 学习 学习 进行 进行 进行 进行 进行 高级 学习 进行 进行 进行 进行 进行 进行 进行 高级 的 的 学习 学习 学习 进行 进行 进行 进行 进行 进行 进行 进行 进行 算 进行 进行 进行 进行 进行 进行 进行 进行 进行 算 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行 进行