
摘要
本文研究了针对源代码漏洞检测任务对大型语言模型(LLMs)进行微调的成果。我们采用近期性能领先的代码语言模型WizardCoder——该模型是当前顶尖模型StarCoder的改进版本——并通过进一步微调,将其适配于漏洞检测任务。为加速训练过程,我们对WizardCoder的训练流程进行了优化,并系统探究了最优的训练策略。针对正负样本严重失衡(负样本远多于正样本)的数据集,我们还探索了多种技术以提升分类性能。实验结果表明,经过微调的WizardCoder模型在平衡与非平衡漏洞数据集上的ROC AUC与F1分数均优于CodeBERT类模型,充分验证了将预训练大型语言模型适配于源代码漏洞检测任务的有效性。本文的主要贡献包括:对当前最先进的代码语言模型WizardCoder进行微调;在不损害模型性能的前提下显著提升训练速度;优化训练流程与训练策略;有效应对类别不平衡问题;并在具有挑战性的漏洞检测数据集上实现了性能提升。这些成果展示了通过微调大规模预训练语言模型实现迁移学习,在专业化源代码分析任务中的巨大潜力。
代码仓库
rmusab/vul-llm-finetune
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| vulnerability-detection-on-vulnerability-java | ContraBERT | AUC: 0.85 F1: 0.22 |
| vulnerability-detection-on-vulnerability-java | WizardCoder | AUC: 0.86 F1: 0.27 |