3 个月前

利用预训练语言模型进行代码生成

利用预训练语言模型进行代码生成

摘要

代码辅助是指在软件开发过程中,利用各类工具、技术与模型来协助开发人员提升工作效率。随着编码任务日益复杂,代码辅助在提升开发者生产力、减少错误以及优化编码流程方面发挥着关键作用。其表现形式多样,涵盖代码自动补全、错误检测与修复、代码生成、文档支持以及上下文感知的智能建议等。近年来,语言模型已成为代码辅助系统的核心组成部分,使开发者能够获得智能化的代码建议、自动生成代码片段,并全面提升编程能力。本文提出了一种新型混合模型,用于代码生成,该模型结合了预训练语言模型BERT、RoBERTa、ELECTRA与LUKE,以及Marian因果语言模型(Marian Causal Language Model)。所选模型均基于其在多种自然语言处理任务中表现出的优异性能。我们在两个公开数据集CoNaLa与DJANGO上对所提模型进行了评估,并与现有最先进模型进行对比。研究旨在探索预训练Transformer语言模型在代码生成领域的潜力,以期在复杂编码场景下实现更高的精度与效率。此外,本文还进行了误差分析,并对生成的代码进行了优化与改进。实验结果表明,当上述模型与Marian解码器结合使用时,显著提升了代码生成的准确率与效率。具体而言,在CoNaLa数据集上,RoBERTa-Marian模型取得了最高BLEU得分为35.74,精确匹配准确率为13.8%;而在DJANGO数据集上,LUKE-Marian模型达到了89.34的BLEU得分与78.50%的精确匹配准确率。本研究的实现代码已开源,可通过以下链接获取:https://github.com/AhmedSSoliman/Leveraging-Pretrained-Language-Models-for-Code-Generation。

基准测试

基准方法指标
code-generation-on-conalaELECTRAMarian
BLEU: 30.18
Exact Match Accuracy: 10.0
code-generation-on-conalaRoBERTaMarian
BLEU: 35.74
Exact Match Accuracy: 13.8
code-generation-on-conalaBERTMarian
BLEU: 32.46
Exact Match Accuracy: 12.40
code-generation-on-conalaLUKEMarian
BLEU: 29.83
Exact Match Accuracy: 7.6
code-generation-on-djangoLUKEMarian
Accuracy: 78.50
BLEU Score: 89.34
code-generation-on-djangoRoBERTaMarian
Accuracy: 77.95
BLEU Score: 88.91
code-generation-on-djangoBERTMarian
Accuracy: 76.68
BLEU Score: 56.55
code-generation-on-djangoELECTRAMarian
Accuracy: 65.32
BLEU Score: 53.02

用 AI 构建 AI

从想法到上线——通过免费 AI 协同编程、开箱即用的环境和市场最优价格的 GPU 加速您的 AI 开发

AI 协同编程
即用型 GPU
最优价格
立即开始

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
利用预训练语言模型进行代码生成 | 论文 | HyperAI超神经