中文

UniGenCoder:融合Seq2Seq与Seq2Tree范式的统一代码生成

计算与语言 2025-02-27 v3

摘要

深度学习驱动的代码生成已彻底变革了当今程序开发的方式。现有代码生成方法要么关注序列到序列(Seq2Seq)范式,即以标记序列生成目标代码,要么关注序列到树(Seq2Tree)范式,即以动作序列输出代码。虽然这两种范式在直观上互为补充,但二者的融合此前从未被探索。通过比较这两种范式下的生成代码,我们发现将其集成具有显著潜在价值。本文提出了用于代码相关生成任务的 UniGenCoder,包括共享编码器、具备最小额外参数的统一解码器(用于统一两种范式),以及用于为每个实例动态选择最佳范式的选择器。此外,在模型训练期间,我们首先采用多任务学习和蒸馏策略促进两种范式之间的知识迁移,然后利用对比学习训练选择器。在文本到代码和代码到代码生成任务上的实验结果表明,我们提出的方法有效。我们将代码公开于 https://github.com/DeepLearnXMU/UniGenCoder。

关键词

引用

@article{arxiv.2502.12490,
  title  = {UniGenCoder: Merging Seq2Seq and Seq2Tree Paradigms for Unified Code Generation},
  author = {Liangying Shao and Yanfu Yan and Denys Poshyvanyk and Jinsong Su},
  journal= {arXiv preprint arXiv:2502.12490},
  year   = {2025}
}

备注

accepted to 47th International Conference on Software Engineering (ICSE 2025), NIER track