中文

Coding-PTMs:如何为漏洞检测中的代码嵌入寻找最优代码预训练模型?

软件工程 2024-08-12 v1

摘要

漏洞检测在软件工程中日益受到关注,因为代码漏洞可能构成重大安全威胁。最近,复用各种代码预训练模型(PTMs)进行代码嵌入已成为常见做法,但并未为漏洞检测提供合理的理由。随意使用预训练模型(PTMs)的前提是不同PTMs生成的代码嵌入会对性能产生相似的影响。这是真的吗?为了回答这一重要问题,我们系统地研究了十种不同代码PTMs生成的代码嵌入对漏洞检测性能的影响,并得到答案——即并非如此。我们观察到,不同代码PTMs生成的代码嵌入确实会影响性能,而基于参数规模和嵌入维度选择嵌入技术并不可靠。我们的发现强调了量化并评估不同代码PTMs生成的代码嵌入特性的必要性,以理解其影响。为实现这一目标,我们分析了不同PTMs生成的代码嵌入的数值表示和数据分布,以评估差异和特性。基于这些见解,我们提出Coding-PTMs,一个辅助工程师为其特定漏洞检测任务选择最优代码PTMs的推荐框架。具体而言,我们在三个维度(即统计量、范数和分布)上定义了十三种代码嵌入指标,用于构建专门的代码PTM推荐数据集。然后我们采用随机森林分类器训练推荐模型,并从候选模型库中识别最优代码PTMs。

关键词

引用

@article{arxiv.2408.04863,
  title  = {Coding-PTMs: How to Find Optimal Code Pre-trained Models for Code Embedding in Vulnerability Detection?},
  author = {Yu Zhao and Lina Gong and Zhiqiu Huang and Yongwei Wang and Mingqiang Wei and Fei Wu},
  journal= {arXiv preprint arXiv:2408.04863},
  year   = {2024}
}

备注

Accepted by ASE 2024