论文
编码前思考:LLM 代码生成中 NLSafety-Utility 权衡的双重推理
Think Before You Code: Dual Reasoning for the NLSafety-Utility Trade-Off in LLM Code Generation
摘要
用于代码生成的 大语言模型 (LLM) 通常仅根据功能正确性进行评估,而忽略生成的代码是否传播提示中嵌入的有害内容。先前的工作表明,大多数代码 LLM 在没有警告的情况下从注入的重命名指令中复制攻击性标识符,但现有方法侧重于检测有害内容,忽略功能正确性。基于双通道约束理论(该理论指出,代码是一种双通道介质,结合了用于机器执行的算法 (AL) 通道和用于人类通信的自然语言 (NL) 通道,创建了一种独特的安全性与实用性的权衡,其中模型必须平衡功能执行与负责任的通信),我们提出了 NLSafety-Utility Duality Score (SUDS),该指标将代码实用性、安全遵守性和警告意识统一为跨 12 个排名的响应场景的单个分数,以及 Dual推理 (DR),一种结构化推理时间技术,需要在代码生成之前进行明确的安全审计和基于任务的代码审查。在两个基准测试中的 6 个 LLM 上进行评估,并添加了有害关键字注入(820 个和 2,135 个样本),DR 在所有模型中始终实现了最高的 SUDS,将平均 SUDS 比基线提高了 1.32$\times$ 到 3.42$\times$,而思想链提示产生的安全增益可以忽略不计,安全意识提示仅提供部分改进。进一步的分析表明,DR 的有效性与模型容量成正比,一次性样本主要稳定较小模型的输出格式,而结构化推理无法弥补安全词汇量有限的模型。