中文

CLAWSAT:迈向兼具鲁棒性与准确性的代码模型

机器学习 2023-03-07 v5 编程语言 软件工程

摘要

我们将对比学习(CL)与对抗学习相集成,以协同优化代码模型的鲁棒性与准确性。与现有工作不同,我们表明代码混淆——一种标准代码变换操作——为生成代码的互补“视图”提供了新手段,使我们能够获得既鲁棒又准确的代码模型。据我们所知,这是首个系统性研究并利用(多视图)代码混淆在代码模型中带来的鲁棒性与准确性收益的工作。具体而言,我们首先在自监督预训练阶段采用对抗代码作为CL中促进鲁棒性的视图,从而为下游任务带来改进的鲁棒性与可迁移性。接下来,在有监督微调阶段,我们表明采用适当时间错峰的对抗代码生成调度进行对抗训练,可进一步提升预训练代码模型的鲁棒性与准确性。基于上述两个模块,我们开发了CLAWSAT,一种通过将对CL\underline{\textrm{CL}}a\underline{\textrm{a}}dversarial view\underline{\textrm{w}}s(CLAW)同s\underline{\textrm{s}}taggered a\underline{\textrm{a}}dversarial t\underline{\textrm{t}}raining(SAT)相集成来实现代码自监督学习(SSL)的新框架。在跨越Python与Java的三个下游任务上的评估表明,CLAWSAT持续取得最佳的鲁棒性与准确性(例如在Python代码摘要任务上鲁棒性提升11%、准确性提升6%)。我们还通过分析损失景观特征与预训练模型可解释性,进一步展示了CLAW中对抗学习的有效性。

关键词

引用

@article{arxiv.2211.11711,
  title  = {CLAWSAT: Towards Both Robust and Accurate Code Models},
  author = {Jinghan Jia and Shashank Srikant and Tamara Mitrovska and Chuang Gan and Shiyu Chang and Sijia Liu and Una-May O'Reilly},
  journal= {arXiv preprint arXiv:2211.11711},
  year   = {2023}
}

备注

Accepted by SANER2023 Research Track