Code Is More Than Text: Uncertainty Estimation for Code Generation

📄 arXiv: 2606.09577v1 📥 PDF

作者: Yuling Shi, Caiqi Zhang, Yuexian Li, Haopeng Wang, Yeheng Chen, Nigel Collier, Xiaodong Gu

分类: cs.CL, cs.LG, cs.SE

发布日期: 2026-06-08


💡 一句话要点

提出代码生成中的不确定性估计方法以提高安全性

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 不确定性估计 大型语言模型 安全性 算法一致性 行为一致性 词汇熵 软件开发

📋 核心要点

  1. 现有代码生成方法在不确定性估计方面存在不足,未能充分考虑代码的独特性。
  2. 论文提出了三种不确定性估计的轴心,分别关注词汇、算法和功能一致性,以提升代码生成的可靠性。
  3. 实验结果表明,提出的方法在多个模型上显著提高了AUROC值,尤其在成本效益上表现优异。

📝 摘要(中文)

大型语言模型(LLMs)越来越多地被用作代码生成器,但错误的程序可能带来安全和可靠性风险。因此,可靠的不确定性估计(UE)对于选择性预测、人机协作审查和下游决策至关重要。现有的代码UE方法大多源自自然语言生成,忽视了代码的独特属性。本文提出了三种不确定性轴:词汇(Top-K token熵)、算法(伪代码一致性)和功能(行为一致性),并在五个代码LLM上验证了这些方法的有效性,显著提高了AUROC值。我们的单次Top-K token熵方法在成本上具有竞争力,同时性能优越。

🔬 方法详解

问题定义:本文旨在解决现有代码生成方法在不确定性估计方面的不足,尤其是自然语言生成方法无法有效处理代码的独特特性,如单个错误令程序失效等问题。

核心思路:论文提出了三种不确定性估计的轴心:词汇轴(Top-K token熵)、算法轴(伪代码一致性)和功能轴(行为一致性),通过这三者的结合来提升代码生成的可靠性和安全性。

技术框架:整体框架包括三个主要模块:词汇不确定性评估、算法一致性检查和功能一致性验证。每个模块分别针对不同的不确定性来源进行评估,最终通过集成方法输出综合的不确定性评分。

关键创新:最重要的创新在于提出了针对代码生成的特定不确定性估计方法,而非简单地将自然语言方法移植到代码领域。这种设计考虑了代码的执行性和算法意图与实现之间的差异。

关键设计:在参数设置上,采用Top-K token熵作为词汇不确定性的度量,伪代码一致性用于算法层面的评估,行为一致性则通过程序的实际执行结果进行验证。损失函数和网络结构经过优化,以确保各个模块的有效性和协同工作。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果显示,提出的三轴集成方法在五个代码LLM上将AUROC值从0.696提升至0.776,提升幅度达到8.1个百分点。尤其是在Qwen3-14B模型上,单次Top-K token熵方法的性能与最强的多次基线相当,但成本却低于三倍,显示出良好的性价比。

🎯 应用场景

该研究的潜在应用场景包括自动代码生成、代码审查工具和软件开发中的智能辅助系统。通过提高代码生成的可靠性和安全性,可以有效减少软件缺陷,提升开发效率,具有重要的实际价值和广泛的应用前景。

📄 摘要(原文)

Large language models (LLMs) are increasingly deployed as code generators, where silently wrong programs pose real safety and reliability risks. Reliable uncertainty estimation (UE) is essential for selective prediction, human-in-the-loop review, and downstream agentic decisions. Yet most existing code UE methods are inherited from natural language (NL) generation and ignore properties that make code distinct. We argue that code differs from NL in three ways: a single wrong token can break an entire program (token fragility); algorithmic intent and concrete implementation can disagree independently (intent-code gap); and programs can be executed (executability). We instantiate these properties as three orthogonal uncertainty axes: lexical (Top-K token entropy), algorithmic (pseudo-code consistency), and functional (behavioral consistency). Across five code LLMs, our three-axis ensemble improves average AUROC from 0.696 for the strongest NL-derived baseline to 0.776 (+8.1 points). Notably, on Qwen3-14B, our single-pass Top-K token entropy matches the strongest multi-pass baseline while being over 3x cheaper; across models, it remains a competitive low-cost signal. These results suggest that code UE deserves code-specific design rather than direct NL ports.