[论文解读] CoditT5: Pretraining for Source Code and Natural Language Editing
CoditT5 提出了一种新颖的编辑驱动预训练目标,使大型语言模型能够显式地推理代码和自然语言编辑,从而在软件编辑任务中表现更优。通过在生成输出前先生成编辑操作,CoditT5 在评论更新、错误修复和自动化代码审查任务上优于标准生成模型,且通过与标准模型结合进行重排序可进一步提升性能。
Pretrained language models have been shown to be effective in many software-related generation tasks; however, they are not well-suited for editing tasks as they are not designed to reason about edits. To address this, we propose a novel pretraining objective which explicitly models edits and use it to build CoditT5, a large language model for software-related editing tasks that is pretrained on large amounts of source code and natural language comments. We fine-tune it on various downstream editing tasks, including comment updating, bug fixing, and automated code review. By outperforming standard generation-based models, we demonstrate the generalizability of our approach and its suitability for editing tasks. We also show how a standard generation model and our edit-based model can complement one another through simple reranking strategies, with which we achieve state-of-the-art performance for the three downstream editing tasks.
研究动机与目标
- 解决标准预训练语言模型在软件任务中推理局部编辑方面的局限性。
- 开发一种显式建模编辑操作(插入、删除、替换)的预训练目标,以提升编辑感知生成能力。
- 构建一个大规模模型 CoditT5,基于 590 万条代码片段和 160 万条评论进行预训练,以支持多样化的编辑任务。
- 证明基于编辑的方法在多种软件编辑任务(如评论更新、错误修复和自动化代码审查)中的泛化能力。
- 通过重排序策略将 CoditT5 与标准生成模型结合,探索模型间的互补性,以实现最先进性能。
提出的方法
- 设计两阶段解码流程:首先生成指定操作(插入、删除、替换)的编辑计划,然后利用对编辑计划的注意力机制生成编辑后的输出。
- 使用一种新颖的编辑感知目标,在 590 万条开源代码片段和 160 万条来自 CodeSearchNet 的自然语言评论上对 CoditT5 进行预训练。
- 采用基于 T5 的序列到序列 Transformer 架构,并使用特殊标记格式在预训练期间表示编辑操作。
- 训练模型预测输入序列中的编辑操作及其位置,从而在生成过程中实现局部化推理。
- 在三个下游编辑任务(评论更新、错误修复、自动化代码审查)上微调 CoditT5。
- 通过重排序策略将 CoditT5 与标准生成模型(如 CodeT5)结合,以利用其互补优势。
实验结果
研究问题
- RQ1与标准生成模型相比,一种显式建模编辑操作的预训练目标是否能提升软件编辑任务的性能?
- RQ2CoditT5 在评论更新、错误修复和自动化代码审查等多样化编辑任务上的泛化能力如何?
- RQ3像 CoditT5 这类基于编辑的模型在多大程度上能与标准生成模型互补以提升整体性能?
- RQ4在解码过程中引入编辑规划是否相比仅使用自回归生成能带来更准确、更局部化的编辑结果?
- RQ5简单的重排序策略是否能有效结合基于编辑和基于生成的模型输出,以实现最先进结果?
主要发现
- CoditT5 在所有三项下游编辑任务(评论更新、错误修复、自动化代码审查)上均优于标准生成模型(如 CodeT5、PLBART)。
- 在自动化代码审查任务中,CoditT5 达到了新的最先进性能,优于现有模型,包括微调后的 BART 和 T5 变体。
- 与标准模型相比,该模型将无关或仅复制的生成内容减少了高达 34.25%,表明其具有更强的编辑感知能力。
- 通过重排序 CoditT5 与标准生成模型(如 CodeT5)的输出,可进一步提升性能,在所有三项任务上均达到新的最先进结果。
- 基于编辑的方法展现出强大的泛化能力,在涉及代码和评论的多样化编辑场景中均表现出一致的性能提升。
- 通过重排序将 CoditT5 与标准生成器结合,其性能优于两者单独使用,证实了二者具有互补性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。