作者:Jingxuan He, Martin Vechev
推荐理由:本文聚焦在大模型的安全领域、进行“受控代码生成”的研究,提出的新方法:在不同的漏洞、编程场景和模型大小之间实现了强大的控制能力。
简介:大型语言模型 (LM) 越来越多地在大量开源程序语料库上进行预训练,并应用于解决程序合成任务。然而,LM 的一个基本限制是它们在预训练和推理期间没有意识到安全性和漏洞。因此,LM 会生成具有高度不确定性的安全或易受攻击的程序(例如,根据最近的一项研究,GitHub Copilot 的可能性约为 60%/40%)。这极大地削弱了 LM 的可用性,尤其是在对安全敏感的场景中。
为了解决这个限制,这项工作制定了一个称为受控代码生成的新问题,它允许用户将布尔属性输入 LM 以控制 LM 是否生成安全或易受攻击的代码。作者提出了 svGen:一种用于解决受控代码生成的有效且轻量级的学习方法。svGen 利用特定属性的连续向量来引导程序生成方向给定的属性,而不改变 LM 的权重。svGen 的训练通过在不同代码区域仔细应用专门的损失项来优化这些连续向量。
广泛的评估表明:svGen 实现了对各种软件漏洞和不同参数大小的 LM 的强大控制能力。例如,在 9 个危险漏洞上,具有 2.7B 参数的最先进的 CodeGen LM 生成安全程序的几率为 57%。当使用 svGen 来控制 LM 生成安全程序时,机会显着增加到 82% 。

 

 


论文下载:https://arxiv.org/pdf/2302.05319.pdf

内容中包含的图片若涉及版权问题,请及时与我们联系删除