Page 345 - 《软件学报》2026年第2期
P. 345

824                                                        软件学报  2026  年第  37  卷第  2  期


                    表  2  总结了典型的基于深度学习的自然语言与             SQL  转化方法, 其中模型的输入涉及模型所接受的输入类型;
                 输出约束指系统为确保输出          SQL  语句的正确性而施加的约束条件; 模式链接指方法是否将数据库模式作为辅助
                 信息纳入模型输入; 学习模型指         Text2SQL  模型在训练阶段采用的学习策略. 评测数据集指用于训练和评估                 Text2SQL
                 模型的数据集. WikiSQL    [15] 和  Spider [49] 提供了大规模多领域的  Text2SQL  数据集, 使得  Text2SQL  训练和测试标
                 准化.

                                         表 2 基于深度学习的自然语言与           SQL  转化方法

                        方法             模型输入         输出约束          模式链接         学习模型          评测数据集
                      Seq2SQL [15]      单词            序列            无          强化学习           WikiSQL
                      SQLNet [16]       单词            草图            无             -           WikiSQL
                       IncSQL [17]      单词            语法            无             -           WikiSQL
                      TypeSQL [18]      单词            草图            有             -           WikiSQL
                    SyntaxSQLNet [41]   单词            草图            无             -            Spider
                       GNN [19]        模式图            语法            无             -            Spider
                     Global-GNN [20]   模式图          语法/排序           无             -            Spider
                      SQLova [28]       序列            草图            无          迁移学习           WikiSQL
                       IRNet [34]       序列            语法            有          迁移学习            Spider
                       X-SQL [27]       序列            草图            无          迁移学习           WikiSQL
                      RAT-SQL [21]     模式图            语法            有          迁移学习            Spider
                      ValueNet [46]     序列            语法            有          迁移学习            Spider
                      HydraNet [35]     序列            草图            无          迁移学习           WikiSQL
                       SmBoP [42]      模式图            语法            有          迁移学习            Spider
                     RYANSQL [33]       序列            草图            无          迁移学习            Spider
                        ETA [36]        序列            序列            有          迁移学习            Spider

                  2.1.2    基于大语言模型方法
                    基于大语言模型的       Text2SQL  方法根据方法的实现方式, 分为基于提示词工程的方法和基于微调的方法.
                    基于提示词工程的方法通过设计特定的提示词                  (prompt) 来引导大语言模型生成目标         SQL  查询. 这类方法
                 无需对模型进行额外的训练, 而是利用大语言模型在预训练阶段学到的知识和推理能力, 通过自然语言提示词
                 将任务描述转化为       SQL  查询. 基于提示词工程的方法依据其思考深度和对问题的分解能力可以分为以下                            4  个
                 类型.
                    ● 朴素方法直接使用简单的提示词将自然语言问题与数据库模式结合, 输入到大语言模型中生成                                SQL  查询.
                 一些研究   [50,51] 评估了零样本下的   LLM  在  Text2SQL  任务上的性能, 他们评估了不同的提示词和不同的              LLM  在
                 Text2SQL  任务上的性能. 结果表明     prompt 对于性能至关重要. 一些方法针对零样本下的方法进行改进, 提出了小
                 样本的朴素方法, 他们提供了少量的样例来触发               LLM  以生成更准确的     SQL.
                    ● 分解方法通过将复杂问题拆解为多个子问题, 逐步生成                  SQL  查询. 一些方法  [52−54] 将  Text2SQL  任务分解, 先
                 将问题分解为选择条件、聚合函数和表连接等子任务, 再分别生成对应的                         SQL  片段, 最后组合成完整查询. 还有
                 一些方法   [55,56] 将问题分解, 他们将用户的问题分解成不同的子问题, 然后通过解决这些子问题生成子                       SQL, 再合成
                 最终的   SQL.
                    ● 推理增强方法     [57−59] 通过引入推理步骤或中间表示, 帮助模型更好地理解问题和生成                  SQL  查询. 例如, 在提
                 示词中加入逻辑推理链或中间结果, 引导模型逐步推导出正确的                     SQL  语句. 这些方法通过思维链的提示词方法引
                 导  LLM  一步一步地进行全面的推导过程.
                    ● 执行优化方法     [54,59,60] 通过结合  SQL  执行结果对生成的查询进行反馈和修正. C3       [61] 将生成的  SQL  语句在数
                 据库中执行, 并根据执行结果调整提示词或重新生成查询.
   340   341   342   343   344   345   346   347   348   349   350