中文

CERT:基于草图持续预训练面向库调用的代码生成

软件工程 2022-06-15 v1 计算与语言 编程语言

摘要

代码生成是一项长期存在的挑战,旨在基于自然语言描述生成代码片段。通常,昂贵的文本-代码配对数据对于训练代码生成模型至关重要。近来,得益于预训练技术的成功,大语言模型在大规模无标注代码语料上训练,并在代码生成中表现良好。本文研究如何利用无标注代码语料训练面向库调用的代码生成模型。由于程序员复用第三方库是常见做法,而库数量庞大导致文本-代码配对数据更难获取。我们观察到面向库调用的代码片段更可能共享相似的代码草图。因此,我们提出CERT,包含两步:草图器生成草图,随后生成器填充草图细节。草图器与生成器均基于基础模型使用无标注数据持续预训练。此外,我们构建了名为PandasEval和NumpyEval的两个基准来评估面向库调用的代码生成。实验结果展示了CERT的优异性能。例如,在PandasEval上其pass@1指标绝对超越基础模型15.67%。我们的工作发布于 https://github.com/microsoft/PyCodeGPT。

关键词

引用

@article{arxiv.2206.06888,
  title  = {CERT: Continual Pre-Training on Sketches for Library-Oriented Code Generation},
  author = {Daoguang Zan and Bei Chen and Dejian Yang and Zeqi Lin and Minsu Kim and Bei Guan and Yongji Wang and Weizhu Chen and Jian-Guang Lou},
  journal= {arXiv preprint arXiv:2206.06888},
  year   = {2022}
}

备注

Accepted for publication at IJCAI-ECAI 2022