CLAWSAT:迈向兼具鲁棒性与准确性的代码模型
机器学习
2023-03-07 v5 编程语言
软件工程
摘要
我们将对比学习(CL)与对抗学习相集成,以协同优化代码模型的鲁棒性与准确性。与现有工作不同,我们表明代码混淆——一种标准代码变换操作——为生成代码的互补“视图”提供了新手段,使我们能够获得既鲁棒又准确的代码模型。据我们所知,这是首个系统性研究并利用(多视图)代码混淆在代码模型中带来的鲁棒性与准确性收益的工作。具体而言,我们首先在自监督预训练阶段采用对抗代码作为CL中促进鲁棒性的视图,从而为下游任务带来改进的鲁棒性与可迁移性。接下来,在有监督微调阶段,我们表明采用适当时间错峰的对抗代码生成调度进行对抗训练,可进一步提升预训练代码模型的鲁棒性与准确性。基于上述两个模块,我们开发了CLAWSAT,一种通过将对与dversarial vies(CLAW)同taggered dversarial 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