中文

探索代码生成中分支扩展顺序的动态选择

计算与语言 2021-06-02 v1

摘要

由于其在促进软件开发方面的巨大潜力,代码生成近来受到越来越多的关注。主流模型通常为Seq2Tree模型,其将输入的自然语言描述转换为对应于抽象语法树(AST)前序遍历的树构建动作序列。然而,这种遍历顺序可能并不适合处理所有多分支节点。本文中,我们提出为Seq2Tree模型配备一个基于上下文的分支选择器,能够动态确定多分支节点的最优分支扩展顺序。特别地,由于扩展顺序的选择是一个不可微的多步操作,我们通过强化学习优化该选择器,并将奖励函数定义为通过不同扩展顺序所获得的模型损失之差。在多个常用数据集上的实验结果和深入分析证明了我们方法的有效性和通用性。我们已在 https://github.com/DeepLearnXMU/CG-RL 发布了代码。

关键词

引用

@article{arxiv.2106.00261,
  title  = {Exploring Dynamic Selection of Branch Expansion Orders for Code Generation},
  author = {Hui Jiang and Chulun Zhou and Fandong Meng and Biao Zhang and Jie Zhou and Degen Huang and Qingqiang Wu and Jinsong Su},
  journal= {arXiv preprint arXiv:2106.00261},
  year   = {2021}
}

备注

Accepted by ACL 2021 main conference