Inference-Time Safety For Code LLMs Via Retrieval-Augmented Revision
作者: Manisha Mukherjee, Vincent J. Hellendoorn
分类: cs.SE, cs.AI, cs.CR, cs.LG
发布日期: 2026-03-02
备注: Accepted at the ICLR 2026 Workshop on Principled Design for Trustworthy AI: Interpretability, Robustness, and Safety Across Modalities
💡 一句话要点
提出检索增强修订方法,提升代码大语言模型推理时安全性
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码安全 大语言模型 检索增强生成 推理时安全 代码修订
📋 核心要点
- 现有代码大语言模型难以适应新漏洞和安全标准,导致生成不安全代码。
- 提出检索增强修订方法,利用Stack Overflow知识库指导LLM进行安全代码修订。
- 实验表明,该方法提高了代码安全性,且未引入新漏洞,验证了其有效性。
📝 摘要(中文)
大型语言模型(LLMs)越来越多地被部署在高风险软件开发的代码生成中,但其在安全推理方面的透明度有限以及对不断演变漏洞模式的脆弱性,引发了人们对其可信度的严重担忧。在静态数据集上训练的模型无法在不重新训练的情况下轻松适应新发现的漏洞或不断变化的安全标准,从而导致重复生成不安全的代码。我们提出了一种通过设计实现可信代码生成的方法,该方法作为一种推理时安全机制运行。我们的方法采用检索增强生成来揭示生成代码中相关的安全风险,并从精选的 Stack Overflow 知识库中检索相关的安全讨论,然后使用这些信息来指导 LLM 进行代码修订。这种设计强调了与可信度相关的三个方面:(1)可解释性,通过基于专家社区解释的透明安全干预;(2)鲁棒性,允许适应不断发展的安全实践而无需模型重新训练;(3)安全对齐,通过在不安全代码到达部署之前进行实时干预。在真实世界和基准数据集上,与单独提示相比,我们的方法提高了 LLM 生成代码的安全性,同时通过静态分析测量,没有引入新的漏洞。这些结果表明,有原则的、检索增强的推理时干预可以作为一种补充机制,用于提高基于 LLM 的代码生成的安全性,并突出了社区知识在支持可信 AI 部署方面的持续价值。
🔬 方法详解
问题定义:论文旨在解决代码大语言模型(Code LLMs)在推理时生成不安全代码的问题。现有方法,如直接提示LLMs生成代码,无法有效应对不断演变的安全漏洞和标准,需要频繁的模型重训练。这导致模型在面对新的安全挑战时表现出脆弱性,并可能生成包含已知漏洞的代码。
核心思路:论文的核心思路是利用检索增强生成(Retrieval-Augmented Generation, RAG)技术,在LLM生成代码后,检索相关的安全风险信息和社区讨论,并利用这些信息指导LLM进行代码修订。通过这种方式,模型可以在推理时动态地适应新的安全知识,而无需进行昂贵的模型重训练。
技术框架:整体框架包含以下几个主要步骤:1) LLM生成初始代码;2) 对生成的代码进行安全风险分析,识别潜在的安全问题;3) 使用识别出的安全问题作为查询,从Stack Overflow等知识库中检索相关的安全讨论和解决方案;4) 将检索到的信息与原始代码一起输入LLM,指导LLM进行代码修订,生成更安全的代码。
关键创新:最重要的技术创新在于将检索增强技术应用于代码安全领域,并将其作为一种推理时的安全机制。与传统的模型训练方法相比,该方法能够动态地适应新的安全知识,无需频繁的模型重训练。此外,该方法还具有更好的可解释性,因为代码修订的过程是基于检索到的社区知识,可以追溯到具体的安全风险和解决方案。
关键设计:论文的关键设计包括:1) 如何有效地识别代码中的安全风险;2) 如何构建和维护一个高质量的安全知识库;3) 如何将检索到的信息有效地融入到LLM的代码修订过程中。具体而言,可能涉及到使用静态分析工具来检测代码中的漏洞,使用语义相似度匹配算法来检索相关的社区讨论,以及设计合适的提示工程(Prompt Engineering)来指导LLM进行代码修订。
🖼️ 关键图片
📊 实验亮点
实验结果表明,该方法在真实世界和基准数据集上均能有效提高LLM生成代码的安全性,且未引入新的漏洞。与单独提示相比,该方法能够更好地识别和修复代码中的安全问题,从而生成更安全的代码。具体的性能提升数据和对比基线信息在论文中进行了详细描述。
🎯 应用场景
该研究成果可应用于软件开发生命周期的各个阶段,特别是在代码审查和自动修复环节。通过集成该方法,可以显著提高代码的安全性,降低软件漏洞带来的风险。此外,该方法还可以用于安全教育和培训,帮助开发人员更好地理解和防范安全漏洞。未来,该技术有望成为代码安全领域的重要组成部分,促进更安全、更可靠的软件开发。
📄 摘要(原文)
Large Language Models (LLMs) are increasingly deployed for code generation in high-stakes software development, yet their limited transparency in security reasoning and brittleness to evolving vulnerability patterns raise critical trustworthiness concerns. Models trained on static datasets cannot readily adapt to newly discovered vulnerabilities or changing security standards without retraining, leading to the repeated generation of unsafe code. We present a principled approach to trustworthy code generation by design that operates as an inference-time safety mechanism. Our approach employs retrieval-augmented generation to surface relevant security risks in generated code and retrieve related security discussions from a curated Stack Overflow knowledge base, which are then used to guide an LLM during code revision. This design emphasizes three aspects relevant to trustworthiness: (1) interpretability, through transparent safety interventions grounded in expert community explanations; (2) robustness, by allowing adaptation to evolving security practices without model retraining; and (3) safety alignment, through real-time intervention before unsafe code reaches deployment. Across real-world and benchmark datasets, our approach improves the security of LLM-generated code compared to prompting alone, while introducing no new vulnerabilities as measured by static analysis. These results suggest that principled, retrieval-augmented inference-time interventions can serve as a complementary mechanism for improving the safety of LLM-based code generation, and highlight the ongoing value of community knowledge in supporting trustworthy AI deployment.