论文
Post-SQLFix:用属性诊断和先验证后应用修补LLM生成SQL
Post-SQLFix: Property-Guided Repair of LLM-Generated SQL with Runtime Verification
摘要
用于文本到 SQL 的大型语言模型 (LLMs) 经常生成带有语法错误、无效标识符引用或违反 SQL作用域和类型规则的查询。修复这些错误是一个程序正确性问题,但现有方法依赖于执行反馈 (EF),其症状级别、特定于方言的错误消息迫使 LLM 推测根本原因。我们在这个范式中发现了一个仲裁悖论:系统依赖未经验证的模型来提出修复建议并最终判断这些修复是否满足所需的属性。我们通过将文本到 SQL 修复重新表述为属性引导的程序修复来解决这个悖论。我们的框架 Post-SQLFix 将 SQL 规范化为方言感知的规范查询结构 (CQS),并通过具有三个分层属性层(语法、上下文无关结构、上下文敏感语义)的分层静态分析器对其进行验证。该分析器可生成精确的、感知数据库模式的违规诊断,以指导 LLM 的修复建议。然后,应用前验证时序监控器仅接受减少违规计数的修复,不会重新引入已解决的违规并满足算子契约。这些运行时不变量受到声明的规则族和算子契约的限制,而有限的重试预算可确保停止。在涵盖 3,000 多个评估实例、三种 SQL 方言(SQLite、MySQL、PostgreSQL)和六种模型配置的三个既定基准(BIRD、Spider、Mini-Dev)上,Post-SQLFix 解决了 EF 未修复的 77.8% 的执行错误,同时需要不到一半的修复迭代次数,且token用量减少30%。至关重要的是,在我们的评估中,监视器下接受的转换未引入静态分析能够检测到的结构回退,将检查的修复保真度转化为高达 +11.6 个百分点的绝对精度改进。
