返回
Why Personalizing Deep Learning-Based Code Completion Tools Matters
DOI:10.1145/3725732.png)
摘要
En 中文
基于深度学习(DL)的代码补全工具通过提供前所未有的代码生成能力,彻底改变了软件开发。这些工具背后的DL模型通常在数千个软件仓库的大量代码上进行训练。这使得它们能够很好地学习在许多训练实例中观察到的自然编码模式。然而,目前尚不清楚针对特定组织/开发者的代码库进行额外的训练努力(微调)能在多大程度上进一步提升其代码补全能力。本研究填补了这一空白,通过呈现确凿的实证证据来回答这个问题。更具体地说,我们考虑了来自两个组织(Apache和Spring)的136名开发者,两种模型架构(T5和Code Llama),以及三种模型规模(60M、750M和7B可训练参数)。对于T5模型(60M和750M),我们在超过2,000个开源项目上对其进行预训练和微调,确保来自两个研究组织的代码不包含在其训练集中。然后,我们将它们的补全能力与在组织及开发者特定数据集上进一步微调的相同模型进行比较。对于Code Llama模型(7B),我们比较了已在线公开的预训练模型与通过参数高效微调在组织及开发者特定数据集上微调的相同模型的性能。结果表明,针对特定组织和特定开发者的额外微调均能提升预测能力,其中组织特定的微调表现尤为出色。这一发现适用于(i)两个研究组织(即Apache和Spring)以及(ii)规模完全不同的模型(从60M到7B可训练参数)。最后,我们证明,在组织特定数据集上微调的DL模型能够达到与开箱即用的预训练代码模型相同的补全性能,而这些模型类似于10倍更大,从而在部署和推理成本方面带来显著节省(例如,需要更小的GPU)。
Keyword:
Software Engineering
Artificial Intelligence
Code Recommenders
Training Strategies
期刊
A
IF:
6.2
论文数:
1.2K
被引数:
3.4K
机构
引用论文
CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and GenerationCodeT5: 用于代码理解和生成的标识符感知的统一预训练编码器-解码器模型

