中文

面向函数级代码表示的软标签对比预训练

计算与语言 2022-10-27 v2 编程语言 软件工程

摘要

代码对比预训练近期在代码相关任务上取得了显著进展。本文提出 SCodeR,一种采用两种正样本构造方法的软标签对比预训练框架,用以学习函数级的代码表示(Code Representation)。考虑到大规模代码语料中代码间的相关性,软标签对比预训练可通过迭代对抗方式获得细粒度软标签,并用以学习更好的代码表示。正样本构造是对比预训练的另一关键。已有工作使用变量重命名等基于变换的方法生成语义相等的正代码,但这类方法通常导致生成代码具有高度相似的表层形式,从而误导模型关注浅层代码结构而非代码语义。为促使 SCodeR 从代码中捕获语义信息,我们利用代码注释与代码的抽象语法子树来构建正样本。我们在七个数据集上的四个代码相关任务中开展实验。大量实验结果表明,SCodeR 在所有任务上均达到新的 SOTA 性能,说明了所提预训练方法的有效性。

关键词

引用

@article{arxiv.2210.09597,
  title  = {Soft-Labeled Contrastive Pre-training for Function-level Code Representation},
  author = {Xiaonan Li and Daya Guo and Yeyun Gong and Yun Lin and Yelong Shen and Xipeng Qiu and Daxin Jiang and Weizhu Chen and Nan Duan},
  journal= {arXiv preprint arXiv:2210.09597},
  year   = {2022}
}

备注

Accepted to EMNLP 2022 (findings)