中文

ContraBERT:通过对比学习增强代码预训练模型

软件工程 2023-01-24 v1

摘要

CodeBERT、GraphCodeBERT 等大规模预训练模型已获得学术界与工业界的广泛关注。得益于优越的代码表示能力,它们被进一步应用于克隆检测、代码搜索和代码翻译等多个下游任务。然而,也观察到这些最先进的预训练模型易受对抗攻击。仅通过重命名变量名等简单扰动,这些预训练模型的性能便显著下降。该弱点可能被其下游模型继承,从而以前所未有的规模被放大。为此,我们提出一种名为 ContraBERT 的方法,旨在通过对比学习提升预训练模型的鲁棒性。具体而言,我们在编程语言(PL)和自然语言(NL)数据上设计九种简单与复杂的数据增广算子以构造不同变体。此外,我们通过掩码语言建模(MLM)和在原样本与其增广变体上的对比预训练任务,继续训练现有预训练模型,以增强模型的鲁棒性。大量实验表明 ContraBERT 能有效提升现有预训练模型的鲁棒性。进一步研究也证实,相较于原始模型,这些鲁棒性增强的模型在四个流行下游任务上均有所提升。

关键词

引用

@article{arxiv.2301.09072,
  title  = {ContraBERT: Enhancing Code Pre-trained Models via Contrastive Learning},
  author = {Shangqing Liu and Bozhi Wu and Xiaofei Xie and Guozhu Meng and Yang Liu},
  journal= {arXiv preprint arXiv:2301.09072},
  year   = {2023}
}