SOMA-SQL:通过合成日志与执行探测解决NL-to-SQL中的多源歧义
摘要
Soma-SQL提出了一种自主方法,利用合成查询日志和歧义驱动的执行探测,解决自然语言到SQL翻译中的多源歧义问题,在执行准确率上比最先进的基线平均提升13%。
arXiv:2606.11424v1 公告类型:新
摘要:自然语言数据库接口旨在将用户问题翻译成可执行的SQL,但在现实场景中,由于问题表述不充分且模式庞大且有歧义,这类接口仍然脆弱。用户问题、数据库模式和模型解释之间的歧义是NL2SQL中的主要失败模式,会导致意图不匹配、模式错误定位以及SQL生成错误。现有方法依赖人工澄清或仅将歧义视为模式表示问题,但这些方法无法规模化且不能自主解决歧义。我们提出SOMA-SQL,通过针对性的合成查询日志和歧义驱动的探测来自动解决歧义。SOMA-SQL构建合成查询日志以支撑模式解释并引导候选SQL生成;然后,基于结构化的歧义分类体系和候选不一致性,执行针对性的探测查询,生成消歧证据以最终选择并修复SQL。这种主动发现与解决歧义的方法能够泛化到未见过的模式和查询分布,且无需人工介入。在六个公开基准上的实验表明,SOMA-SQL的执行准确率平均比最先进的基线高出13.0%,在歧义问题上提升高达16.7%。
查看缓存全文
缓存时间: 2026/06/11 13:37
# Soma-SQL:通过合成日志和执行探测解决NL-to-SQL中的多源歧义
来源:https://arxiv.org/html/2606.11424
Sai Ashish Somayajula\*,Marianne Menglin Liu\*,Chuan Lei,Fjona Parllaku,Daniel Garcia,Rongguang Wang,Syed Fahad Allam Shah,Ankan Bansal,Sujeeth Bharadwaj,Tao Sheng,Sujith Ravi,Dan Roth
Oracle AI
\{ashish\.somayajula, marianne\.liu, dan\.roth\}@oracle\.com
###### 摘要
自然语言数据库接口旨在将用户问题翻译为可执行的SQL,但在现实世界中仍显脆弱,因为问题往往指定不足,且数据库模式庞大且充满歧义。用户问题、数据库模式和模型解释之间的歧义是NL2SQL中的核心失败模式,导致意图不匹配、模式接地错误和SQL生成出错。现有方法依赖人工澄清或将歧义视为模式表示问题,但这些方法无法扩展,也无法自主解决歧义。我们提出Soma-SQL,通过针对性的合成查询日志和歧义驱动的探测来自动解决歧义。Soma-SQL构建合成查询日志以夯实模式解释并指导候选SQL生成;随后,在结构化歧义分类和候选歧异的驱动下,执行针对性的探测查询,为最终SQL选择和修复生成消歧证据。这种主动的歧义发现和解决方法可推广到未见过的模式和查询分布,无需人工参与。在六个公开基准上的实验表明,与最先进的基线相比,Soma-SQL的平均执行准确率提升了13.0%,在歧义问题上提升高达16.7%。
∗同等贡献。
## 1 引言
将自然语言(NL)问题转换为SQL查询(NL2SQL)是一个长期存在的问题,处于语义解析、语用学和数据库系统的交叉点。尽管大语言模型(LLM)最近取得了进展,但NL2SQL系统[33,27,4,38]在企业部署的歧义性和规模下仍然脆弱。现实世界的数据库庞大、复杂且文档常常不足,模式包含数百个表和模糊的命名约定[13,6,18]。用户问题通常指定不足[31,35,5],省略了聚合指标、过滤条件或连接条件,同时隐含地假设系统共享他们的领域知识和业务逻辑。因此,尽管现代NL2SQL代理[38,32]在具有干净模式和明确指定查询的理想化环境中表现良好,但它们仍难以应对具有庞大复杂模式和抽象、业务驱动问题的现实企业数据库。
**动机示例。** 考虑一个销售分析师查询企业数据库:“上个季度纽约表现最佳的地区是什么?”短语“表现最佳”可能指总收入、增长率或成交的订单数量,每一个都需要完全不同的聚合。“上个季度”可能指日历季度、财务季度或滚动90天窗口。甚至“地区”在数据库包含多个可能的地理或业务分组(如销售区域、地理区域或细分市场)时也是指定不足的。“纽约”可能指不同的实体(例如纽约市 vs. 纽约州),也可能以不同的表面形式出现(例如NY或NYC)。系统必须针对每个歧义默默作出某些假设,生成语法有效但返回结果与分析师意图不符的SQL查询,这种失败可能直到下游决策已经做出后才浮出水面。
参见图注
图1:Soma-SQL概览,包括 (a) 用于消歧的合成查询日志构建,(b) 感知歧义的SQL探测与修正,以及 (c) 多SQL生成。
**挑战。** 这些限制表现为三种歧义驱动的失败模式。首先,**查询级歧义**发生在用户意图指定不足时。预期的聚合、过滤条件或时间粒度是隐含的,迫使系统在同样有效的解释中进行猜测。其次,**模式级歧义**发生在重叠或命名不当的模式元素模糊了查询短语所指的表、列或值时。例如,“收入”可能映射到数据库中具有不同语义的多个列。第三,**上下文歧义**发生在问题预设了问题本身和模式中都缺失的领域知识或业务逻辑,例如指标定义、组织层次结构或隐式过滤约定,使得模型没有足够的依据来正确推理。
**最先进的方法。** 虽然最近的一些工作明确针对NL2SQL中的歧义,但每个工作只解决了问题的一个狭窄方面。一方面的工作通过引入人的澄清[31,35,5]来解决歧义,提示用户在候选解释中进行选择。虽然在受控环境中有效,但这些方法需要在推理时进行同步用户交互,并且在歧义未被检测到时会无声地失败。另一方面的工作[36,20]将歧义视为模式表示不良的副产品,通过更丰富的模式编码或检索增强上下文来改善接地,但无法区分一个真正指定不足的查询与一个仅仅是难以接地的查询。仍存在一个根本差距:没有现有系统显式地推理为什么查询是歧义的、存在哪种类型的歧义,或者如何自主地解决歧义,他们也没有利用多个可能的SQL解释之间的语义分歧作为未解决意图的诊断信号。
**Soma-SQL概览。** 我们提出Soma-SQL(针对多源歧义解决的合成查询日志和探测),一个无需人工参与即可解决歧义的通用NL2SQL系统(如图1所示)。给定一个NL问题,Soma-SQL首先利用综合生成的查询日志,以感知歧义的监督丰富模式理解。在代理模式链接[38]之后,多SQL生成工作流产生诊断性候选SQL;感知歧义的SQL选择器识别用于细化的种子SQL,而跨候选的歧异则暴露出未解决的语义歧义。然后,Soma-SQL在预定义歧义分类的指导下,将这些冲突映射到结构化的歧义维度,并用针对性的SQL查询探测数据库,为每个维度收集证据。由此产生的探测报告解析了歧义维度,并修复种子SQL,以产生带有数据依据证据的最终SQL。
**贡献。** 我们的贡献可以概括如下:(1) 我们提出了Soma-SQL,一个通用的NL2SQL系统,通过迭代消歧和执行接地推理来处理多源歧义,无需人工参与即可生成语义正确的SQL;(2) Soma-SQL利用从没有对应NL问题的SQL查询中构建的合成查询日志(这在企业环境中很常见),作为一种统一的消歧基础机制,将SQL变体转化为用于模式丰富、语义解释和探测指导的结构化信号;(3) 我们开发了一个执行接地探测框架,其中候选SQL歧异和结构化歧义分类共同指导目标探测生成,为SQL细化产生具体的解决证据;(4) 在六个公开基准上的实验结果表明,与最先进的基线相比,Soma-SQL的平均执行准确率提升了13.0%,在歧义问题上提升高达16.7%。
## 2 相关工作
**NL2SQL系统。** LLM极大地推动了NL2SQL的发展,如DIN-SQL[26]、DAIL-SQL[7]和MAC-SQL[37]等方法表明,分解式提示和多智能体协作在Spider[40]和BIRD[15]等基准上取得了强劲成果。最近更多的代理框架进一步改进了模式链接和错误修正。ReFoRCE[4]将模式压缩与执行引导探索相结合;AutoLink[38]执行迭代模式链接,无需预先提供完整模式;PV-SQL[34]在探测查询和基于规则的验证之间交替进行迭代细化;SQLens[8]使用AST级别的比较来定位超出LLM自我反思的语义错误。DeepEye-SQL[14]将NL2SQL分解为模式链接、推理、实现、调试和最终选择。EnrichIndex[3]利用LLM离线构建语义丰富的索引,突出了结构化信号对下游任务的有效性。相比之下,BIRD-INTERACT[11]暴露了当前系统在多轮交互设置中的局限性。然而,这些工作很大程度上假设输入是良构的,并且没有提供处理查询歧义的原则性机制。
**NL2SQL中的歧义。** AMBROSIA[31]对NL问题中的三种歧义类型(即范围、依存和模糊性)进行了基准测试,表明即使是前沿的LLM也无法可靠地解决它们。Wang等人[36]通过一个在反事实生成数据上训练的“检测-然后-解释”框架来检测和解释歧义或不可回答的查询。ODIN[35]、AtomSQL[20]和AmbiSQL[5]通过候选生成、用户反馈或澄清问题来解决模式和查询歧义。我们的方法不同之处在于从执行反馈中学习歧义模式,并在无需人工干预的情况下自动解决歧义。我们在附录A中讨论了NL2SQL之外更广泛的NL歧义解决文献。
## 3 方法
### 3.1 问题形式化
设SS表示数据库模式,DD表示数据库实例,xx表示自然语言问题。NL2SQL系统生成一个可执行的SQL查询qq∈Q\(S\),其中Q\(S\)表示在SS上所有有效SQL查询的集合。由于不同的SQL查询执行后可能产生相同的结果,我们将目标SQL视为所有执行语义等价的查询中的一个代表。在实践中,企业查询通常指定不足:用户可能省略预期的指标、过滤条件、时间窗口、聚合级别、连接路径或业务约定。例如,“纽约上个季度表现最佳的地区”可能取决于排名指标(如收入、增长或成交数)、“上个季度”的定义(如日历或财务)、以及模式特定实体(如地区和位置)的解释。我们将缺失的语义建模为一个指定不足的意图变量ZZ,其支撑集为Z\(x,S\),即xx在模式SS下所有可能的用户解释集合。一个具体的意图赋值z∈Z\(x,S\)表示一个具体的意图分配。以zz为条件,NL2SQL系统在可执行SQL查询上诱导出一个分布:Pθ\(q∣x,S,z\),q∈Q\(S\),其中θ表示NL2SQL系统的流水线配置[27,33]。核心挑战在于用户的真实意图z⋆不可观测,因此在生成过程中无法直接以z⋆为条件。
###### 问题定义。给定一个自然语言问题xx、一个数据库模式SS和一个数据库实例DD,任务是生成一个可执行的SQL查询q^∈Q\(S\),其执行语义与黄金标准SQL查询q⋆的执行语义匹配。由于用户的真实意图z⋆∈Z\(x,S\)不可观测,这需要 (i) 识别可能的意图赋值集合Z\(x,S\),(ii) 根据执行接地证据估计z^∈Z\(x,S\),以及 (iii) 最终生成SQL为q^∈argmax_{q∈Q\(S\)} Pθ\(q∣x,S,z^\)。
**歧义维度。** 我们将指定不足的意图变量分解为*歧义维度*Z=\(Z1,...,Zm\),其中每个ZjZj捕捉一个未解决的语义决策,例如排名指标、时间约定、过滤条件、聚合或连接路径。一个具体的意图赋值z=\(z1,...,zm\)为每个维度ZjZj选择了一个具体值zj。这些维度不必是独立的;有效的联合赋值可能只构成维度选项集笛卡尔积的一个子集。例如,在“纽约上个季度表现最佳的地区”中,Z1(排名指标)、Z2(时间约定)和Z3(实体引用)各自有多个选项,将它们分别解析为z1=收入、z2=财务季度、z3=纽约州,就得到了一个完全指定的意图,从中可以确定性地推导出目标SQL。
### 3.2 多SQL生成工作流
Soma-SQL是一个以歧义为先的NL2SQL框架,围绕广泛采用的规划-生成-批判工作流构建,如图1所示。在调用工作流之前,Soma-SQL丰富数据库模式[17,3]并执行代理模式链接[38],以识别与每个问题xx相关的SS子集222为简便起见,我们在全文将这个子集称为SS。这一步避免了提示上下文溢出(详情见附录G)。在意图解决之前,工作流在给定问题xx和模式SS的情况下,诱导出一个相似文章
一种基于语义层的异构企业数据库自然语言转SQL智能体
本文提出了一种基于语义层的NL2SQL智能体,通过推理精心设计的语义模型将意图与物理执行解耦,在Spider2-snow基准上实现了94.15%的执行准确率。
自然语言到SQL翻译的螺母与螺栓:模型流水线优化方法及其交互的系统性分析
本文系统地分析了多个用于自然语言到SQL翻译的流水线扩展组件,包括中间表示、合成数据、预处理和重排器,使用SmBoP和RASAT架构,发现它们的交互比简单组合所有组件更重要。
Schema-Aware Localisation (SAL):针对 Oracle NL2SQL 的实时模式锚定与幻觉验证
本文介绍了一种轻量级中间件 Schema-Aware Localisation (SAL),它通过将 LLM 生成的 SQL 查询锚定到实时 Oracle 模式目录中,从而消除幻觉错误,在无需手动模式整理的情况下,在 TPC-H 问题上实现了 62.6% 的执行锚定正确率。
SANE:面向生物数据的模式感知自然语言评估框架
SANE 是一种新颖的模式感知评估范式,专为生物/药理学数据集的自然语言(文本转SQL)查询而设计,能够基于真实实验模式自动生成基准测试。研究表明,采用结构化提示的少样本 LLM 无需微调即可实现准确的 SQL 生成,大多数失败案例源于输入歧义,而非查询生成错误。
AgentNLQ:一种通用的自然语言到SQL代理
本文介绍了AgentNLQ,一个用于自然语言到SQL转换的多代理系统,通过模式增强和自校正编排器在BIRD基准测试上达到了78.1%的语义准确率。