一种基于结构化推理空间下LLM协同的NL2SQL方法与流程

摘要: 本发明涉及数据库智能交互领域,具体公开了一种基于结构化推理空间下llm协同的nl2sql方法。背景技术:1、自然语言到结构化查询语言(text-to-sql,n...
一种基于结构化推理空间下LLM协同的NL2SQL方法与流程

本发明涉及数据库智能交互领域,具体公开了一种基于结构化推理空间下llm协同的nl2sql方法。

背景技术:

1、自然语言到结构化查询语言(text-to-sql,nl2sql)任务旨在将用户的自然语言问题自动转换为可在关系型数据库上执行的结构化查询语言(structured querylanguage,sql)语句。该技术是数据库智能化交互的核心技术之一,广泛应用于商业智能、数据分析、智能客服等领域,使非专业用户能够通过自然语言便捷地访问和查询数据库。随着大语言模型(large language model,llm)在自然语言理解与代码生成方面能力的持续突破,基于llm的nl2sql方法已成为该领域的主流技术路线。

2、现有基于llm的nl2sql系统通常采用多阶段推理优化架构,包含预处理阶段、sql生成阶段、后处理阶段以及输出四个主要环节。预处理阶段旨在优化llm的输入质量,主要包括模式链接、语义值检索和问题改写。模式链接是指从数据库模式中识别与用户问题相关的表和列,以减少llm需要处理的模式规模;语义值检索是指从数据库中检索与问题关键词相关的具体数据值,并将其作为上下文注入提示,以解决自然语言表述与数据库实际存储值之间的语义鸿沟问题。

3、sql生成阶段是系统的核心推理环节,现有方法通常采用以下一种或多种策略:指令遵循,即通过精心设计的提示模板引导llm进行结构化推理,如思维链推理;上下文学习,即在提示中提供少量示例以引导llm理解任务模式;中间表示,即将复杂的sql生成任务分解为更简单的子任务,例如先生成sql骨架再填充具体模式元素,或将复杂查询分解为多个子问题分别求解后再合成;树搜索,即将sql生成建模为树搜索问题,通过蒙特卡洛树搜索等算法在动作空间或结构空间中探索最优推理路径。

4、后处理阶段对llm生成的sql进行质量优化,主要包括sql修订、候选选择和结果验证。sql修订是指对语法错误或逻辑错误的sql进行修正;候选选择是指当生成多个候选sql时,通过执行结果投票、自一致性等机制选择最优结果;结果验证是指通过执行sql并检查结果合理性来验证正确性。

5、随着nl2sql任务复杂度的不断提升,如涉及多表连接、多层嵌套子查询、聚合函数等,上述多阶段架构在实现高准确率与高可靠性方面仍面临诸多挑战,在系统层面存在以下结构性缺陷:

6、搜索空间与结构引导脱节,无效探索比例高。在主流的树搜索类nl2sql方法中,搜索过程通常在扁平的动作空间上进行,即所有sql构建动作(如选择表、添加条件、生成子句等)处于同一抽象层次,搜索树在扩展过程中缺乏高层结构信息的引导。当面对需要多表连接或嵌套子查询的复杂问题时,搜索过程极易在结构层面偏离正确方向,导致大量搜索轮次消耗在无效路径上。另一种技术路线采用先预测骨架、后填充细节的串行策略,即骨架预测完成后作为静态模板输入sql生成模块,该策略在骨架正确时效果良好,但当骨架预测出现偏差时,后续的sql生成和修订无法从根本上修正结构错误,形成结构性错误的累积放大。

7、验证反馈与搜索过程脱节,错误发现滞后。在现有架构中,验证机制通常作为后处理阶段的一个独立模块,仅在sql完全生成后才介入。这种事后验证模式存在两个固有缺陷:一是错误发现严重滞后,若模式链接阶段遗漏了关键表或连接条件,后续的sql生成和修订阶段无论执行得多么精确,最终sql也必然错误,而验证要到生成完成后才能发现该错误;二是验证结果无法回传指导搜索,验证发现的错误类型仅用于当前sql的局部修复,不会反馈到搜索策略中以避免同类错误在其他路径上重复发生。

8、搜索奖励信号来源单一,对复杂错误的区分度不足。现有搜索类方法的奖励函数通常仅依赖于sql执行结果的自一致性,即对同一候选sql进行多次高温度采样,比较各采样结果的执行结果是否一致。该奖励函数存在两个固有缺陷:一是当多个错误sql产生相同的错误结果时,自一致性奖励会错误地给予高分,误导搜索方向;二是自一致性奖励无法区分不同类型的错误,语法错误、模式链接错误、连接逻辑错误和聚合函数错误在奖励值上无差异,导致搜索过程无法针对性地优化薄弱环节。

9、多候选生成缺乏多样性保障,策略间信息孤立。现有方法通过多策略并行生成来提高候选sql的覆盖率,然而多个生成器共享相同的llm底座和相同的输入上下文,在输入存在偏差时可能产生同类型的系统性错误,退化为同模态冗余,无法真正提高覆盖率;且各生成器独立运行,彼此之间没有信息交互,各自持有的部分正确信息无法在生成过程中融合互补。现有骨架类方法同样存在多样性问题,多个骨架候选来自同一llm的多次生成,存在相似性偏差,缺乏对骨架间正交性的显式保障。

10、有鉴于此,针对现有nl2sql推理优化架构在结构引导脱节、验证反馈滞后、奖励信号单一、多样性保障不足等缺陷,本发明提供了一种基于结构化推理空间下llm协同的nl2sql方法,通过srs三维空间统一建模、多粒度验证检查点前置嵌入、结构化回溯、三源融合奖励函数、骨架距离度量保障多样性的自适应搜索,实现了搜索-验证-结构三者的闭环协同,能够在复杂nl2sql查询场景下具有可靠性。

技术实现思路

1、本发明提供了一种基于结构化推理空间下llm协同的nl2sql方法,解决的技术问题:如何实现搜索-验证-结构三者的闭环协同,以在复杂nl2sql查询场景下具有可靠性;具体方案如下:

2、一种基于结构化推理空间下llm协同的nl2sql方法,包括:步骤1:获取用户的自然语言查询和目标数据库模式,并基于所述自然语言查询和所述目标数据库模式构建结构化推理空间;所述结构化推理空间是由粒度维度、验证维度和操作维度构成的三维空间;所述结构化推理空间中的状态由所述粒度维度的取值、所述验证维度的取值和所述操作维度的取值共同表示;所述粒度维度刻画当前推理所处的抽象层级,所述验证维度刻画当前状态已通过的验证层级,所述操作维度刻画当前执行的搜索操作类型;步骤2:采用多种骨架生成策略并行地生成骨架候选,得到骨架候选集;骨架是所述结构化推理空间中对查询结构的表示;步骤3:计算所述骨架候选集中骨架之间的骨架距离,保留骨架距离大于等于预设多样性阈值的骨架候选,得到正交骨架候选集;步骤4:以所述正交骨架候选集为起点,沿所述粒度维度逐层递进,在每递进到下一个粒度层级时,对当前粒度层级的候选状态执行与当前粒度层级对应的验证,得到验证结果;所述粒度维度包括由粗到细的多个粒度层级;步骤5:当所述验证结果为通过时,计算所述候选状态的融合奖励;所述融合奖励由执行一致性奖励、结构验证奖励和数据层奖励融合得到;步骤6:以所述融合奖励为引导,通过树搜索对所述候选状态执行生成操作或细化操作,推进至下一粒度层级并返回步骤4;步骤7:当所述验证结果为不通过时,执行结构化回溯,将搜索重新定位到所述结构化推理空间中的有效祖先状态,并返回步骤4;步骤8:当所述候选状态递进至最终粒度层级且通过执行一致性验证时,终止搜索并输出结构化查询语言语句。

3、进一步的,所述多个粒度层级包括句子级、子句级、表达式级和词元级;所述句子级用于表示对完整查询意图的分类,包括查询的顶层操作类型、所涉及的根表集合和顶层子句集合;所述子句级用于表示结构化查询语言子句结构,包括子句嵌套信息和表间连接关系图;所述表达式级用于表示子句内表达式的填充内容;所述词元级用于表示具体的结构化查询语言词元,所述结构化查询语言词元包括列名、常量和函数。

4、进一步的,所述验证的类型包括语法验证层、语义链接验证层、值匹配验证层和执行一致性验证层;所述语法验证层用于校验结构化查询语言的结构合法性;所述结构合法性包括抽象语法树解析成功、子句内部运算符与列类型兼容以及分组字段与选择列表中的聚合项一致;所述语义链接验证层用于校验所引用的表和列是否存在于所述目标数据库模式中以及外键关系是否成立;所述值匹配验证层用于校验条件中常量的值是否落在对应列的数据值域内;所述执行一致性验证层用于校验模拟执行后的结果与预期统计量是否一致;其中,所述执行与当前粒度层级对应的验证为所述语法验证层、所述语义链接验证层和所述值匹配验证层中的一种或多种;所述执行一致性验证由所述执行一致性验证层完成。

5、进一步的,所述操作维度包括生成操作、细化操作、验证操作、剪枝操作、回溯操作和终止操作;所述生成操作用于在当前粒度层级生成候选结构化查询语言片段;所述细化操作用于将当前粒度层级细化至下一粒度层级;所述验证操作用于对当前候选状态执行所述验证维度中下一层级的验证;所述剪枝操作用于剪除未通过某一验证层级的分支;所述回溯操作用于返回上一个有效粒度层级重新搜索;所述终止操作用于在最细粒度层级且通过执行一致性验证后终止搜索并输出结构化查询语言语句;其中,多种搜索操作中每一种操作在当前状态下是否合法,由所述粒度维度的当前取值和所述验证维度的当前取值共同约束。

6、进一步的,所述多种骨架生成策略包括从顶到下策略、从下到顶策略和混合策略;所述从顶到下策略是指从所述结构化推理空间的顶层逐层向下构建骨架;所述从下到顶策略是指从所述目标数据库模式中相关的表和列向上构建骨架;所述混合策略是指采用从顶到下策略和从下到顶策略共同构建骨架。

7、进一步的,所述骨架距离为:

8、;

9、其中,为第i个骨架候选与第j个骨架候选之间的骨架距离;为骨架结构的图编辑距离;为骨架权重系数;为验证需求的汉明距离。

10、进一步的,生成的所述骨架候选的数量根据所述自然语言查询的查询复杂度指标动态调整,所述查询复杂度指标越高与骨架候选的数量成正比;所述查询复杂度指标为:

11、;

12、其中,为查询复杂度指标;为问题中的实体数量;是问题中涉及的判别条件数量;为估计的查询深度;为数据库模式大小。

13、进一步的,所述融合奖励为:

14、;

15、其中,为融合奖励;为执行一致性奖励;为结构验证奖励;为数据层奖励;、和分别为执行一致性、结构验证和数据层权重系数。

16、进一步的,所述执行结构化回溯,包括:确定验证不通过的验证维度、验证不通过时的粒度层级、当前搜索操作和失败类型;在所述结构化推理空间中沿所述验证维度向祖先方向搜索,得到最近的有效祖先状态;所述有效祖先状态为验证通过且验证维度与所述验证不通过的验证维度兼容的状态;根据所述失败类型和验证不通过时的粒度层级和所述有效祖先状态计算回溯目标偏移;将所述回溯目标偏移编码为回溯指针并注入搜索控制参数,并将搜索定位到所述有效祖先状态作为下一轮搜索的目标起点。

17、进一步的,所述最近的有效祖先状态通过有效邻域函数确定,所述有效邻域函数为:

18、;

19、其中,为有效邻域函数;为验证不通过的验证维度;δ是容差参数;为验证维度集合中的任意候选验证维度;为验证维度集合,为验证维度间的距离;为有效判定函数。

20、本发明具有如下优点和有益效果:

21、(1)结构化约束引导大幅压缩搜索空间,降低无效探索比例:

22、现有树搜索类方法在扁平动作空间上进行搜索,所有sql构建动作处于同一抽象层次,缺乏高层结构信息引导。本专利的srs三维空间通过g维度(粒度维度)将搜索过程从粗到细划分为g_sentence, g_clause, g_expression, g_token四个层次。在骨架假设生成阶段,系统首先生成粗粒度骨架,该粗粒度骨架将动作空间约束为仅与顶层结构兼容的子集;随后经多粒度验证检查点筛选后,中粒度骨架进一步约束嵌套结构和连接关系;最终细粒度骨架将可执行的动作空间精炼为仅占位符填充类动作。通过这种逐层精炼的结构约束,有效探索的搜索空间体积。

23、(2)过程级验证前置阻断错误累积,降低单路径错误率:

24、现有方法的验证机制通常在sql完全生成后作为后处理阶段介入,错误发现严重滞后。本专利通过多粒度验证检查点将验证前置到骨架生成的每一粒度层级之后。这一前置验证机制使得结构性错误在搜索早期即被捕获和修正,而非在错误累积后仅能做局部修补,从根本上改变了“错误发生→持续传播→最终发现→局部修正”的被动模式。

25、(3)三源融合奖励抑制一致但错误的虚高奖励,引导搜索方向更精确:

26、现有搜索类方法的奖励函数仅依赖于sql执行结果的自一致性。当多个错误sql产生相同的错误结果时,自一致性奖励会错误地给予高分,严重误导搜索方向。本专利的三源融合奖励函数中,结构验证奖励为四层验证检查点通过率的加权和。当多个错误sql产生相同的错误执行结果时,它们语法上虽正确但逻辑上不完整或数据上不可行。此时得分将显著降低,与正确sql的得分形成可量化的区分区间,有效抑制虚高奖励。同时,不同错误类型在三个子项上呈现不同的分布模式使得mcts能够根据低分子项的类型判断失败原因,在后续rollout中定向增加对应类型动作的探索权重,而非盲目重试。

27、(4)显式骨架距离度量保障候选正交性,增强策略间协同效应:

28、现有方法中,无论采用同一llm多次采样的同模态生成策略,还是采用多个生成器并行运行的多策略方案,均存在多样性不足的问题。本专利通过骨架距离度量显式控制候选骨架之间的差异程度。通过设定多样性阈值,系统仅保留相互之间距离大于阈值的骨架候选。正交化的候选骨架在后续动作搜索中覆盖了不同的结构区域,而非在同一结构模式下微调细节。此外,多策略生成的候选骨架均在srs中统一表示为标准化的状态节点,其验证结果和搜索历史在同一框架下统一管理,使不同策略的输出可以共享验证反馈,实现约束级的信息互补,覆盖率大于各策略独立运行的简单并集。