← 最新论文
🤖 AI

Uncertainty Quantification for LLM-based Code Generation

本文介绍了 RisCoSet,这是一个新颖的框架,它利用多重假设检验为基于大语言模型的代码生成构建风险可控的预测集,通过容纳多个有效输出并显著减少不必要的代码剔除,同时保持对正确性的高度信心,从而有效克服了现有方法的局限性。

原作者: Senrong Xu, Yuhao Tan, Yanke Zhou, Guangyuan Wu, Zenan Li, Yuan Yao, Taolue Chen, Feng Xu, Xiaoxing Ma

发布于 2026-05-13
📖 1 分钟阅读☕ 轻松阅读

原作者: Senrong Xu, Yuhao Tan, Yanke Zhou, Guangyuan Wu, Zenan Li, Yuan Yao, Taolue Chen, Feng Xu, Xiaoxing Ma

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你请一位才华横溢但偶尔过于自信的 AI 为你编写计算机程序。有时,AI 会写出完美的代码;而有时,它会“产生幻觉”,混入一些看似正确但实际上会导致程序崩溃的代码行。

问题在于:你如何知道 AI 代码的哪些部分是安全可保留的,哪些部分是危险的?

本文介绍了一种名为RISCOSET的新方法来解决这一问题。不妨将其视为 AI 生成代码的“安全网”。

旧方法的问题

此前,研究人员尝试使用一种称为PAC(即“概率近似正确”)的方法。

  • 类比:想象你正在一个装满钥匙的巨大杂乱抽屉中寻找一把特定的钥匙。旧方法(PAC)有一条严格规则:“你只能查看比上一次挑选的钥匙更小的钥匙。”
  • 缺陷:这条规则过于僵化。它迫使研究人员为了遵守规则而丢弃了太多潜在的好钥匙(或在此情境下,即代码行)。此外,它假设只有一个正确答案,但在编程中,往往存在许多种不同的方式来编写实现完全相同功能的程序。

新解决方案:RISCOSET

作者提出了RISCOSET,它采用了一种更智能的方法,称为LTT(先学习后测试)。

1. “部分程序”(骨架)
RISCOSET 不再试图猜测整个完美程序,而是构建一个“骨架”或“部分程序”。

  • 类比:想象 AI 写了一个故事,但你不确定结局。RISCOSET 不会删除整个故事,而是高亮显示不确定的句子,并移除这些特定部分,从而为你留下一个你确信安全的坚实框架(部分故事)。
  • 目标:该骨架被保证(具有高度的统计置信度)是正确解决方案的一部分。随后,你可以填补缺失的部分。

2. “多标签”优势
旧方法假设只有一个“正确”答案。RISCOSET 理解在编程中存在许多有效的解决方案。

  • 类比:如果你要一份蛋糕食谱,并没有唯一“正确”的做法。你可以使用黄油或油;你可以用圆形烤盘或方形烤盘烘烤。RISCOSET 接受存在许多“正确”版本的事实,因此它不会仅仅因为代码看起来与第一个猜测略有不同就将其丢弃。

3. “选择性执行”(节省时间和金钱)
为了确保其“骨架”是安全的,系统需要测试代码。但测试每一行代码既缓慢又昂贵(就像为每一颗螺丝都进行完整的汽车引擎测试)。

  • 类比:RISCOSET 采用“选择性执行”策略。这就像一位质检员检查产品。如果产品看起来非常干净且质量上乘(不确定性低),质检员就会跳过全面测试。如果它看起来杂乱无章(不确定性高),质检员就会进行完整测试。
  • 结果:这在保持极低错误率的同时,节省了巨大的时间和计算资源。

他们发现了什么?

研究人员在三种不同的 AI 模型和三个不同的代码数据集上测试了该方法。

  • 减少浪费:与现有最佳方法相比,RISCOSET 少删除了**24.5%**的代码行。这意味着你可以保留更多 AI 的有用工作成果。
  • 安全第一:尽管保留了更多代码,他们仍保持了同样高水平的安全保证。他们构建的“骨架”包含正确解决方案的可能性与旧方法一样高,但避免了大量不必要的删除。

总结

RISCOSET是一种新工具,帮助我们更好地信任 AI 生成的代码。它不再因为害怕出错而丢弃大段代码,而是精心雕琢出一个安全的“骨架”,保证该骨架是可行解决方案的一部分。它更智能、更少浪费,并且尊重编写优质代码存在多种途径这一事实。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →