论文

AsmissionMiner:提取、跟踪和修改 LLM 代码生成中的隐式假设

AssumptionMiner: Extracting, Tracing, and Revising Implicit Assumptions in LLM Code Generation

摘要

大语言模型 (LLM) 根据自然语言提示生成代码,但现实世界的提示很少提供完整的规范。当提示未指定输入格式、错误处理或设计决策时,LLM 使用隐式假设来填补这些空白,这些假设塑造了生成的代码的行为和正确性。由于这些假设仍然是隐藏的,生成的代码可能会满足测试,但会违反开发人员的意图。我们提出了 AsuctionMiner,一个框架,它使隐式假设成为基于 LLM 的代码生成的一流工件。除了代码之外,AsuctionMiner 还生成显式假设层、推断约束和设计决策的结构化表示,开发人员可以检查、确认或修改。基于 AST 的依赖图可以仅对受修订假设影响的代码进行有针对性的重新生成。我们还引入了包含 180 个模糊编程任务和 676 个带注释的假设的基准,其中包括用于评估代码本地化的经人工验证的子集。我们评估假设提取、代码本地化和假设引导的再生。在开源 LLM 中,置信加权集成的假设提取 F1 得分为 0.816,比最强离线基线提高了 3.6 倍。在人工验证的本地化基准上,AST 引导的本地化比基于关键字和整个文件的基线识别出更精确的代码区域。在假设修订期间,有针对性的重新生成比无针对性的替代方案修改的代码更少,同时暴露了处理级联编辑的挑战。这些结果表明,明确假设可以提高基于 LLM 的代码生成的透明度和可控性。