3 个月前

通过预训练融入外部知识以实现自然语言到代码的生成

通过预训练融入外部知识以实现自然语言到代码的生成

摘要

开放域代码生成旨在从自然语言(NL)意图中生成通用编程语言(如 Python)的代码。受开发者在编写代码时常从网络上检索资源这一直觉的启发,我们探索了将两类外部知识引入自然语言到代码生成任务的有效性:从在线编程问答平台 StackOverflow 自动挖掘的自然语言-代码配对数据,以及编程语言的 API 文档。实验结果表明,通过数据增强与基于检索的数据重采样策略,融合这两类外部知识可使当前最先进方法在代码生成基准测试集 CoNaLa 上的 BLEU 分数提升最高达 2.2 个百分点。相关代码与资源已开源,地址为 https://github.com/neulab/external-knowledge-codegen。

代码仓库

zorazrw/multilingual-conala
pytorch
GitHub 中提及
neulab/external-knowledge-codegen
官方
pytorch
GitHub 中提及

基准测试

基准方法指标
code-generation-on-conalaExternal Knowledge With API + Reranking
BLEU: 32.26
code-generation-on-conalaExternal Knowledge With API
BLEU: 30.69
code-generation-on-conala-extExternal Knowledge With API
BLEU: 20.37
code-generation-on-conala-extExternal Knowledge With API + Reranking
BLEU: 20.54

用 AI 构建 AI

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

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

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
通过预训练融入外部知识以实现自然语言到代码的生成 | 论文 | HyperAI超神经