3 个月前

GAP-Gen:基于引导的自动Python代码生成

GAP-Gen:基于引导的自动Python代码生成

摘要

从自然语言描述自动生成代码在软件开发过程中具有重要应用价值。本文提出一种基于Python语法约束与语义约束的引导式自动Python代码生成方法——GAP-Gen。我们首先引入一种名为Syntax-Flow的Python语法约束表示形式,它是抽象语法树(Abstract Syntax Tree, AST)的简化版本,有效降低了AST的规模与复杂度,同时保留了Python代码的关键语法信息。此外,我们还提出了Variable-Flow,用于在代码中一致地抽象变量名与函数名,从而增强生成代码的语义连贯性。与以往依赖大规模预训练的方法不同,本工作聚焦于优化微调(fine-tuning)过程,显著降低计算资源需求,同时在自动Python代码生成任务中仍保持优异的生成性能。GAP-Gen采用基于Transformer的语言模型T5与CodeT5,利用EdinburghNLP提供的Code-to-Docstring数据集——CodeSearchNet、CodeSearchNet AdvTest以及Code-Docstring Corpus进行微调。实验结果表明,GAP-Gen在自动Python代码生成任务上的表现优于现有方法。

代码仓库

基准测试

基准方法指标
code-generation-on-codexglue-codesearchnetGAP-Gen
Java/BLEU: -
Java/EM: -
Python/BLEU: 22.3
Python/CodeBLEU: 24.1
Python/EM: -

用 AI 构建 AI

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

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

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
GAP-Gen:基于引导的自动Python代码生成 | 论文 | HyperAI超神经