ESALE:提高代码摘要性能的新方法

ESALE: Enhancing Code-Summary Alignment Learning for Source Code Summarization

摘要

本文提出了一种名为 ESALE 的新方法,通过增强编码器对代码摘要对齐的学习来提高代码摘要性能。该方法基于大规模预训练的代码编码器,利用多任务学习范式,在三个摘要聚焦的任务上训练编码器,包括单向语言建模(ULM)、掩码语言建模(MLM)和动作词预测(AWP)。实验结果表明,ESALE 在所有三个广泛使用的自动指标 BLEU、METEOR 和 ROUGE-L 方面均显著优于基线,并且在人类评估中,ESALE 生成的摘要更具信息量且更接近真实摘要。

原理

ESALE 采用多任务学习范式,在三个摘要聚焦的任务上训练编码器,包括单向语言建模(ULM)、掩码语言建模(MLM)和动作词预测(AWP)。ULM 任务用于预测下一个摘要单词,MLM 任务用于预测掩码标记,AWP 任务用于预测动作词。通过同时学习这三个任务,ESALE 的编码器能够学习到代码和摘要之间的对齐关系,从而提高代码摘要的性能。

流程

ESALE 的工作流程包括两个阶段:训练共享编码器和训练代码摘要模型。在训练共享编码器阶段,ESALE 将代码片段和注释转换为输入序列和掩码输入序列,并利用多任务学习范式在三个摘要聚焦的任务上训练共享编码器。在训练代码摘要模型阶段,ESALE 使用预训练的共享编码器和训练的解码器来生成自然语言摘要。

应用

ESALE 可以应用于各种编程语言的代码摘要任务,包括 Java、Python、Go、JavaScript 和 Ruby 等。它可以帮助开发人员更快地理解代码的功能,提高代码的可读性和可维护性。此外,ESALE 还可以应用于代码搜索、代码推荐和代码审查等任务,提高软件开发的效率和质量。