Functional Entropy: Predicting Functional Correctness in LLM-Generated Code with Uncertainty Quantification
作者: Dylan Bouchard, Mohit Singh Chauhan, Zeya Ahmad, Ho-Kyeong Ra
分类: cs.CL, cs.AI, cs.LG
发布日期: 2026-05-27
💡 一句话要点
提出功能熵以量化LLM代码生成的不确定性,从而预测代码功能正确性
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 不确定性量化 大型语言模型 功能等价 功能熵
📋 核心要点
- 大型语言模型生成的代码经常存在功能错误,而现有的不确定性量化方法在代码生成任务中的有效性有待考察。
- 论文提出功能等价方法,使用基于LLM的功能等价评估替代基于NLI的语义等价,并引入功能熵作为代码语义熵的度量。
- 实验结果表明,功能等价方法在多个模型和基准测试中取得了最佳的AUROC和校准效果,显著优于现有方法。
📝 摘要(中文)
大型语言模型在代码生成方面表现出令人印象深刻的能力,但经常产生功能不正确的代码。不确定性量化(UQ)方法已成为检测自然语言生成中幻觉的一种有前途的方法,但它们在代码生成任务中的有效性仍未得到充分探索。本文系统地评估了UQ技术如何迁移到跨三种编程语言、五个LLM和超过1700个问题的代码生成。研究发现,一些基于token概率的方法无需修改即可有效推广,而依赖于自然语言推理(NLI)的基于采样的方法则失败,因为NLI模型无法区分功能不同的代码,导致大多数响应崩溃到单个语义簇中。为了解决这个问题,本文引入了功能等价方法,这是一系列特定于代码的方法,用基于LLM的功能等价评估替换基于NLI的语义等价,包括功能熵,一种特定于代码的语义熵的类似物。功能等价方法在15个模型-基准组合中的11个中实现了最高的AUROC,并在大多数设置中实现了最佳校准,始终优于基于NLI的对应方法和所有其他评估方法。
🔬 方法详解
问题定义:论文旨在解决大型语言模型(LLM)在代码生成任务中产生功能错误代码的问题。现有的不确定性量化(UQ)方法,特别是基于自然语言推理(NLI)的方法,在代码生成领域表现不佳,因为NLI模型难以区分功能不同的代码,导致语义聚类效果差,无法有效预测代码的正确性。
核心思路:论文的核心思路是利用代码的功能等价性来评估生成代码的不确定性。不同于依赖自然语言语义相似性的NLI方法,论文提出直接评估代码的功能是否相同,从而更准确地量化代码生成的不确定性,并预测代码的功能正确性。
技术框架:论文提出的方法主要包含以下几个阶段:1) 使用LLM生成代码;2) 使用功能等价方法评估生成代码的不确定性,其中核心是使用LLM判断两段代码的功能是否等价;3) 利用不确定性量化结果预测代码的功能正确性。关键模块包括代码生成模块、功能等价评估模块和不确定性量化模块。
关键创新:论文的关键创新在于提出了功能等价方法,并将其应用于代码生成领域的不确定性量化。该方法使用LLM直接评估代码的功能等价性,避免了NLI方法在代码语义理解上的局限性。此外,论文还提出了功能熵,作为代码语义熵的类比,用于量化代码的不确定性。
关键设计:功能等价方法的核心是使用LLM判断两段代码的功能是否等价。具体实现方式是,将两段代码输入LLM,并要求LLM输出一个二元标签,表示两段代码的功能是否相同。论文使用了不同的LLM作为功能等价评估器,并探索了不同的prompting策略。功能熵的计算方式类似于语义熵,但输入是功能等价评估的结果,而非语义相似度得分。
🖼️ 关键图片
📊 实验亮点
实验结果表明,论文提出的功能等价方法在15个模型-基准组合中的11个中实现了最高的AUROC,并在大多数设置中实现了最佳校准效果。与基于NLI的方法相比,功能等价方法在预测代码功能正确性方面取得了显著的提升,证明了其在代码生成领域不确定性量化方面的有效性。
🎯 应用场景
该研究成果可应用于自动化软件测试、代码质量评估和LLM代码生成结果的可靠性验证。通过量化LLM生成代码的不确定性,可以帮助开发者识别潜在的功能错误,提高代码质量,并降低软件开发和维护成本。此外,该方法还可以用于构建更可靠的自动化代码生成系统。
📄 摘要(原文)
Large language models have shown impressive capabilities in code generation, yet they often produce functionally incorrect code. Uncertainty quantification (UQ) methods have emerged as a promising approach for detecting hallucinations in natural language generation, but their effectiveness for code generation tasks remains underexplored. We systematically evaluate how UQ techniques transfer to code generation across three programming languages, five LLMs, and over 1,700 problems. We find that some token-probability-based methods generalize effectively without modification, while sampling-based methods relying on natural language inference (NLI) fail because NLI models cannot distinguish functionally different code, causing most responses to collapse into a single semantic cluster. To address this, we introduce functional equivalence methods, a family of code-specific methods that replace NLI-based semantic equivalence with an LLM-based functional equivalence assessment, including functional entropy, a code-specific analog of semantic entropy. Functional equivalence methods achieve top AUROC in 11 out of 15 model-benchmark combinations and the best calibration across most settings, consistently outperforming both NLI-based counterparts and all other methods evaluated.