Uncertainty Quantification for LLM-based Code Generation
作者: Senrong Xu, Yuhao Tan, Yanke Zhou, Guangyuan Wu, Zenan Li, Yuan Yao, Taolue Chen, Feng Xu, Xiaoxing Ma
分类: cs.SE, cs.AI
发布日期: 2026-05-12
💡 一句话要点
RisCoSet:利用多重假设检验为LLM代码生成构建风险可控的预测集合
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 大型语言模型 不确定性量化 预测集合 多重假设检验 风险控制 软件开发
📋 核心要点
- 现有基于LLM的代码生成方法难以有效量化生成代码的不确定性,尤其是在存在多个正确解的情况下。
- RisCoSet利用多重假设检验,为LLM代码生成构建风险可控的预测集合,保证高置信度包含正确解。
- 实验表明,RisCoSet在相同风险水平下,显著减少了代码移除,性能优于现有方法,提升高达24.5%。
📝 摘要(中文)
预测集合为量化机器学习模型的不确定性提供了一个理论基础框架。然而,将其应用于结构化生成任务,特别是基于大型语言模型(LLM)的代码生成,仍然是一个具有挑战性的问题。现有的尝试提出了PAC预测集合,但受到其对风险的强单调性假设和单标签分类框架的限制,这严重限制了候选程序的空间,并且无法适应代码生成固有的多个有效输出。为了解决这些限制,我们提出了一种名为RisCoSet的方法,该方法利用多重假设检验来构建基于LLM的代码生成的风险控制预测。给定一个训练好的代码生成模型,我们生成一个由部分程序表示的预测集合,该集合保证以高置信度包含正确的解决方案。在三个LLM上的大量实验证明了该方法的有效性。例如,与最先进的方法相比,在相同风险水平下,我们的方法可以显著减少高达24.5%的代码移除。
🔬 方法详解
问题定义:论文旨在解决基于大型语言模型(LLM)的代码生成任务中,如何有效量化生成代码的不确定性的问题。现有方法,如基于PAC预测集合的方法,存在对风险的强单调性假设,并且采用单标签分类框架,这限制了候选程序的范围,无法适应代码生成中多个有效输出的情况。因此,需要一种新的方法来构建能够包含多个可能正确解,并能有效控制风险的预测集合。
核心思路:论文的核心思路是利用多重假设检验来构建风险可控的预测集合。通过将代码生成问题转化为多个假设检验问题,可以控制错误发现率(False Discovery Rate, FDR),从而保证预测集合在一定置信度下包含正确的代码。这种方法避免了对风险的强单调性假设,并且能够处理代码生成中多个有效输出的情况。
技术框架:RisCoSet方法的整体框架包括以下几个主要步骤:1) 使用训练好的代码生成模型生成多个候选代码片段;2) 对每个候选代码片段进行假设检验,判断其是否为正确解;3) 利用多重假设检验方法(如Benjamini-Hochberg procedure)控制FDR;4) 将通过检验的候选代码片段组合成预测集合,该集合以部分程序的形式表示。
关键创新:该方法最重要的技术创新点在于将多重假设检验引入到LLM代码生成的不确定性量化中。与现有方法相比,RisCoSet不需要对风险进行强单调性假设,并且能够处理代码生成中多个有效输出的情况。此外,通过控制FDR,可以保证预测集合的可靠性。
关键设计:在具体实现中,需要选择合适的假设检验方法和FDR控制方法。论文可能采用了某种特定的假设检验统计量来评估候选代码片段的正确性,并使用Benjamini-Hochberg procedure或其他FDR控制方法来调整p值。此外,如何有效地表示和组合候选代码片段,形成一个有意义的预测集合,也是一个关键的设计问题。具体的损失函数和网络结构取决于所使用的LLM。
🖼️ 关键图片
📊 实验亮点
实验结果表明,RisCoSet方法在三个LLM上均表现出良好的性能。与最先进的方法相比,在相同风险水平下,RisCoSet能够显著减少高达24.5%的代码移除,这意味着该方法能够更准确地预测正确的代码,并减少不必要的代码删除,从而提高代码生成的效率和质量。
🎯 应用场景
该研究成果可应用于软件开发、自动化代码生成、代码补全等领域。通过量化代码生成的不确定性,可以提高代码的可靠性和安全性,减少人工干预,并为开发者提供更准确的建议。未来,该方法有望扩展到其他结构化生成任务,如文本摘要、机器翻译等。
📄 摘要(原文)
Prediction sets provide a theoretically grounded framework for quantifying uncertainty in machine learning models. Adapting them to structured generation tasks, in particular, large language model (LLM) based code generation, remains a challenging problem. An existing attempt proposes PAC prediction sets but is limited by its strong monotonicity assumption on risk and single-label classification framework, which severely limits the space of candidate programs and cannot accommodate the multiple valid outputs inherent to code generation. To address these limitations, we propose an approach RisCoSet that leverages multiple hypothesis testing to construct risk-controlling predictions for LLM-based code generation. Given a trained code generation model, we produce a prediction set represented by a partial program, which is guaranteed to contain a correct solution with high confidence. Extensive experiments on three LLMs demonstrate the effectiveness of the proposed method. For instance, compared with the state-of-the-art, our method can significantly reduce the code removal by up to 24.5%, at the same level of risk.