中文

从非真实数据学习缺陷预测

机器学习 2024-01-23 v2

摘要

代码的预训练模型,如 CodeBERT 和 CodeT5,已成为代码理解与生成任务的流行选择。此类模型往往规模庞大,需要相应大量的训练数据,而下游任务很少具备这样的数据量。相反,使用远更大但不那么真实的数据集(例如人工注入缺陷的函数)来训练模型已变得流行。然而,在此类数据上训练的模型往往仅在类似数据上表现良好,而在真实世界程序上表现不佳。在本文中,我们推测这种差异源于干扰样本的存在,这些样本将模型带离真实世界任务分布。为验证该推测,我们提出一种方法,基于学习到的表示来识别这些庞大却不真实的数据集中与真实世界数据集样本最相似的子集。我们的方法使用神经模型提取真实世界与人工程序的高维嵌入,并根据人工样本到最近真实世界样本的距离对其进行打分。我们表明,仅在与表示最相似的最近样本上训练、丢弃表示上完全不相似的样本,可在两个代码理解任务上使两个流行的代码预训练模型获得一致的提升。我们的结果令人鼓舞,因为它们表明在不真实数据集的代表性子集上训练模型,可帮助我们利用大规模合成数据生成的能力,同时保持下游任务性能。最后,我们强调了将 AI 模型应用于预测真实世界应用中的漏洞与缺陷的局限性。

关键词

引用

@article{arxiv.2311.00931,
  title  = {Learning Defect Prediction from Unrealistic Data},
  author = {Kamel Alrashedy and Vincent J. Hellendoorn and Alessandro Orso},
  journal= {arXiv preprint arXiv:2311.00931},
  year   = {2024}
}