软件漏洞是软件系统中普遍存在的问题,构成了各种风险,例如敏感的Informentation [1]和系统故障[2]。为了应对这一挑战,搜索者提出了拟议的机器学习(ML)和深度学习(DL)方法,以识别源代码中的漏洞[3-6]。虽然以前基于ML/DL的脆弱性检测方法已显示出令人鼓舞的结果,但它们主要依赖于中等大小的预训练模型,例如Codebert [4,7]或训练较小的神经网络(例如图形神经网络[5])。大型预训练语言模型(LLM)的最新发展表现出了令人印象深刻的跨多种任务学习的少量学习[8-12]。但是,LLM在面向安全的任务(尤其是脆弱性检测)上的性能在很大程度上没有探索。此外,LLM逐渐开始用于软件工程(SE),如自动化程序维修中所示[8]。但是,这些研究主要集中于使用LLM进行基于生成的任务。尚不清楚LLM是否可以在分类任务中有效地使用,并且在脆弱性检测任务中指定了中等大小的预训练模型,例如Codebert等中型预训练的模型。在研究差距中填写,本文研究了LLMS在识别脆弱的代码时,即安全域内的关键分类任务。此外,LLMS的效果很大程度上依赖于该模型提供的提示质量(任务描述和其他相关信息)。因此,
对于软件工程师和开发人员来说,CODEX、神经代码理解、CodeBERT、CodeGPT、AdaNet 和 DeepCoder 等代码生成模型有助于根据自然语言输入生成代码片段和整个程序,从而节省程序员的时间和精力。它们还可以针对特定的编程语言和任务进行微调,以生成更准确、更高效的代码。除了代码生成之外,这些模型还可用于错误检测和调试以及自动完成,以提供建议和自动完成代码片段,从而帮助程序员更高效地编写代码并降低出错的可能性。这些模型可用于审查和评估代码,提供有关编码风格、性能和潜在错误的反馈,并为代码生成文档、注释和解释,从而帮助程序员理解和维护复杂的代码库。