论文
使用任务向量生成功能性和安全的代码
Functional and Secure Code Generation with Task Vectors
摘要
大语言模型 (LLM) 越来越多地用于代码生成,但它们很难生成没有安全漏洞的功能代码。之前提高此类编码 LLM 的安全代码生成能力的工作主要集中于使用不同的数据集分别评估代码功能和安全性,或集中于查找生成后的漏洞。与此同时,文本生成领域在对齐技术方面取得了重大进展,其中模型经过调整,使其输出表现出某些品质(例如,有用、无害)。特别令人感兴趣的是任务向量算术,其中 LLM 权重上的线性运算可用于任意增强对齐,同时仅产生最小的计算开销。我们开发了一种新颖的方法 SecVecCoder,利用任务向量生成可信赖的代码,该代码同时具有功能性和安全性,无需进行生成后调整。在 CodeGuard+ 基准测试中来自三个系列的六个编码 LLM 中,SecVecCoder 将可信代码完成率比基本模型提高了 2.1-36.0 个百分点,对未见过的 CWE 类型的改进高达 39.1 个百分点。由于编码 LLM 的有效性仅依赖于更改模型权重,因此 SecVecCoder 不需要特定于方法的解码,因此平均解码延迟在基本模型的 0.6% 以内。